2008-11-04 Anders Carlsson <andersca@apple.com>
[webkit/qt.git] / WebCore / ChangeLog-2007-10-14
blob9275e32e6268d018f372cc0a73c74295643b487e
1 2007-10-14  Eric Seidel  <eric@webkit.org>
3         Reviewed by aroben.
5         Remove senseless malloc from paintOutline
6         No tests needed, no functional change.
8         * rendering/RenderFlow.cpp:
9         (WebCore::RenderFlow::paintOutline): remove unneeded malloc
11 2007-10-13  Eric Seidel  <eric@webkit.org>
13         Reviewed by Mark Rowe.
15         Fix SVGSVGElement::currentView() to not leak by using an OwnPtr.
16         This fix is incompatible with changes eventually needed for supporting
17         SVGSVGElement.currentView in the bindings (that needs a ref'd object)
18         There are also several parser crashers in SVGViewSpec, but those will be fixed
19         in my next patch.
20         
21         Leak fix only, no additional tests needed.
23         * ksvg2/svg/SVGSVGElement.cpp:
24         (WebCore::SVGSVGElement::currentView): call .get() and .set()
25         * ksvg2/svg/SVGSVGElement.h: use OwnPtr
27 2007-10-13  Oliver Hunt  <oliver@apple.com>
29         Reviewed by Maciej.
31         Fixing a few testcases by enabling SVG_EXPERIMENTAL on windows, and making the
32         required fixes and corrections.
34         * WebCore.vcproj/WebCore.vcproj:
35         * WebCore.vcproj/build-generated-files.sh:
36         * bindings/scripts/CodeGeneratorJS.pm:
37         * ksvg2/scripts/make_names.pl:
38         * ksvg2/svg/SVGColor.cpp:
39         (WebCore::SVGColor::colorFromRGBColorString):
40         * page/DOMWindow.idl:
41         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
42         * platform/win/WebCoreTextRenderer.cpp:
44 2007-10-12  Darin Adler  <darin@apple.com>
46         Reviewed by Sam.
48         - more float/int conversion (to try to get the old builbot up)
50         * rendering/RenderSVGRoot.cpp:
51         (WebCore::RenderSVGRoot::layout): Cast to int.
52         (WebCore::RenderSVGRoot::applyContentTransforms): Ditto.
53         (WebCore::RenderSVGRoot::nodeAtPoint): Ditto.
55 2007-10-12  Justin Garcia  <justin.garcia@apple.com>
57         Reviewed by Harrison.
58         
59         <rdar://problem/5483370> GoogleDocs: Deleting cell text in a table row also removes any empty rows beneath the row being edited
60         <rdar://problem/5482524> GoogleDocs: A hang occurs when applying list to selected table
61         
62         * editing/DeleteSelectionCommand.cpp:
63         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
64         * editing/InsertListCommand.cpp:
65         (WebCore::InsertListCommand::modifyRange):
66         (WebCore::InsertListCommand::doApply):
68 2007-10-12  Darin Adler  <darin@apple.com>
70         - fix another float/int conversion
72         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
73         (WebCore::SVGResourceMasker::applyMask): Explicitly cast to int.
75 2007-10-12  Darin Adler  <darin@apple.com>
77         Reviewed by Oliver Hunt.
79         - fix float/int conversions that cause warnings on older versions
80           of gcc (like the version currently being used on the PowerPC
81           buildbot slave)
83         * rendering/RenderPath.cpp:
84         (WebCore::RenderPath::paint): Explicitly cast to int.
85         (WebCore::RenderPath::addFocusRingRects): Use enclosingIntRect
86         to convert a FloatRect to an IntRect.
87         * rendering/SVGRootInlineBox.cpp:
88         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
89         Use 0 for the initial value of an int, rather than 0.0f.
90         (WebCore::svgTextStyleForInlineTextBox): Explicitly cast to int.
91         (WebCore::applyTextAnchorToTextChunk): Ditto.
93 2007-10-12  Oliver Hunt  <oliver@apple.com>
95         Reviewed by Mark.
97         Cast zoom factor to int as the original patch did.  This is necessary to appease some versions of gcc.
99         * ksvg2/svg/SVGSVGElement.cpp:
100         (WebCore::SVGSVGElement::setCurrentScale):
102 2007-10-12  Eric Seidel  <eric@webkit.org>
104         Reviewed by Mark Rowe.
106         Fix leaks in SVG code from feature-branch.
108         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
109         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
110         * ksvg2/svg/SVGFEFloodElement.cpp:
111         (WebCore::SVGFEFloodElement::filterEffect):
112         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
113         (WebCore::SVGFESpecularLightingElement::filterEffect):
114         * ksvg2/svg/SVGGradientElement.cpp:
115         (WebCore::SVGGradientElement::buildStops):
116         * ksvg2/svg/SVGStyledElement.cpp:
117         (WebCore::SVGStyledElement::resolveStyle): always refs style
118         * platform/graphics/cg/ImageBufferCG.cpp:
119         (WebCore::ImageBuffer::create): fastFree buffer if CG Context creation fails
121 2007-10-12  Mark Rowe  <mrowe@apple.com>
123         Windows, Gtk and Qt build fixes.  Add new files to projects.
125         * WebCore.pro:
126         * WebCore.vcproj/WebCore.vcproj:
128 === Start merge of feature-branch 2007-10-12 ===
130 2007-10-11  Oliver Hunt  <oliver@apple.com>
132         Reviewed by Sam.
134         Bug 15469: feature branch has 100's of implicit double -> float conversions
136         Re-enable -Wshorten-64-to-32, and make required code changes to make us build sanely again.
137         
138         * WebCore.xcodeproj/project.pbxproj:
139         * bindings/js/JSSVGMatrixCustom.cpp:
140         (WebCore::JSSVGMatrix::translate):
141         (WebCore::JSSVGMatrix::scale):
142         (WebCore::JSSVGMatrix::scaleNonUniform):
143         (WebCore::JSSVGMatrix::rotate):
144         (WebCore::JSSVGMatrix::skewX):
145         (WebCore::JSSVGMatrix::skewY):
146         * bindings/scripts/CodeGeneratorJS.pm:
147         * bindings/scripts/CodeGeneratorObjC.pm:
148         * ksvg2/css/SVGRenderStyle.cpp:
149         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
150         * ksvg2/css/SVGRenderStyle.h:
151         * ksvg2/svg/SVGAnimateMotionElement.cpp:
152         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
153         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
154         (WebCore::parsePoint):
155         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
156         * ksvg2/svg/SVGAnimationElement.cpp:
157         (WebCore::SVGAnimationElement::parseKeyNumbers):
158         (WebCore::parseKeySplines):
159         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
160         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
161         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
162         * ksvg2/svg/SVGFECompositeElement.cpp:
163         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
164         (WebCore::SVGFECompositeElement::parseMappedAttribute):
165         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
166         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
167         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
168         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
169         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
170         (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute):
171         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
172         (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
173         (WebCore::SVGFEGaussianBlurElement::parseMappedAttribute):
174         * ksvg2/svg/SVGFELightElement.cpp:
175         (WebCore::SVGFELightElement::SVGFELightElement):
176         (WebCore::SVGFELightElement::parseMappedAttribute):
177         * ksvg2/svg/SVGFEOffsetElement.cpp:
178         (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
179         (WebCore::SVGFEOffsetElement::parseMappedAttribute):
180         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
181         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
182         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
183         * ksvg2/svg/SVGFETurbulenceElement.cpp:
184         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
185         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
186         * ksvg2/svg/SVGFitToViewBox.cpp:
187         (WebCore::SVGFitToViewBox::parseMappedAttribute):
188         * ksvg2/svg/SVGFitToViewBox.h:
189         * ksvg2/svg/SVGLength.cpp:
190         (WebCore::SVGLength::setValueAsString):
191         (WebCore::SVGLength::PercentageOfViewport):
192         * ksvg2/svg/SVGNumber.idl:
193         * ksvg2/svg/SVGNumberList.cpp:
194         (WebCore::SVGNumberList::parse):
195         * ksvg2/svg/SVGNumberList.h:
196         * ksvg2/svg/SVGParserUtilities.cpp:
197         (WebCore::_parseNumber):
198         (WebCore::parseNumber):
199         (WebCore::pointsListFromSVGData):
200         (WebCore::PathBuilder::svgMoveTo):
201         (WebCore::PathBuilder::svgLineTo):
202         (WebCore::PathBuilder::svgCurveToCubic):
203         (WebCore::SVGPathSegListBuilder::svgMoveTo):
204         (WebCore::SVGPathSegListBuilder::svgLineTo):
205         (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
206         (WebCore::SVGPathSegListBuilder::svgLineToVertical):
207         (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
208         (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
209         (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
210         (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
211         (WebCore::SVGPathSegListBuilder::svgArcTo):
212         * ksvg2/svg/SVGParserUtilities.h:
213         * ksvg2/svg/SVGPathElement.cpp:
214         (WebCore::SVGPathElement::SVGPathElement):
215         * ksvg2/svg/SVGSVGElement.cpp:
216         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
217         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
218         * ksvg2/svg/SVGSVGElement.h:
219         * ksvg2/svg/SVGTransformDistance.cpp:
220         (WebCore::SVGTransformDistance::addToSVGTransform):
221         (WebCore::SVGTransformDistance::distance):
222         * ksvg2/svg/SVGTransformDistance.h:
223         * ksvg2/svg/SVGTransformable.cpp:
224         (WebCore::SVGTransformable::parseTransformValue):
225         * ksvg2/svg/SVGViewSpec.cpp:
226         (WebCore::SVGViewSpec::parseViewSpec):
227         * platform/graphics/svg/SVGResourceFilter.cpp:
228         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
229         * platform/graphics/svg/cg/CgSupport.cpp:
230         (WebCore::applyStrokeStyleToContext):
231         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
232         (WebCore::SVGPaintServerPattern::setup):
233         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
234         (WebCore::SVGResourceFilter::applyFilter):
235         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
236         (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
237         * platform/graphics/svg/filters/SVGFEComposite.cpp:
238         (WebCore::SVGFEComposite::SVGFEComposite):
239         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
240         (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
241         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
242         (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
243         * platform/graphics/svg/filters/SVGFEFlood.cpp:
244         (WebCore::SVGFEFlood::SVGFEFlood):
245         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
246         (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
247         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
248         (WebCore::SVGFEMorphology::SVGFEMorphology):
249         * platform/graphics/svg/filters/SVGFEOffset.cpp:
250         (WebCore::SVGFEOffset::SVGFEOffset):
251         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
252         (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
253         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
254         (WebCore::SVGFETurbulence::SVGFETurbulence):
255         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
256         (WebCore::SVGFEColorMatrix::getCIFilter):
257         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
258         (WebCore::getVectorForChannel):
259         (WebCore::getLightVectors):
260         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
261         (WebCore::SVGFEImage::getCIFilter):
262         * rendering/RenderPath.cpp:
263         (WebCore::RenderPath::drawMarkersIfNeeded):
264         * rendering/RenderSVGImage.cpp:
265         (WebCore::RenderSVGImage::paint):
266         * rendering/RenderSVGInlineText.cpp:
267         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
268         * rendering/RenderSVGRoot.cpp:
269         (WebCore::RenderSVGRoot::applyContentTransforms):
270         (WebCore::RenderSVGRoot::calcViewport):
271         (WebCore::RenderSVGRoot::nodeAtPoint):
272         * rendering/RenderSVGText.cpp:
273         (WebCore::RenderSVGText::absoluteRects):
274         (WebCore::RenderSVGText::relativeBBox):
275         * rendering/RenderSVGTextPath.cpp:
276         * rendering/SVGCharacterLayoutInfo.cpp:
277         (WebCore::calculateBaselineShift):
278         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
279         (WebCore::SVGCharacterLayoutInfo::processedChunk):
280         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
281         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
282         * rendering/SVGCharacterLayoutInfo.h:
283         * rendering/SVGInlineTextBox.cpp:
284         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
285         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
286         (WebCore::pathForDecoration):
287         * rendering/SVGRenderTreeAsText.cpp:
288         (WebCore::writeStyle):
289         * rendering/SVGRootInlineBox.cpp:
290         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
291         (WebCore::applyTextAnchorToTextChunk):
292         (WebCore::SVGRootInlineBox::buildLayoutInformation):
293         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
295 2007-10-11  Andrew Wellington  <proton@wiretapped.net>
297         Reviewed by Eric Seidel.
299         Fix for http://bugs.webkit.org/show_bug.cgi?id=15076
300         "deg2rad has multiple definitions"
301         
302         Use deg2rad, rad2deg, deg2grad, grad2deg, rad2grad, grad2rad
303         from wtf where appropriate.
304         
305         No test cases as this doesn't change behaviour.
306         
307         Change based on original patch by Rob Buis.
309         * ksvg2/svg/SVGAngle.cpp:
310         (WebCore::SVGAngle::calculate):
311         (WebCore::SVGAngle::convertToSpecifiedUnits):
312         (WebCore::SVGAngle::todeg):
313         (WebCore::SVGAngle::torad):
314         * platform/graphics/AffineTransform.cpp:
315         (WebCore::AffineTransform::rotateFromVector):
316         (WebCore::AffineTransform::skewX):
317         (WebCore::AffineTransform::skewY):
318         * platform/graphics/cg/AffineTransformCG.cpp:
319         (WebCore::AffineTransform::rotate):
320         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
321         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
322         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
323         * rendering/RenderPath.cpp:
324         (WebCore::drawMarkerWithData):
326 2007-10-11  Nikolas Zimmermann  <zimmermann@kde.org>
328         Reviewed by Oliver.
330         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6421 (<text> textLength attribute is not respected)
331         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6422 (<text> lengthAdjust attribute is not respected)
333         Implement textLength and full lengthAdjust (both 'spacing' & 'spacingAndGlyphs' mode)
334         for <text> & <tspan> & friends. <textPath> is still todo, as it's special.
336         Also fix usage of cummulatedGlyphWidth/Height in SVGInlineTextBox, calculateGlyphBoundaries was
337         supposed to be used in the distance calculations, to take per character transformations into account (ie. rotation).
339         Fixes: svg/W3C-SVG-1.1/text-text-01-b.svg (complelty fixed the single W3C textLength testcase)
340         Partly fixed: svg/batik/text/textOnPathSpaces.svg (kerning support missing)
341         Partly fixed: svg/batik/text/textLayout.svg (word-letter spacing & textLength is todo)
343         * ksvg2/svg/SVGTextContentElement.cpp:
344         (WebCore::SVGTextContentElement::SVGTextContentElement):
345         (WebCore::SVGTextContentElement::parseMappedAttribute):
346         * rendering/SVGCharacterLayoutInfo.cpp:
347         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
348         * rendering/SVGCharacterLayoutInfo.h:
349         (WebCore::SVGTextChunk::SVGTextChunk):
350         (WebCore::SVGTextChunkWalker::operator()):
351         * rendering/SVGInlineTextBox.cpp:
352         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
353         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
354         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
355         * rendering/SVGRootInlineBox.cpp:
356         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
357         (WebCore::cummulatedWidthOrHeightOfTextChunk):
358         (WebCore::cummulatedWidthOfTextChunk):
359         (WebCore::cummulatedHeightOfTextChunk):
360         (WebCore::applyTextAnchorToTextChunk):
361         (WebCore::applyTextLengthCorrectionToTextChunk):
362         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
363         (WebCore::SVGRootInlineBox::buildTextChunks):
364         (WebCore::SVGRootInlineBox::layoutTextChunks):
365         (WebCore::SVGRootInlineBox::walkTextChunks):
367 2007-10-11  Oliver Hunt  <oliver@apple.com>
369         Reviewed by Niko.
371         Fix for Bug 15468: Parsing of numbers and lists is too lenient in SVG
373         Correct parsing of numbers, number lists, and length lists in SVG.
375         * ksvg2/svg/SVGLength.cpp:
376         (WebCore::SVGLength::setValueAsString):
377         * ksvg2/svg/SVGLength.h:
378         * ksvg2/svg/SVGLengthList.cpp:
379         (WebCore::SVGLengthList::parse):
380         * ksvg2/svg/SVGParserUtilities.cpp:
381         (WebCore::parseNumber):
383 2007-10-11  Allan Sandfeld Jensen  <sandfeld@kde.org>
385          Reviewed by Maciej and Eric.
387          Implement CSS selector combinators nondeterministic matching. 
388          Fixes http://bugs.webkit.org/show_bug.cgi?id=3428
390          * css/CSSStyleSelector.cpp:
391          (WebCore::CSSStyleSelector::matchRulesForList):
392          (WebCore::CSSStyleSelector::checkSelector): Split the function and make the second part recursive
393          (WebCore::CSSStyleSelector::checkOneSelector): Handle pseodo-elements rules and hoveractive quirks 
394          here instead of in checkSelector.
395          * css/CSSStyleSelector.h:
397 2007-10-10  Eric Seidel  <eric@webkit.org>
399         Reviewed by Nikolas Zimmermann.
400         
401         Fix the SVG dom so that rect.x.baseVal = rect.x.baseVal like it should.
402         http://bugs.webkit.org/show_bug.cgi?id=14150
404         Test: svg/dom/animated-tearoff-equlity.xhtml
406         * ksvg2/svg/SVGAnimatedTemplate.h:
407         (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey):
408         (WebCore::SVGAnimatedTypeWrapperKey::operator==):
409         (WebCore::SVGAnimatedTypeWrapperKeyHash::hash):
410         (WebCore::SVGAnimatedTypeWrapperKeyHash::equal):
411         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::deletedValue):
412         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::emptyValue):
413         (WebCore::SVGAnimatedTemplate::~SVGAnimatedTemplate):
414         (WebCore::SVGAnimatedTemplate::wrapperCache):
415         (WebCore::SVGAnimatedTemplate::forgetWrapper):
416         (WebCore::lookupOrCreateWrapper):
417         * ksvg2/svg/SVGElement.h:
419 2007-10-10  Oliver Hunt  <oliver@apple.com>
421         Reviewed by Maciej.
423         Leopard build fix -- SVGDocument should not trty to make read/write properties read-only
425         Remove those API definitions SVGDocument now inherits from Document
427         * ksvg2/svg/SVGDocument.idl:
429 2007-10-10  Eric Seidel  <eric@webkit.org>
431         Reviewed by Oliver.
433         Make renderers pull localTransform instead of depending on DOM elements to push
434         This allows for cleaner invalidation code, and makes writing animation easier.
435         Also fixed a tiny bug in SVGRenderImage focus ring calculations while there
436         
437         Updated test results for svg/custom/focus-ring.svg
439         * WebCore.xcodeproj/project.pbxproj:
440         * ksvg2/svg/SVGAElement.cpp:
441         (WebCore::SVGAElement::createRenderer):
442         * ksvg2/svg/SVGAnimateMotionElement.cpp:
443         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
444         * ksvg2/svg/SVGAnimateTransformElement.cpp:
445         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
446         * ksvg2/svg/SVGClipPathElement.cpp:
447         (WebCore::SVGClipPathElement::canvasResource):
448         * ksvg2/svg/SVGElement.h:
449         * ksvg2/svg/SVGGElement.cpp:
450         (WebCore::SVGGElement::createRenderer):
451         * ksvg2/svg/SVGImageElement.cpp:
452         * ksvg2/svg/SVGLocatable.cpp:
453         (WebCore::SVGLocatable::getCTM):
454         (WebCore::SVGLocatable::getScreenCTM):
455         * ksvg2/svg/SVGMarkerElement.cpp:
456         (WebCore::SVGMarkerElement::canvasResource):
457         (WebCore::SVGMarkerElement::notifyAttributeChange):
458         * ksvg2/svg/SVGSVGElement.h:
459         * ksvg2/svg/SVGStyledElement.cpp:
460         (WebCore::SVGStyledElement::rendererIsNeeded):
461         (WebCore::SVGStyledElement::notifyResourceParentIfExistant):
462         * ksvg2/svg/SVGStyledElement.h:
463         (WebCore::SVGStyledElement::style):
464         * ksvg2/svg/SVGStyledTransformableElement.cpp:
465         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
466         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
467         (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
468         (WebCore::SVGStyledTransformableElement::createRenderer):
469         * ksvg2/svg/SVGStyledTransformableElement.h:
470         (WebCore::SVGStyledTransformableElement::toPathData):
471         * ksvg2/svg/SVGSwitchElement.cpp:
472         (WebCore::SVGSwitchElement::createRenderer):
473         * ksvg2/svg/SVGTRefElement.cpp:
474         (WebCore::SVGTRefElement::updateReferencedText):
475         * ksvg2/svg/SVGTextElement.cpp:
476         (WebCore::SVGTextElement::parseMappedAttribute):
477         (WebCore::SVGTextElement::animatedLocalTransform):
478         * ksvg2/svg/SVGTextElement.h:
479         * ksvg2/svg/SVGTextPathElement.cpp:
480         * ksvg2/svg/SVGTextPathElement.h:
481         * ksvg2/svg/SVGTransformable.cpp:
482         (WebCore::SVGTransformable::getCTM):
483         (WebCore::SVGTransformable::getScreenCTM):
484         * ksvg2/svg/SVGTransformable.h:
485         * ksvg2/svg/SVGUseElement.cpp:
486         (WebCore::SVGUseElement::createRenderer):
487         (WebCore::SVGUseElement::attachShadowTree):
488         * platform/graphics/AffineTransform.h:
489         (WebCore::AffineTransform::operator!=):
490         * platform/graphics/svg/SVGResourceMarker.cpp:
491         (WebCore::SVGResourceMarker::setMarker):
492         * platform/graphics/svg/SVGResourceMarker.h:
493         * rendering/RenderForeignObject.cpp:
494         (WebCore::RenderForeignObject::calculateLocalTransform):
495         (WebCore::RenderForeignObject::layout):
496         * rendering/RenderForeignObject.h:
497         (WebCore::RenderForeignObject::localTransform):
498         * rendering/RenderObject.cpp:
499         * rendering/RenderObject.h:
500         * rendering/RenderPath.cpp:
501         (WebCore::RenderPath::RenderPath):
502         (WebCore::RenderPath::localTransform):
503         (WebCore::RenderPath::calculateLocalTransform):
504         (WebCore::RenderPath::layout):
505         * rendering/RenderPath.h:
506         * rendering/RenderSVGContainer.cpp:
507         (WebCore::RenderSVGContainer::localTransform):
508         (WebCore::RenderSVGContainer::calculateLocalTransform):
509         (WebCore::RenderSVGContainer::layout):
510         * rendering/RenderSVGContainer.h:
511         * rendering/RenderSVGImage.h:
512         (WebCore::RenderSVGImage::localTransform):
513         * rendering/RenderSVGText.cpp:
514         (WebCore::RenderSVGText::calculateLocalTransform):
515         (WebCore::RenderSVGText::layout):
516         * rendering/RenderSVGText.h:
517         (WebCore::RenderSVGText::isSVGText):
518         (WebCore::RenderSVGText::localTransform):
519         * rendering/RenderSVGTextPath.cpp:
520         (WebCore::RenderSVGTextPath::layoutPath):
521         (WebCore::RenderSVGTextPath::startOffset):
522         (WebCore::RenderSVGTextPath::exactAlignment):
523         (WebCore::RenderSVGTextPath::stretchMethod):
524         * rendering/RenderSVGTextPath.h:
525         * rendering/RenderSVGTransformableContainer.cpp: Added.
526         (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
527         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
528         * rendering/RenderSVGTransformableContainer.h: Added.
529         * rendering/RenderSVGViewportContainer.h:
531 2007-10-10  Oliver Hunt  <oliver@apple.com>
533         Reviewed by Eric.
535         Bug 15451: SVGStyledElement must unregister itself from Resources on detach
536         
537         Use a global hashtable to maintain the relationship between the
538         various SVG resources and their clients, across dom updates, etc.
540         * ksvg2/svg/SVGStyledElement.cpp:
541         (WebCore::SVGStyledElement::detach):
542         * ksvg2/svg/SVGStyledElement.h:
543         * platform/graphics/svg/SVGPaintServer.h:
544         * platform/graphics/svg/SVGResource.cpp:
545         (WebCore::ResourceSet::ResourceSet):
546         (WebCore::clientMap):
547         (WebCore::SVGResource::~SVGResource):
548         (WebCore::SVGResource::invalidate):
549         (WebCore::SVGResource::removeClient):
550         (WebCore::SVGResource::addClient):
551         * platform/graphics/svg/SVGResource.h:
552         (WebCore::):
553         (WebCore::SVGResource::isPaintServer):
554         (WebCore::SVGResource::isFilter):
555         (WebCore::SVGResource::isClipper):
556         (WebCore::SVGResource::isMarker):
557         (WebCore::SVGResource::isMasker):
558         * platform/graphics/svg/SVGResourceClipper.h:
559         (WebCore::SVGResourceClipper::resourceType):
560         * platform/graphics/svg/SVGResourceFilter.h:
561         * platform/graphics/svg/SVGResourceMarker.h:
562         * platform/graphics/svg/SVGResourceMasker.h:
564 2007-10-10  Mark Rowe  <mrowe@apple.com>
566         Windows build fix after r26109.
568         * WebCore.vcproj/WebCore.vcproj:
570 2007-10-10  Oliver Hunt  <oliver@apple.com>
572         Reviewed by Eric.
574         Fix Bug 15433: Filters do not repaint when base resources change/update
576         SVGFEImage now actually responds to image updates, and triggers a repaint.
578         * platform/graphics/svg/SVGResource.h:
579         * platform/graphics/svg/filters/SVGFEImage.cpp:
580         (WebCore::SVGFEImage::setCachedImage):
581           Don't re-set the image lest we want to trigger infinite recursion.
582         (WebCore::SVGFEImage::imageChanged):
583           Image change means we need to tell our clients to repaint
584         * platform/graphics/svg/filters/SVGFEImage.h:
585         * rendering/SVGRenderSupport.cpp:
586         (WebCore::prepareToRenderSVGContent):
587           make sure that users of filters are registered.
589 2007-10-09  Eric Seidel  <eric@webkit.org>
591         Reviewed by Alp.
593         Track changes in r26109 to fix the Gtk+ build.
595         * WebCore.pro:
597 2007-10-09  Alexey Proskuryakov  <ap@webkit.org>
599         Reviewed by Anders.
601         http://bugs.webkit.org/show_bug.cgi?id=15436
602         Wrong node order for XPath reverse axes
604         Test: fast/xpath/reverse-axes.html
606         * xml/XPathStep.cpp:
607         (WebCore::XPath::Step::nodesInAxis): Do not prematurely sort reverse
608         axes. Generate preceding axis nodes in reversed document order.
610 2007-10-09  Alexey Proskuryakov  <ap@webkit.org>
612         Reviewed by Mitz.
614         http://bugs.webkit.org/show_bug.cgi?id=15437
615         XPath substring-after function is broken
617         Test: fast/xpath/substring-after.html
619         * xml/XPathFunctions.cpp:
620         (WebCore::XPath::FunSubstringAfter::evaluate): Fix it for real this time, hopefully.
622 2007-10-09  Rob Buis  <buis@kde.org>
624         Reviewed by Eric.
626         http://bugs.webkit.org/show_bug.cgi?id=15080
627         <use> element not refresh after adding objects by script in referrer
629         Update shadow tree when elements are added/removed from a tree
630         that is referenced by a <use>.
632         * ksvg2/svg/SVGStyledElement.cpp:
633         (WebCore::SVGStyledElement::childrenChanged):
634         * ksvg2/svg/SVGStyledElement.h:
636 2007-10-09  Rob Buis  <buis@kde.org>
638         Reviewed by Maciej.
640         http://bugs.webkit.org/show_bug.cgi?id=15088
641         HTMLOptionElement.selected returns false when parent HTMLSelectElement is "display: none" until parent's .selectedIndex is accessed
643         Make sure the list items are up to date when there is no renderer.
645         * html/HTMLSelectElement.cpp:
646         (WebCore::HTMLSelectElement::recalcStyle):
648 2007-10-08  Eric Seidel  <eric@webkit.org>
650         Reviewed by Oliver.
652         Build fix.  Fix circular build rule for CSS*.in files evident on clean build.
654         * DerivedSources.make:
655         * WebCore.xcodeproj/project.pbxproj:
656         * ksvg2/css/CSSPropertyNames.in: Removed.
657         * ksvg2/css/CSSValueKeywords.in: Removed.
658         * ksvg2/css/SVGCSSPropertyNames.in: Copied from ksvg2/css/CSSPropertyNames.in.
659         * ksvg2/css/SVGCSSValueKeywords.in: Copied from ksvg2/css/CSSValueKeywords.in.
661 2007-10-08  Eric Seidel  <eric@webkit.org>
663         Reviewed by hyatt.
665         Implement getComputedStyle support for SVG CSS values
666         http://bugs.webkit.org/show_bug.cgi?id=15422
667         
668         This also unifies SVG and non-SVG CSS hash lookups. A unified hash
669         solves correctness problems as well as offers improved speed.
670         
671         Test: svg/css/getComputedStyle-basic.xhtml
673         * DerivedSources.make: unify SVG and non-SVG CSS hash files
674         * WebCore.xcodeproj/project.pbxproj: remove old SVG CSS hash files
675         * css/CSSComputedStyleDeclaration.cpp:
676         (WebCore::):
677         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): call getPropertyCSSValue
678         * css/CSSComputedStyleDeclaration.h: add getPropertyCSSValue
679         * css/CSSGrammar.y:
680         * css/CSSParser.cpp:
681         (WebCore::CSSParser::parseValue):
682         * css/CSSStyleDeclaration.cpp:
683         (WebCore::propertyID):
684         * css/CSSStyleSelector.cpp:
685         (WebCore::CSSStyleSelector::applyProperty):
686         * ksvg2/css/CSSPropertyNames.in: remove font-size-adjust
687         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Added.
688         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): added.
689         * ksvg2/css/SVGCSSParser.cpp:
690         (WebCore::CSSParser::parseSVGValue):
691         * ksvg2/css/SVGCSSStyleSelector.cpp:
692         (WebCore::CSSStyleSelector::applySVGProperty):
693         * ksvg2/scripts/cssmakeprops: Removed.
694         * ksvg2/scripts/cssmakevalues: Removed.
695         * ksvg2/svg/SVGAnimationElement.cpp:
696         * ksvg2/svg/SVGStyledElement.cpp:
697         (WebCore::mapAttributeToCSSProperty):
698         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): remove font-size-adjust
700 2007-10-08  Sam Weinig  <sam@webkit.org>
702         Reviewed by Steve Falkenburg;
704         Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
706         Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
708         * dom/XMLTokenizer.cpp:
709         (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
710         (WebCore::XMLTokenizer::columnNumber): ditto.
712 2007-10-08  Alexey Proskuryakov  <ap@webkit.org>
714         * platform/mac/FontPlatformDataMac.mm:
715         (WebCore::FontPlatformData::setFont): Restored one of the -1 checks removed in
716         the previous change - we do need to check m_font!
718 2007-10-08  Alexey Proskuryakov  <ap@webkit.org>
720         Reviewed by Darin.
722         http://bugs.webkit.org/show_bug.cgi?id=15397
723         Layout tests freeze in HashTable::lookup
725         Fixes a DRT freeze on PowerPC.
727         * platform/mac/FontPlatformDataMac.mm:
728         (WebCore::FontPlatformData::FontPlatformData): Don't ask for a size of a nil font,
729         the result is undefined.
730         (WebCore::FontPlatformData::setFont): Ditto. Also removed some checks for -1 that
731         were not sufficient, and thus likely unnecessary,
733 2007-10-07  Nikolas Zimmermann  <zimmermann@kde.org>
735         Reviewed by Eric.
737         Fix some issues with rotation & baseline-shift, when spanning
738         across <tspan> elements. Highlighted by the existing batik tests.
740         * rendering/SVGCharacterLayoutInfo.cpp:
741         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
742         (WebCore::SVGCharacterLayoutInfo::processedChunk):
743         (WebCore::SVGChar::characterTransform):
744         * rendering/SVGCharacterLayoutInfo.h:
745         * rendering/SVGInlineTextBox.cpp:
746         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
747         (WebCore::SVGInlineTextBox::paintCharacters):
748         (WebCore::SVGInlineTextBox::paintDecoration):
749         * rendering/SVGRootInlineBox.cpp:
750         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
752 2007-10-07  Mark Rowe  <mrowe@apple.com>
754         Reviewed by Maciej.
756         Bug 5122: Need an equivalent of Mozilla's DOMContentLoaded event
757         http://bugs.webkit.org/show_bug.cgi?id=5122
759         This is based on a patch by Daniel Peebles (pumpkingod@gmail.com).
761         Test: http/tests/loading/DOMContentLoaded-event.html
763         * dom/Document.cpp:
764         (WebCore::Document::finishedParsing): Dispatch the DOMContentLoaded event when parsing completes.
765         * dom/EventNames.h:  Add DOMContentLoaded to the list of events.
767 2007-10-07  Alexey Proskuryakov  <ap@webkit.org>
769         Reviewed by Eric Seidel.
771         http://bugs.webkit.org/show_bug.cgi?id=15368
772         xsl:import fails when preceded by comment
774         Test: fast/xsl/import-after-comment.xml
776         * xml/XSLStyleSheet.cpp:
777         (WebCore::XSLStyleSheet::loadChildSheets): It's OK for xsl:import to be preceded by
778         non-element nodes.
780 2007-10-07  Vincent Ricard  <magic@magicninja.org>
782         Reviewed by Maciej.  Landed by eseidel.
784         http://bugs.webkit.org/show_bug.cgi?id=15062
785         Implement document.compatMode
787         Tests: fast/dom/compatMode-AlmostStrict.html
788                fast/dom/compatMode-Compat.html
789                fast/dom/compatMode-Strict.html
791         * html/HTMLDocument.cpp:
792         (WebCore::HTMLDocument::compatMode):
793         * html/HTMLDocument.h:
794         * html/HTMLDocument.idl:
796 2007-10-07  Sam Weinig  <sam@webkit.org>
798         Reviewed by Darin & Nikolas.  Landed by eseidel.
800         Patch for http://bugs.webkit.org/show_bug.cgi?id=14455
801         Autogenerate the JS bindings for the StyleSheetList
803         * DerivedSources.make:
804         * WebCore.pro:
805         * WebCore.vcproj/WebCore.vcproj:
806         * WebCore.xcodeproj/project.pbxproj:
807         * bindings/js/JSStyleSheetListCustom.cpp: Added.
808         (WebCore::JSStyleSheetList::canGetItemsForName):
809         (WebCore::JSStyleSheetList::nameGetter):
810         * bindings/js/kjs_css.cpp:
811         * bindings/js/kjs_css.h:
812         * bindings/objc/DOMUtility.mm:
813         * bindings/scripts/CodeGeneratorJS.pm:
814         * css/StyleSheetList.cpp:
815         (WebCore::StyleSheetList::StyleSheetList):
816         (WebCore::StyleSheetList::documentDestroyed):
817         (WebCore::StyleSheetList::getNamedItem):
818         * css/StyleSheetList.h: Add Document member variable and
819         getNamedItem function to accommodate the odd javascript 
820         name getter functionality.
821         * css/StyleSheetList.idl:
822         * dom/Document.cpp:
823         (WebCore::Document::Document):
824         (WebCore::Document::~Document):
825         * page/DOMWindow.idl: Add StyleSheetListConstructor
827 2007-10-07  Lars Naesbye Christensen  <lars@naesbye.dk>
829         Reviewed by Eric Seidel.
831         make CSS cell cursor more mac-like
832         http://bugs.webkit.org/show_bug.cgi?id=15325
834         * Resources/cellCursor.png:
836 2007-10-06  Eric Seidel  <eric@webkit.org>
838         Reviewed by Oliver.
839         
840         SVG does not correctly handle onfocusin, onfocusout or onactivate
841         http://bugs.webkit.org/show_bug.cgi?id=12573
843         Test: svg/W3C-SVG-1.1/script-handle-02-b.svg
845         * ksvg2/svg/SVGElement.cpp:
846         (WebCore::SVGElement::parseMappedAttribute):
847         * ksvg2/svg/svgattrs.in: add onfocusin, onfocusout and onactivate
849 2007-10-06  Nikolas Zimmermann  <zimmermann@kde.org>
851         Reviewed by Oliver.
853         Never pass null input images to CICrop filter.
855         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
856         (WebCore::SVGFEComponentTransfer::getCIFilter):
857         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
859 2007-10-06  Mark Rowe  <mrowe@apple.com>
861         Reviewed by Alp Toker.
863         Gtk+ build fix and minor code cleanup.
865         * WebCore.pro:
866         * platform/gtk/FontCacheGtk.cpp:
867         (WebCore::FontCache::getLastResortFallbackFont):
868         (WebCore::FontCache::fontExists):
870 2007-10-06  Alexey Proskuryakov  <ap@webkit.org>
872         Reviewed by Mitz.
874         http://bugs.webkit.org/show_bug.cgi?id=15380
875         XPath: id('foo') doesn't resolve correctly
877         Test: fast/xpath/id-simple.html
879         * xml/XPathFunctions.cpp:
880         (WebCore::XPath::FunId::evaluate): Fixed a logic error in id() parameter parsing.
882 2007-10-06  Alexey Proskuryakov  <ap@webkit.org>
884         Reviewed by Darin.
886         Patch for http://bugs.webkit.org/show_bug.cgi?id=13707
887         REGRESSION: JavaScript exceptions on quotes.burntelectrons.org
889         http://bugs.webkit.org/show_bug.cgi?id=12628
890         document.body is not supported in XHTML documents
892         http://bugs.webkit.org/show_bug.cgi?id=14213
893         On page with MIME type application/xhtml+xml, cookie don't work
895         Moved a bunch of methods and properties from HTMLDocument down into Document to make
896         them available for all documents (xml, svg).
897         What was kept in HTMLDocument:
898         - some methods and properties that are not in HTML5 (yet?);
899         - open/write/writeln/close, as they will need to be modified to work on XML documents, and aren't
900         of much use for those anyway;
901         - designMode, because its definition in HTML5 is incompatible with our implementation.
903         Covered by existing tests.
905         * bindings/js/JSDocumentCustom.cpp:
906         (WebCore::JSDocument::location):
907         (WebCore::JSDocument::setLocation):
908         * bindings/js/JSHTMLDocumentCustom.cpp:
909         * bindings/objc/PublicDOMInterfaces.h:
910         * dom/Document.cpp:
911         (WebCore::Document::setBody):
912         (WebCore::Document::cookie):
913         (WebCore::Document::setCookie):
914         (WebCore::Document::lastModified):
915         * dom/Document.h:
916         (WebCore::Document::title):
917         * dom/Document.idl:
918         * html/HTMLDocument.cpp:
919         * html/HTMLDocument.h:
920         * html/HTMLDocument.idl:
922 2007-10-06  Eric Seidel  <eric@webkit.org>
924         Reviewed by Oliver Hunt.
926         RenderSVGContainer (<g>) should not repaint when its bounds change (unless it has a filter)
927         http://bugs.webkit.org/show_bug.cgi?id=15388
928         This makes the Sun Lively Kernel invalidate only what it should!
929         
930         No tests possible in DRT.
932         * ksvg2/svg/SVGCircleElement.cpp:
933         (WebCore::SVGCircleElement::notifyAttributeChange): replace call to rebuildRenderer
934         * ksvg2/svg/SVGEllipseElement.cpp:
935         (WebCore::SVGEllipseElement::notifyAttributeChange): replace call to rebuildRenderer
936         * ksvg2/svg/SVGImageElement.cpp:
937         (WebCore::SVGImageElement::notifyAttributeChange): replace call to rebuildRenderer
938         (WebCore::SVGImageElement::hasRelativeValues): implemented
939         * ksvg2/svg/SVGImageElement.h:
940         * ksvg2/svg/SVGLineElement.cpp:
941         (WebCore::SVGLineElement::notifyAttributeChange): replace call to rebuildRenderer
942         * ksvg2/svg/SVGPathElement.cpp:
943         (WebCore::SVGPathElement::notifyAttributeChange): replace call to rebuildRenderer
944         * ksvg2/svg/SVGPolyElement.cpp:
945         (WebCore::SVGPolyElement::notifyAttributeChange): replace call to rebuildRenderer
946         * ksvg2/svg/SVGRectElement.cpp:
947         (WebCore::SVGRectElement::notifyAttributeChange): replace call to rebuildRenderer
948         * ksvg2/svg/SVGStyledElement.cpp:
949         * ksvg2/svg/SVGStyledElement.h:
950         (WebCore::SVGStyledElement::hasRelativeValues): default to true instead
951         * ksvg2/svg/SVGStyledTransformableElement.cpp:
952         (WebCore::SVGStyledTransformableElement::updateLocalTransform): don't layout if no change
953         * ksvg2/svg/SVGStyledTransformableElement.h:
954         * ksvg2/svg/SVGTransform.h:
955         * rendering/RenderPath.cpp:
956         (WebCore::RenderPath::layout):
957         * rendering/RenderPath.h:
958         * rendering/RenderSVGContainer.cpp:
959         (WebCore::RenderSVGContainer::layout):
960         (WebCore::RenderSVGContainer::selfWillPaint): return true if have a filter
961         (WebCore::RenderSVGContainer::paint):
962         * rendering/RenderSVGContainer.h:
963         * rendering/RenderSVGHiddenContainer.cpp:
964         (WebCore::RenderSVGHiddenContainer::layout):
965         * rendering/RenderSVGRoot.cpp:
966         (WebCore::RenderSVGRoot::layout):
967         * rendering/RenderSVGViewportContainer.cpp:
968         (WebCore::RenderSVGViewportContainer::layout):
969         (WebCore::RenderSVGViewportContainer::calcViewport): use floats
971 2007-10-06  Rob Buis  <buis@kde.org>
973         Reviewed by Eric.
975         Use document() instead of ownerDocument() and a few other cleanups.
977         * ksvg2/misc/SVGDocumentExtensions.cpp:
978         (WebCore::SVGDocumentExtensions::mapInstanceToElement):
979         * ksvg2/svg/SVGCircleElement.cpp:
980         (WebCore::SVGCircleElement::notifyAttributeChange):
981         * ksvg2/svg/SVGClipPathElement.cpp:
982         (WebCore::SVGClipPathElement::notifyAttributeChange):
983         * ksvg2/svg/SVGElementInstance.cpp:
984         (WebCore::containsUseChildNode):
985         * ksvg2/svg/SVGEllipseElement.cpp:
986         (WebCore::SVGEllipseElement::notifyAttributeChange):
987         * ksvg2/svg/SVGGradientElement.cpp:
988         (WebCore::SVGGradientElement::notifyAttributeChange):
989         * ksvg2/svg/SVGImageElement.cpp:
990         (WebCore::SVGImageElement::notifyAttributeChange):
991         * ksvg2/svg/SVGLineElement.cpp:
992         (WebCore::SVGLineElement::notifyAttributeChange):
993         * ksvg2/svg/SVGMarkerElement.cpp:
994         (WebCore::SVGMarkerElement::notifyAttributeChange):
995         * ksvg2/svg/SVGMaskElement.cpp:
996         (WebCore::SVGMaskElement::notifyAttributeChange):
997         * ksvg2/svg/SVGPathElement.cpp:
998         (WebCore::SVGPathElement::notifyAttributeChange):
999         * ksvg2/svg/SVGPatternElement.cpp:
1000         (WebCore::SVGPatternElement::notifyAttributeChange):
1001         * ksvg2/svg/SVGPolyElement.cpp:
1002         (WebCore::SVGPolyElement::notifyAttributeChange):
1003         * ksvg2/svg/SVGRectElement.cpp:
1004         (WebCore::SVGRectElement::notifyAttributeChange):
1005         * ksvg2/svg/SVGStopElement.cpp:
1006         (WebCore::SVGStopElement::notifyAttributeChange):
1008 2007-10-05  Eric Seidel  <eric@webkit.org>
1010         Reviewed by Oliver Hunt.
1012         SVG invalidates way too much during layout()
1013         http://bugs.webkit.org/show_bug.cgi?id=14003
1015         * ksvg2/svg/SVGElement.cpp:
1016         (WebCore::SVGElement::ownerSVGElement): simplify if
1017         (WebCore::SVGElement::viewportElement): simplify if
1018         * rendering/RenderSVGContainer.cpp:
1019         (WebCore::RenderSVGContainer::layout): only layout children if parent changed
1020         * rendering/RenderSVGRoot.cpp:
1021         (WebCore::RenderSVGRoot::layout): only layout children when size changes
1022         * rendering/RenderSVGText.cpp:
1023         (WebCore::RenderSVGText::layout): hack to avoid bad RenderBlock::layout code
1024         * rendering/RenderSVGViewportContainer.cpp:
1025         (WebCore::RenderSVGViewportContainer::layout): don't use RenderSVGContainer::layout()
1027 2007-10-05  Oliver Hunt  <oliver@apple.com>
1029         Reviewed by Eric.
1031         30%+ performance improvement for svg embedded in xhtml
1033         Relayout internal to SVG was incorrectly being propagated to
1034         the containing xhtml element, which subsequently resulted in
1035         a full paint of the SVG, rather than just the dirty regions.
1037         * rendering/RenderObject.cpp:
1038         (WebCore::objectIsRelayoutBoundary):
1039         (WebCore::RenderObject::markContainingBlocksForLayout):
1041 2007-10-03  Eric Seidel  <eric@webkit.org>
1043         Reviewed by Maciej.
1044         
1045         http://bugs.webkit.org/show_bug.cgi?id=12310
1046         Remove static variables from removeAllChildren causing crash.
1047         removeAllChildren now iterates over the entire tree instead of recursing.
1048         Also (according to Maciej) a possible 1-2% speedboost on HTML iBench.
1050         Test: fast/images/svg-background-crash-on-refresh.html
1052         * WebCore.xcodeproj/project.pbxproj:
1053         * dom/ContainerNode.cpp:
1054         (WebCore::addChildNodesToDeletionQueue):
1055         (WebCore::ContainerNode::removeAllChildren): use new addChildNodesToDeletionQueue
1057 2007-10-03  David Hyatt  <hyatt@apple.com>
1059         Land support for the CSS @font-face rule.  This patch allows custom fonts
1060         to be downloaded from the Web and rendered in Web pages.  Right now only
1061         TrueType fonts are supported.  Proprietary formats like .eot are not
1062         supported.
1064         Reviewed by Eric Seidel
1066         Many tests will be coming in a future landing.
1068         * WebCore.base.exp:
1069         Expose some more stuff for WebKit, caused by font restructuring.
1071         * WebCore.xcodeproj/project.pbxproj:
1072         Add all the new font face files.
1074         * css/CSSComputedStyleDeclaration.cpp:
1075         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1076         Make sure to ignore the 'src' property of @font-face rules.
1078         * css/CSSFontFace.cpp: Added.
1079         (WebCore::CSSFontFace::CSSFontFace):
1080         (WebCore::CSSFontFace::~CSSFontFace):
1081         (WebCore::CSSFontFace::isLoaded):
1082         (WebCore::CSSFontFace::isValid):
1083         (WebCore::CSSFontFace::addSource):
1084         (WebCore::CSSFontFace::fontLoaded):
1085         (WebCore::CSSFontFace::getFontData):
1086         * css/CSSFontFace.h: Added.
1087         A CSSFontFace is a composite object.  It consists of multiple font-face sources, where each source represents either a remote or local
1088         file in a @font-face rule's src list.
1090         * css/CSSFontFaceRule.cpp:
1091         (WebCore::CSSFontFaceRule::setDeclaration):
1092         (WebCore::CSSFontFaceRule::cssText):
1093         * css/CSSFontFaceRule.h:
1094         The implementation of the @font-face rule itself in the CSS sheet back end.
1095         
1096         * css/CSSFontFaceSource.cpp: Added.
1097         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
1098         (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
1099         (WebCore::CSSFontFaceSource::pruneTable):
1100         (WebCore::CSSFontFaceSource::isLoaded):
1101         (WebCore::CSSFontFaceSource::isValid):
1102         (WebCore::CSSFontFaceSource::fontLoaded):
1103         (WebCore::CSSFontFaceSource::getFontData):
1104         * css/CSSFontFaceSource.h: Added.
1105         (WebCore::CSSFontFaceSource::string):
1106         (WebCore::CSSFontFaceSource::setFontFace):
1107         A font face source represents a single remote or local font.  If it represents a remote font than it wraps a CachedFont.
1108         
1109         * css/CSSFontFaceSrcValue.cpp: Added.
1110         (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
1111         (WebCore::CSSFontFaceSrcValue::cssText):
1112         * css/CSSFontFaceSrcValue.h: Added.
1113         (WebCore::CSSFontFaceSrcValue::m_isLocal):
1114         (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
1115         (WebCore::CSSFontFaceSrcValue::resource):
1116         (WebCore::CSSFontFaceSrcValue::format):
1117         (WebCore::CSSFontFaceSrcValue::isLocal):
1118         (WebCore::CSSFontFaceSrcValue::setFormat):
1119         Used in parsing.  Represents the parsed form of the src value that can then be used to build up a CSSFontFace.
1121         * css/CSSFontSelector.cpp: Added.
1122         (WebCore::CSSFontSelector::CSSFontSelector):
1123         (WebCore::CSSFontSelector::~CSSFontSelector):
1124         (WebCore::CSSFontSelector::isEmpty):
1125         (WebCore::CSSFontSelector::docLoader):
1126         (WebCore::hashForFont):
1127         (WebCore::CSSFontSelector::addFontFaceRule):
1128         (WebCore::CSSFontSelector::fontLoaded):
1129         (WebCore::CSSFontSelector::getFontData):
1130         * css/CSSFontSelector.h: Added.
1131         The CSS font selector is the object that selects the correct font given a specified font family.  It builds up a database of CSSFontFaces that can then be handed
1132         back.
1134         * css/CSSGrammar.y:
1135         * css/CSSParser.cpp:
1136         (WebCore::CSSParser::parseValue):
1137         (WebCore::CSSParser::parseFontFaceSrc):
1138         (WebCore::CSSParser::createFontFaceRule):
1139         * css/CSSParser.h:
1140         Modify the CSS grammar to now understand @font-face rules.
1142         * css/CSSPropertyNames.in:
1143         Add the src property.
1145         * css/CSSStyleSelector.cpp:
1146         (WebCore::CSSStyleSelector::CSSStyleSelector):
1147         (WebCore::CSSStyleSelector::styleForElement):
1148         (WebCore::CSSStyleSelector::updateFont):
1149         (WebCore::CSSRuleSet::addRulesFromSheet):
1150         (WebCore::CSSStyleSelector::applyProperty):
1151         (WebCore::CSSStyleSelector::ensureFontSelector):
1152         * css/CSSStyleSelector.h:
1153         (WebCore::CSSStyleSelector::fontSelector):
1154         The style selector now creates a font selector object and feeds it the appropriate information when @font-face rules are encountered.
1155     
1156         * dom/Document.cpp:
1157         (WebCore::Document::recalcStyle):
1158         Patch the update method now that it takes a font selector argument.
1159     
1160         * loader/Cache.cpp:
1161         (WebCore::createResource):
1162         (WebCore::Cache::getStatistics):
1163         * loader/Cache.h:
1164         Teach the Cache about CachedFonts.
1166         * loader/CachedFont.cpp: Added.
1167         (WebCore::CachedFont::CachedFont):
1168         (WebCore::CachedFont::~CachedFont):
1169         (WebCore::CachedFont::ref):
1170         (WebCore::CachedFont::data):
1171         (WebCore::CachedFont::beginLoadIfNeeded):
1172         (WebCore::CachedFont::ensureCustomFontData):
1173         (WebCore::CachedFont::platformDataFromCustomData):
1174         (WebCore::CachedFont::allReferencesRemoved):
1175         (WebCore::CachedFont::checkNotify):
1176         (WebCore::CachedFont::error):
1177         * loader/CachedFont.h: Added.
1178         (WebCore::CachedFont::schedule):
1179         The implementation of CachedFont.  This represents the downloaded resource and has all the raw font data.
1181         * loader/CachedResource.h:
1182         (WebCore::CachedResource::):
1183         * loader/CachedResourceClient.h:
1184         (WebCore::CachedResourceClient::fontLoaded):
1185         Add a new fontLoaded method for clients of cached resources to track when fonts finish downloading.
1186     
1187         * loader/DocLoader.cpp:
1188         (WebCore::DocLoader::requestFont):
1189         * loader/DocLoader.h:
1190          Add the ability to request a font.
1192         * platform/Font.cpp:
1193         (WebCore::Font::operator==):
1194         (WebCore::Font::update):
1195         (WebCore::Font::drawText):
1196         * platform/Font.h:
1197         * platform/FontCache.cpp:
1198         (WebCore::FontCache::getFontData):
1199         * platform/FontCache.h:
1200         * platform/FontData.cpp:
1201         (WebCore::FontData::FontData):
1202         * platform/FontData.h:
1203         (WebCore::FontData::isCustomFont):
1204         (WebCore::FontData::isLoading):
1205         * platform/FontFallbackList.cpp:
1206         (WebCore::FontFallbackList::FontFallbackList):
1207         (WebCore::FontFallbackList::invalidate):
1208         (WebCore::FontFallbackList::fontDataAt):
1209         * platform/FontFallbackList.h:
1210         (WebCore::FontFallbackList::loadingCustomFonts):
1211         (WebCore::FontFallbackList::fontSelector):
1212         * platform/FontSelector.h: Added.
1213         (WebCore::FontSelector::~FontSelector):
1214         * platform/GlyphPageTreeNode.cpp:
1215         (WebCore::GlyphPageTreeNode::getRoot):
1216         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
1217         (WebCore::GlyphPageTreeNode::~GlyphPageTreeNode):
1218         (WebCore::GlyphPageTreeNode::initializePage):
1219         (WebCore::GlyphPageTreeNode::getChild):
1220         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
1221         * platform/GlyphPageTreeNode.h:
1222         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
1223         (WebCore::GlyphPageTreeNode::page):
1224         * platform/PopupMenuClient.h:
1225         * platform/mac/FontCacheMac.mm:
1226         (WebCore::FontCache::getFontDataForCharacters):
1227         (WebCore::FontCache::getLastResortFallbackFont):
1228         (WebCore::FontCache::fontExists):
1229         (WebCore::FontCache::createFontPlatformData):
1230         * platform/mac/FontCustomPlatformData.cpp: Added.
1231         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1232         (WebCore::FontCustomPlatformData::fontPlatformData):
1233         (WebCore::createFontCustomPlatformData):
1234         * platform/mac/FontCustomPlatformData.h: Added.
1235         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1236         * platform/mac/FontDataMac.mm:
1237         (WebCore::initFontData):
1238         (WebCore::FontData::platformInit):
1239         (WebCore::FontData::smallCapsFontData):
1240         (WebCore::FontData::platformWidthForGlyph):
1241         (WebCore::FontData::checkShapesArabic):
1242         * platform/mac/FontMac.mm:
1243         (WebCore::initializeATSUStyle):
1244         (WebCore::Font::drawGlyphs):
1245         * platform/mac/FontPlatformData.h:
1246         (WebCore::FontPlatformData::FontPlatformData):
1247         (WebCore::FontPlatformData::hash):
1248         (WebCore::FontPlatformData::operator==):
1249         * platform/mac/FontPlatformDataMac.mm: Added.
1250         (WebCore::FontPlatformData::FontPlatformData):
1251         (WebCore::~FontPlatformData):
1252         (WebCore::FontPlatformData::setFont):
1253         * platform/mac/WebCoreSystemInterface.h:
1254         * platform/mac/WebCoreSystemInterface.mm:
1255         * platform/win/FontCacheWin.cpp:
1256         (WebCore::FontCache::getLastResortFallbackFont):
1257         (WebCore::FontCache::fontExists):
1258         * platform/win/FontCustomPlatformData.cpp: Added.
1259         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1260         (WebCore::FontCustomPlatformData::fontPlatformData):
1261         (WebCore::getData):
1262         (WebCore::releaseData):
1263         (WebCore::getBytesWithOffset):
1264         (WebCore::createFontCustomPlatformData):
1265         * platform/win/FontCustomPlatformData.h: Added.
1266         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1267         * platform/win/FontDataWin.cpp:
1268         (WebCore::FontData::platformInit):
1269         (WebCore::FontData::platformDestroy):
1270         (WebCore::FontData::smallCapsFontData):
1271         (WebCore::FontData::containsCharacters):
1272         (WebCore::FontData::determinePitch):
1273         * platform/win/FontPlatformData.h:
1274         (WebCore::FontPlatformData::FontPlatformData):
1275         (WebCore::FontPlatformData::hash):
1276         (WebCore::FontPlatformData::operator==):
1277         * platform/win/FontPlatformDataWin.cpp:
1278         (WebCore::FontPlatformData::FontPlatformData):
1279         * platform/win/PopupMenuWin.cpp:
1280         (WebCore::PopupMenu::paint):
1281         Changes to platform to support rendering of custom fonts.  Too large to go into, but for ports, the relevant object to implement is
1282         FontCustomPlatformData (to get the data loaded into your native font format), and then you have to patch your other font objects to know
1283         how to use the font.
1285         * rendering/RenderListBox.cpp:
1286         (WebCore::RenderListBox::updateFromElement):
1287         (WebCore::RenderListBox::paintItemForeground):
1288         * rendering/RenderMenuList.cpp:
1289         (WebCore::RenderMenuList::fontSelector):
1290         * rendering/RenderMenuList.h:
1291         * rendering/RenderTextControl.cpp:
1292         (WebCore::RenderTextControl::fontSelector):
1293         * rendering/RenderTextControl.h:
1294         * rendering/RenderThemeMac.mm:
1295         (WebCore::RenderThemeMac::setFontFromControlSize):
1296         * rendering/RenderThemeSafari.cpp:
1297         (WebCore::RenderThemeSafari::setFontFromControlSize):
1298         Patches for update now taking a font selector argument.
1299     
1300 2007-10-03  Rob Buis  <buis@kde.org>
1302         Reviewed by Eric.
1304         Remove unneeded code and other cleanups.
1306         * ksvg2/svg/SVGScriptElement.cpp:
1307         (WebCore::SVGScriptElement::parseMappedAttribute):
1308         * ksvg2/svg/SVGScriptElement.h:
1310 2007-10-03  Rob Buis  <buis@kde.org>
1312         Reviewed by Maciej.
1314         http://bugs.webkit.org/show_bug.cgi?id=15260
1315         Any styles defined after <element> {<property>:%} style are ignored by Safari
1316     
1317         Add dummy rule to skip constructions like width: %.
1319         * css/CSSGrammar.y:
1321 2007-10-03  Mark Rowe  <mrowe@apple.com>
1323         Reviewed by Lars.
1325         Get Gtk+ port building on the feature branch.
1327         * WebCore.pro:
1328         * ksvg2/svg/SVGSVGElement.cpp:
1329         * platform/graphics/svg/cairo/RenderPathCairo.cpp:
1330         (WebCore::RenderPath::strokeContains):
1331         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
1332         (WebCore::SVGPaintServer::draw):
1333         (WebCore::SVGPaintServer::renderPath):
1334         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
1335         (WebCore::SVGPaintServerSolid::setup):
1336         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
1337         (WebCore::SVGResourceMasker::applyMask):
1338         * rendering/SVGCharacterLayoutInfo.cpp:
1339         * rendering/SVGInlineTextBox.cpp:
1340         * rendering/SVGRootInlineBox.cpp:
1342 2007-10-02  Alexey Proskuryakov  <ap@webkit.org>
1344         Reviewed by Maciej.
1346         http://bugs.webkit.org/show_bug.cgi?id=15102
1347         XMLHttpRequests should dispatch a readystatechange event.
1349         Test: http/tests/xmlhttprequest/readystatechange.html
1351         * xml/XMLHttpRequest.cpp:
1352         (WebCore::XMLHttpRequest::callReadyStateChangeListener): Added readystatechange
1353         event support. Fixed the function to dispatch the same event to all listeners
1354         instead of creating a new copy for each one. Changed bubbling/cancelability of
1355         load and readystatechange events to match Firefox.
1357 2007-10-02  Eric Seidel  <eric@webkit.org>
1359         Reviewed by Oliver Hunt.
1361         http://bugs.webkit.org/show_bug.cgi?id=13828
1362         Fixes svg/custom/rootmost-svg-xy-attrs.xhtml
1364         * WebCore.xcodeproj/project.pbxproj: fix warning about SVGDOM.h
1365         * ksvg2/svg/SVGSVGElement.cpp:
1366         (WebCore::SVGSVGElement::viewport): use new isOutermostSVG()
1367         (WebCore::SVGSVGElement::getCTM): use isOutermostSVG()
1368         (WebCore::SVGSVGElement::getScreenCTM): use isOutermostSVG()
1369         (WebCore::SVGSVGElement::createRenderer): use isOutermostSVG()
1370         (WebCore::SVGSVGElement::isOutermostSVG):
1371         * ksvg2/svg/SVGSVGElement.h: add isOutermostSVG
1372         * rendering/RenderSVGRoot.cpp:
1373         (WebCore::RenderSVGRoot::calcViewport): ignore x/y
1375 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1377         Reviewed by Mitz.
1378         
1379         - Avoid uselessly serializing CSS property values on replacement for 10% CK DOM speedup
1380         http://bugs.webkit.org/show_bug.cgi?id=15340
1382         * css/CSSMutableStyleDeclaration.cpp:
1383         (WebCore::CSSMutableStyleDeclaration::removeProperty): Don't generate return value unless needed.
1384         (WebCore::CSSMutableStyleDeclaration::setProperty): Use the no-return version appropriately.
1385         * css/CSSMutableStyleDeclaration.h:
1386         (WebCore::CSSMutableStyleDeclaration::removeProperty): New version with no return value.
1388 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1390         Reviewed by Oliver.
1392         - Use Vector<UChar> instead of DeprecatedString for innerHTML, for 35% speedup on CK DOM test
1393         http://bugs.webkit.org/show_bug.cgi?id=15339
1395         Rewrote both versions of createMarkup to build based on
1396         Vector<UChar> instead of String. Also other miscellaneous
1397         speedups (mainly content strings are now encoded in a way that
1398         doesn't take a function call per character, and switch is avoided).
1399         
1400         This also causes a functional change - we no longer escape '>' since this was unnecessary and it's faster
1401         to avoid testing for it. See updated test results.
1402         
1403         * editing/markup.cpp:
1404         (WebCore::appendString):
1405         (WebCore::appendAttributeValue):
1406         (WebCore::escapeContentText):
1407         (WebCore::appendEscapedContent):
1408         (WebCore::appendDeprecatedString):
1409         (WebCore::appendQuotedURLAttributeValue):
1410         (WebCore::stringValueForRange):
1411         (WebCore::ucharRange):
1412         (WebCore::appendUCharRange):
1413         (WebCore::appendNamespace):
1414         (WebCore::appendStartMarkup):
1415         (WebCore::getStartMarkup):
1416         (WebCore::appendEndMarkup):
1417         (WebCore::getEndMarkup):
1418         (WebCore::appendMarkup):
1419         (WebCore::joinMarkups):
1420         (WebCore::createMarkup):
1421         * editing/markup.h:
1422         * page/mac/WebCoreFrameBridge.mm:
1423         (-[WebCoreFrameBridge markupStringFromNode:nodes:]):
1424         (-[WebCoreFrameBridge markupStringFromRange:nodes:]):
1426 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1428         Reviewed by Eric.
1429         
1430         - fixed "innerHTML updates layout every time (very bad if adding to it in a loop)"
1431         http://bugs.webkit.org/show_bug.cgi?id=15326
1432         (65% speedup on Celtic Kane JS 2007 DOM test)
1434         * editing/markup.cpp:
1435         (WebCore::createMarkup): The Node version of this function currently never uses
1436         the render tree, so don't bother to update layout. This is the version used for
1437         innerHTML.
1439 2007-10-02  Nicholas Shanks  <webkit@nickshanks.com>
1441         Reviewed by eseidel & hyatt.
1443         Add support for CSS3 values 'start' and 'end' to text-align property.
1445         * css/cssparser.cpp:
1446         (WebCore::CSSParser::parseValue): allow start and end values
1447         * css/cssstyleselector.cpp:
1448         (WebCore::CSSStyleSelector::applyProperty): handle start and end values
1450 2007-10-01  Oliver Hunt  <oliver@apple.com>
1452         Reviewed by Mark.
1454         Enable Experimental SVG features by default when building from Xcode
1456         * Configurations/WebCore.xcconfig:
1458 2007-10-01  Eric Seidel  <eric@webkit.org>
1460         Reviewed by Oliver Hunt.
1462         This only affects Debug builds, and the ability to save SVGs as WebArchives
1463         neither are testable via DumpRenderTree.
1465         * Configurations/WebCore.xcconfig: change where Xcode looks for WebCore.exp
1466         * DerivedSources.make: adds SVG symbols to WebCore.exp when necessary
1467         * WebCore.SVG.exp: Added.
1468         * WebCore.exp: moved to WebCore.base.exp
1469         * WebCore.xcodeproj/project.pbxproj: updated to reflect moved files
1470         * bindings/objc/DOMSVGExecption.h: moved to DOMSVGException.h
1472 2007-10-01  Eric Seidel  <eric@webkit.org>
1474         Reviewed by olliej.
1476         Make feature-branch build again with ENABLE_SVG_EXPERIMENTAL_FEATURES
1477         Needed a double -> float change to make the new filter types build.
1479         Build fix, no test cases.
1481         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1482         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
1483         * ksvg2/svg/SVGFECompositeElement.cpp:
1484         * ksvg2/svg/SVGFECompositeElement.h:
1485         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1486         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1487         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1488         * ksvg2/svg/SVGFEDisplacementMapElement.h:
1489         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1490         * ksvg2/svg/SVGFEGaussianBlurElement.h:
1491         * ksvg2/svg/SVGFELightElement.cpp:
1492         * ksvg2/svg/SVGFELightElement.h:
1493         * ksvg2/svg/SVGFEOffsetElement.cpp:
1494         * ksvg2/svg/SVGFEOffsetElement.h:
1495         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1496         * ksvg2/svg/SVGFESpecularLightingElement.h:
1497         * ksvg2/svg/SVGFETurbulenceElement.cpp:
1498         * ksvg2/svg/SVGFETurbulenceElement.h:
1500 2007-09-30  Julien  <julien.chaffraix@gmail.com>
1502         Reviewed by aroben & eseidel.
1504         fix http://bugs.webkit.org/show_bug.cgi?id=14898
1506         getAllResponseHeaders() separates each header with a CR LF according to the specification
1508         Test: http/tests/xmlhttprequest/xmlhttprequest-crlf-getAllResponseHeader.html
1510         * xml/XMLHttpRequest.cpp:
1511         (WebCore::XMLHttpRequest::getAllResponseHeaders):
1513 2007-09-28  Eric Seidel  <eric@webkit.org>
1515         Reviewed by Sam Wenig.
1517         ASSERT when dragging <svg:image> with non-null prefix
1518         http://bugs.webkit.org/show_bug.cgi?id=15308
1520         * bindings/objc/DOM.mm:
1521         (WebCore::lookupElementClass): added
1522         (WebCore::elementClass): use new lookupElementClass function
1524 2007-09-25  Eric Seidel  <eric@webkit.org>
1526         Reviewed by Mark Rowe.
1528         I managed to break the SVG build when fixing the --no-svg build for
1529         http://bugs.webkit.org/show_bug.cgi?id=15281
1530         This adds the appropriate DOMSVG headers to the copy headers phase
1531         (in fixing the no-svg build I mistakenly re-marked them project-only)
1533         * WebCore.xcodeproj/project.pbxproj:
1535 2007-09-25  Eric Seidel  <eric@webkit.org>
1537         Reviewed by Rob Buis.
1539         Already tested by SVG/W3C-SVG-1.1/linking-a-07-t.svg
1541         * ksvg2/svg/SVGAElement.cpp:
1542         (WebCore::SVGAElement::defaultEventHandler): properly pass along target values
1544 2007-09-22  Oliver Hunt  <oliver@apple.com>
1546         Reviewed by NOBODY (Build fix).
1548         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1549         (WebCore::SVGPaintServerGradient::teardown):
1550         (WebCore::SVGPaintServerGradient::renderPath):
1551         * rendering/SVGRootInlineBox.cpp:
1552         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1554 2007-09-09  Nikolas Zimmermann  <zimmermann@kde.org>
1556         Reviewed by Oliver.
1558         Rework <pattern> support to take overflow & viewBox into account.
1559         Also fix all possible combinations of patternUnits/patternContentUnits, tested by several batik testcases.
1560         (Status: <mask>, <pattern>, <linearGradient>, <radialGradient>, <filter> regions work perfectly. <clipPath> is sill todo)
1562         While I'm at it, add a very helpful debugging tool "dumpCGOutputImage" and rename "dumpOutputImage" to "dumpCIOutputImage".
1563         Also fix possible null image buffer problems. (ie. large alloc)
1565         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12221 (Webkit ToT fails to render this pattern example)
1567         * ksvg2/svg/PatternAttributes.h:
1568         (WebCore::PatternAttributes::PatternAttributes):
1569         (WebCore::PatternAttributes::x):
1570         (WebCore::PatternAttributes::y):
1571         (WebCore::PatternAttributes::width):
1572         (WebCore::PatternAttributes::height):
1573         (WebCore::PatternAttributes::setX):
1574         (WebCore::PatternAttributes::setY):
1575         (WebCore::PatternAttributes::setWidth):
1576         (WebCore::PatternAttributes::setHeight):
1577         * ksvg2/svg/SVGPatternElement.cpp:
1578         (WebCore::SVGPatternElement::buildPattern):
1579         (WebCore::SVGPatternElement::collectPatternProperties):
1580         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1581         (WebCore::SVGPaintServerGradient::setup):
1582         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1583         (WebCore::patternCallback):
1584         (WebCore::SVGPaintServerPattern::setup):
1585         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1586         (WebCore::dumpCIOutputImage):
1587         (WebCore::dumpCGOutputImage):
1589 2007-09-05  Nikolas Zimmermann  <zimmermann@kde.org>
1591         Reviewed by Oliver.
1593         Fix <mask> in userSpaceOnUse coordinates. Verified by new testcase taken from Batik.
1595         * ksvg2/svg/SVGMaskElement.cpp:
1596         (WebCore::SVGMaskElement::drawMaskerContent):
1598 2007-09-03  Nikolas Zimmermann  <zimmermann@kde.org>
1600         Reviewed by Oliver.
1602         Rewrite text painting code path, to be based on "text chunks" instead of using the InlineBox* hierarchy.
1603         This allows us to reuse paint servers as long as possible - and to actually paint in the way didacted by the spec.
1605         This also implements advanced SVG text decorations (ie. stroked/filled decos with gradient/pattern).
1606         Fixes: http://bugs.webkit.org/show_bug.cgi?id=7200 (Gradient appears and disappears in SVG when text is off screen)
1608         Fixes paint server usage on text paths. (ie. styled text paths, with gradients/filters).
1610         * platform/graphics/svg/SVGPaintServer.h:
1611         * platform/graphics/svg/SVGPaintServerGradient.h:
1612         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
1613         (WebCore::SVGPaintServer::draw):
1614         (WebCore::SVGPaintServer::renderPath):
1615         (WebCore::SVGPaintServer::strokePath):
1616         (WebCore::SVGPaintServer::clipToStrokePath):
1617         (WebCore::SVGPaintServer::fillPath):
1618         (WebCore::SVGPaintServer::clipToFillPath):
1619         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1620         (WebCore::findTextRootObject):
1621         (WebCore::SVGPaintServerGradient::teardown):
1622         (WebCore::SVGPaintServerGradient::renderPath):
1623         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
1624         (WebCore::SVGPaintServerGradient::setup):
1625         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
1626         (WebCore::SVGPaintServerSolid::setup):
1627         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
1628         (WebCore::SVGPaintServer::draw):
1629         (WebCore::SVGPaintServer::renderPath):
1630         * rendering/RenderSVGInlineText.cpp:
1631         * rendering/RenderSVGTSpan.cpp:
1632         * rendering/RenderSVGText.cpp:
1633         * rendering/RenderSVGTextPath.cpp:
1634         * rendering/SVGCharacterLayoutInfo.h:
1635         (WebCore::SVGTextChunkWalkerBase::~SVGTextChunkWalkerBase):
1636         (WebCore::SVGTextChunkWalker::SVGTextChunkWalker):
1637         (WebCore::SVGTextChunkWalker::operator()):
1638         (WebCore::SVGTextChunkWalker::start):
1639         (WebCore::SVGTextChunkWalker::end):
1640         (WebCore::SVGTextChunkWalker::setupFill):
1641         (WebCore::SVGTextChunkWalker::setupStroke):
1642         * rendering/SVGInlineFlowBox.h:
1643         * rendering/SVGInlineTextBox.cpp:
1644         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::SVGInlineTextBoxClosestCharacterToPositionWalker):
1645         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
1646         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::character):
1647         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::offset):
1648         (WebCore::SVGInlineTextBoxSelectionRectWalker::SVGInlineTextBoxSelectionRectWalker):
1649         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
1650         (WebCore::SVGInlineTextBoxSelectionRectWalker::selectionRect):
1651         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1652         (WebCore::SVGInlineTextBox::selectionRect):
1653         (WebCore::SVGInlineTextBox::paintCharacters):
1654         (WebCore::SVGInlineTextBox::paintSelection):
1655         (WebCore::pathForDecoration):
1656         (WebCore::SVGInlineTextBox::paintDecoration):
1657         * rendering/SVGInlineTextBox.h:
1658         * rendering/SVGRenderSupport.cpp:
1659         (WebCore::prepareToRenderSVGContent):
1660         * rendering/SVGRenderSupport.h:
1661         * rendering/SVGRootInlineBox.cpp:
1662         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
1663         (WebCore::SVGRootInlineBoxPaintWalker::~SVGRootInlineBoxPaintWalker):
1664         (WebCore::SVGRootInlineBoxPaintWalker::teardownFillPaintServer):
1665         (WebCore::SVGRootInlineBoxPaintWalker::teardownStrokePaintServer):
1666         (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
1667         (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
1668         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupFillCallback):
1669         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupStrokeCallback):
1670         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1671         (WebCore::SVGRootInlineBox::paint):
1672         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
1673         (WebCore::addPaintServerToTextDecorationInfo):
1674         (WebCore::SVGRootInlineBox::retrievePaintServersForTextDecoration):
1675         (WebCore::SVGRootInlineBox::walkTextChunks):
1676         * rendering/SVGRootInlineBox.h:
1678 2007-08-27  Nikolas Zimmermann  <zimmermann@kde.org>
1680         Reviewed by Mitz.
1682         Expose unitsPerEm() in Font classes.
1683         This is needed to implement SVG's advanced text decorations. We won't draw lines for text-decorations
1684         but fillable & strokable rectangles with a certain height, computed through unitsPerEm & font size.
1686         * platform/Font.cpp:
1687         (WebCore::Font::unitsPerEm):
1688         * platform/Font.h:
1689         * platform/FontData.h:
1690         (WebCore::FontData::unitsPerEm):
1691         * platform/gdk/FontDataGdk.cpp:
1692         (WebCore::FontData::platformInit):
1693         * platform/mac/FontDataMac.mm:
1694         (WebCore::FontData::platformInit):
1695         * platform/qt/FontDataQt.cpp:
1696         (WebCore::FontData::platformInit):
1697         * platform/win/FontDataWin.cpp:
1698         (WebCore::FontData::platformInit):
1699         * platform/wx/FontDataWx.cpp:
1700         (WebCore::FontData::platformInit):
1702 2007-08-27  Oliver Hunt  <oliver@apple.com>
1704         Reviewed by NOBODY (Build fix).
1706         Initialise iterators to appease gcc
1708         * rendering/SVGInlineTextBox.cpp:
1709         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1711 2007-08-22  Rob Buis  <buis@kde.org>
1713         Reviewed by Sam.
1715         http://bugs.webkit.org/show_bug.cgi?id=12059
1716         SVG colors have two separate parsing paths (one CSS and one SVGColor::setRGBColor)
1718         Reuse the css parser as much as possible in setRGBColor.
1720         * css/cssparser.cpp:
1721         (WebCore::CSSParser::parseColor):
1722         * css/cssparser.h:
1723         * editing/ApplyStyleCommand.cpp:
1724         (WebCore::StyleChange::checkForLegacyHTMLStyleChange):
1725         * html/CanvasGradient.cpp:
1726         (WebCore::CanvasGradient::addColorStop):
1727         * html/CanvasRenderingContext2D.cpp:
1728         (WebCore::CanvasRenderingContext2D::setShadow):
1729         (WebCore::CanvasRenderingContext2D::applyShadow):
1730         * html/CanvasStyle.cpp:
1731         (WebCore::CanvasStyle::applyStrokeColor):
1732         (WebCore::CanvasStyle::applyFillColor):
1733         * ksvg2/svg/SVGColor.cpp:
1734         (WebCore::SVGColor::colorFromRGBColorString):
1736 2007-08-21  Nikolas Zimmermann  <zimmermann@kde.org>
1738         Reviewed by Oliver.
1740         Large SVG filter rework. Bring it back in a useable state.
1742         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5527 (Filters need subregion support)
1743         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5579 (WebKit+SVG renders full-filters-example incorrectly)
1744         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5976 (filterUnits="userSpaceOnUse" is broken (breaking feTile test case))
1745         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12064 (Need function for manual style-resolution for things like gradient stops)
1747         filters-blend-01-b.svg & filters-example-01-b.svg & filters-displace-01-b.svg & filters-diffuse-01-f.svg are fixed now.
1749         In detail:
1750         - flood-color & flood-opacity have been incorrectly resolved on the <feBlend> parent element!
1751         - sizing of filter region was truncated in some cases, as the bbox was used to resolve the needed filter region instead of the filter rect
1752         - add subregion support to all filter primitives (primitiveUnits & filterUnits handled in all cases)
1753         - WKDisplacmentMap.cikernel incorrectly flipped the y-axis.
1754         - Correctly specify default values for all filter primitives in ksvg2/svg!
1755         - Initialize all variables of the SVGFE* classes in platform/graphics/svg/filters.
1756         - Fix 'flood-color' initial value (was set to the _stop_ color initial value)
1757           -> both initial values were pointing to 'black' though, so it was no visible problem.
1758         - Parse 'lighting-color' css property, no more hacking in SVGFEDiffuseLighting.
1759           -> Correct it's initial from black to white value fixes SVG lighting filters!
1760         - Add diffuseConstant support to feDiffuseLighting filter.
1761         - Centralize manual style resolution (needed for stop-color, flood-color & flood-opacity, lighting-color)
1763         * ksvg2/css/SVGCSSParser.cpp:
1764         * ksvg2/css/SVGCSSStyleSelector.cpp:
1765         (WebCore::CSSStyleSelector::applySVGProperty):
1766         * ksvg2/css/SVGRenderStyle.h:
1767         * ksvg2/css/SVGRenderStyleDefs.cpp:
1768         (StyleMiscData::StyleMiscData):
1769         (StyleMiscData::operator==):
1770         * ksvg2/css/SVGRenderStyleDefs.h:
1771         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1772         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
1773         * ksvg2/svg/SVGFEBlendElement.cpp:
1774         (WebCore::SVGFEBlendElement::SVGFEBlendElement):
1775         (WebCore::SVGFEBlendElement::filterEffect):
1776         * ksvg2/svg/SVGFEBlendElement.h:
1777         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
1778         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
1779         (WebCore::SVGFEColorMatrixElement::filterEffect):
1780         * ksvg2/svg/SVGFEColorMatrixElement.h:
1781         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
1782         (WebCore::SVGFEComponentTransferElement::filterEffect):
1783         * ksvg2/svg/SVGFEComponentTransferElement.h:
1784         * ksvg2/svg/SVGFECompositeElement.cpp:
1785         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
1786         (WebCore::SVGFECompositeElement::parseMappedAttribute):
1787         (WebCore::SVGFECompositeElement::filterEffect):
1788         * ksvg2/svg/SVGFECompositeElement.h:
1789         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1790         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
1791         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
1792         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
1793         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1794         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1795         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
1796         (WebCore::SVGFEDisplacementMapElement::filterEffect):
1797         * ksvg2/svg/SVGFEDisplacementMapElement.h:
1798         * ksvg2/svg/SVGFEDistantLightElement.cpp:
1799         (WebCore::SVGFEDistantLightElement::SVGFEDistantLightElement):
1800         * ksvg2/svg/SVGFEDistantLightElement.h:
1801         * ksvg2/svg/SVGFEFloodElement.cpp:
1802         (WebCore::SVGFEFloodElement::filterEffect):
1803         * ksvg2/svg/SVGFEFloodElement.h:
1804         * ksvg2/svg/SVGFEFuncAElement.cpp:
1805         * ksvg2/svg/SVGFEFuncAElement.h:
1806         * ksvg2/svg/SVGFEFuncBElement.cpp:
1807         * ksvg2/svg/SVGFEFuncBElement.h:
1808         * ksvg2/svg/SVGFEFuncGElement.cpp:
1809         (WebCore::SVGFEFuncGElement::SVGFEFuncGElement):
1810         * ksvg2/svg/SVGFEFuncGElement.h:
1811         * ksvg2/svg/SVGFEFuncRElement.cpp:
1812         * ksvg2/svg/SVGFEFuncRElement.h:
1813         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1814         (WebCore::SVGFEGaussianBlurElement::filterEffect):
1815         * ksvg2/svg/SVGFEGaussianBlurElement.h:
1816         * ksvg2/svg/SVGFEImageElement.cpp:
1817         (WebCore::SVGFEImageElement::notifyFinished):
1818         (WebCore::SVGFEImageElement::filterEffect):
1819         * ksvg2/svg/SVGFEImageElement.h:
1820         * ksvg2/svg/SVGFELightElement.cpp:
1821         (WebCore::SVGFELightElement::SVGFELightElement):
1822         * ksvg2/svg/SVGFELightElement.h:
1823         * ksvg2/svg/SVGFEMergeElement.cpp:
1824         (WebCore::SVGFEMergeElement::filterEffect):
1825         * ksvg2/svg/SVGFEMergeElement.h:
1826         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
1827         * ksvg2/svg/SVGFEMergeNodeElement.h:
1828         * ksvg2/svg/SVGFEOffsetElement.cpp:
1829         (WebCore::SVGFEOffsetElement::filterEffect):
1830         * ksvg2/svg/SVGFEOffsetElement.h:
1831         * ksvg2/svg/SVGFEPointLightElement.h:
1832         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1833         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
1834         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
1835         (WebCore::SVGFESpecularLightingElement::filterEffect):
1836         (WebCore::SVGFESpecularLightingElement::updateLights):
1837         * ksvg2/svg/SVGFESpecularLightingElement.h:
1838         * ksvg2/svg/SVGFESpotLightElement.cpp:
1839         (WebCore::SVGFESpotLightElement::lightSource):
1840         * ksvg2/svg/SVGFESpotLightElement.h:
1841         * ksvg2/svg/SVGFETileElement.cpp:
1842         (WebCore::SVGFETileElement::filterEffect):
1843         * ksvg2/svg/SVGFETileElement.h:
1844         * ksvg2/svg/SVGFETurbulenceElement.cpp:
1845         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
1846         (WebCore::SVGFETurbulenceElement::filterEffect):
1847         * ksvg2/svg/SVGFETurbulenceElement.h:
1848         * ksvg2/svg/SVGFilterElement.cpp:
1849         (WebCore::SVGFilterElement::canvasResource):
1850         * ksvg2/svg/SVGFilterElement.h:
1851         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
1852         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
1853         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
1854         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
1855         * ksvg2/svg/SVGGradientElement.cpp:
1856         (WebCore::SVGGradientElement::buildStops):
1857         * ksvg2/svg/SVGStyledElement.cpp:
1858         (WebCore::SVGStyledElement::resolveStyle):
1859         * ksvg2/svg/SVGStyledElement.h:
1860         * platform/graphics/svg/SVGResourceFilter.cpp:
1861         (WebCore::SVGResourceFilter::addFilterEffect):
1862         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
1863         * platform/graphics/svg/SVGResourceFilter.h:
1864         (WebCore::SVGResourceFilter::xBoundingBoxMode):
1865         (WebCore::SVGResourceFilter::setXBoundingBoxMode):
1866         (WebCore::SVGResourceFilter::yBoundingBoxMode):
1867         (WebCore::SVGResourceFilter::setYBoundingBoxMode):
1868         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1869         (WebCore::SVGResourceFilter::SVGResourceFilter):
1870         (WebCore::SVGResourceFilter::createFilterEffect):
1871         (WebCore::SVGResourceFilter::prepareFilter):
1872         (WebCore::dumpOutputImage):
1873         (WebCore::SVGResourceFilter::applyFilter):
1874         (WebCore::SVGResourceFilter::getCIFilterStack):
1875         (WebCore::SVGResourceFilter::imageForName):
1876         (WebCore::SVGResourceFilter::setImageForName):
1877         (WebCore::SVGResourceFilter::setOutputImage):
1878         (WebCore::alphaImageForImage):
1879         (WebCore::SVGResourceFilter::inputImage):
1880         * platform/graphics/svg/filters/SVGDistantLightSource.h:
1881         * platform/graphics/svg/filters/SVGFEBlend.cpp:
1882         (WebCore::SVGFEBlend::SVGFEBlend):
1883         * platform/graphics/svg/filters/SVGFEBlend.h:
1884         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
1885         (WebCore::SVGFEColorMatrix::SVGFEColorMatrix):
1886         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
1887         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
1888         (WebCore::SVGFEComponentTransfer::SVGFEComponentTransfer):
1889         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
1890         (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
1891         * platform/graphics/svg/filters/SVGFEComposite.cpp:
1892         (WebCore::SVGFEComposite::SVGFEComposite):
1893         * platform/graphics/svg/filters/SVGFEComposite.h:
1894         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
1895         (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
1896         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
1897         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
1898         (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
1899         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
1900         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
1901         (WebCore::SVGFEDisplacementMap::SVGFEDisplacementMap):
1902         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
1903         * platform/graphics/svg/filters/SVGFEFlood.cpp:
1904         (WebCore::SVGFEFlood::SVGFEFlood):
1905         * platform/graphics/svg/filters/SVGFEFlood.h:
1906         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
1907         (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
1908         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
1909         * platform/graphics/svg/filters/SVGFEImage.cpp:
1910         (WebCore::SVGFEImage::SVGFEImage):
1911         * platform/graphics/svg/filters/SVGFEImage.h:
1912         * platform/graphics/svg/filters/SVGFEMerge.cpp:
1913         * platform/graphics/svg/filters/SVGFEMerge.h:
1914         (WebCore::SVGFEMerge::SVGFEMerge):
1915         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
1916         (WebCore::SVGFEMorphology::SVGFEMorphology):
1917         * platform/graphics/svg/filters/SVGFEMorphology.h:
1918         * platform/graphics/svg/filters/SVGFEOffset.cpp:
1919         (WebCore::SVGFEOffset::SVGFEOffset):
1920         * platform/graphics/svg/filters/SVGFEOffset.h:
1921         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
1922         (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
1923         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
1924         * platform/graphics/svg/filters/SVGFETile.h:
1925         (WebCore::SVGFETile::SVGFETile):
1926         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
1927         (WebCore::SVGFETurbulence::SVGFETurbulence):
1928         * platform/graphics/svg/filters/SVGFETurbulence.h:
1929         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
1930         (WebCore::SVGFilterEffect::SVGFilterEffect):
1931         (WebCore::SVGFilterEffect::primitiveBBoxForFilterBBox):
1932         (WebCore::SVGFilterEffect::filter):
1933         (WebCore::SVGFilterEffect::setFilter):
1934         * platform/graphics/svg/filters/SVGFilterEffect.h:
1935         (WebCore::SVGFilterEffect::xBoundingBoxMode):
1936         (WebCore::SVGFilterEffect::setXBoundingBoxMode):
1937         (WebCore::SVGFilterEffect::yBoundingBoxMode):
1938         (WebCore::SVGFilterEffect::setYBoundingBoxMode):
1939         (WebCore::SVGFilterEffect::widthBoundingBoxMode):
1940         (WebCore::SVGFilterEffect::setWidthBoundingBoxMode):
1941         (WebCore::SVGFilterEffect::heightBoundingBoxMode):
1942         (WebCore::SVGFilterEffect::setHeightBoundingBoxMode):
1943         * platform/graphics/svg/filters/SVGLightSource.cpp:
1944         * platform/graphics/svg/filters/SVGLightSource.h:
1945         * platform/graphics/svg/filters/SVGPointLightSource.h:
1946         (WebCore::SVGPointLightSource::SVGPointLightSource):
1947         * platform/graphics/svg/filters/SVGSpotLightSource.h:
1948         (WebCore::SVGSpotLightSource::SVGSpotLightSource):
1949         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
1950         (WebCore::SVGFEBlend::getCIFilter):
1951         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
1952         (WebCore::SVGFEColorMatrix::getCIFilter):
1953         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
1954         (WebCore::filterForComponentFunc):
1955         (WebCore::SVGFEComponentTransfer::getCIFilter):
1956         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
1957         (WebCore::SVGFEComposite::getCIFilter):
1958         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
1959         (WebCore::SVGFEDiffuseLighting::getCIFilter):
1960         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
1961         (WebCore::SVGFEDisplacementMap::getCIFilter):
1962         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
1963         (WebCore::SVGFEFlood::getCIFilter):
1964         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
1965         (WebCore::SVGFEGaussianBlur::getCIFilter):
1966         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
1967         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
1968         (WebCore::SVGFEImage::getCIFilter):
1969         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
1970         (WebCore::SVGFEMerge::getCIFilter):
1971         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
1972         (WebCore::SVGFEOffset::getCIFilter):
1973         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
1974         (WebCore::SVGFESpecularLighting::getCIFilter):
1975         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
1976         (WebCore::SVGFETile::getCIFilter):
1977         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
1978         (WebCore::SVGFilterEffect::getCIFilter):
1979         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel:
1980         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel:
1981         * platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
1982         (-[WKSpotLightFilter outputImage]):
1983         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
1984         (WebCore::SVGResourceFilter::createFilterEffect):
1986 2007-08-20  Rob Buis  <buis@kde.org>
1988         Reviewed by Nikolas.
1990         http://bugs.webkit.org/show_bug.cgi?id=14924
1991         rotated rect with pattern draws incorrectly
1993         Use the bounding box before transformation.
1995         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1996         (WebCore::SVGPaintServerPattern::setup):
1998 2007-08-19  Rob Buis  <buis@kde.org>
2000         Reviewed by Nikolas.
2002         http://bugs.webkit.org/show_bug.cgi?id=14926
2003         WebKit has 'em' length handling problems related to CSS properties
2005         Parse the properties in inline style attributes non-strict for SVG.
2007         * dom/StyledElement.cpp:
2008         (WebCore::StyledElement::createInlineStyleDecl):
2010 2007-08-17  Rob Buis  <buis@kde.org>
2012         Reviewed by Oliver.
2014         http://bugs.webkit.org/show_bug.cgi?id=14927
2015         use element in SVG does not render after parent is displayed off and on
2017         Also detach the shadow tree when detaching the <use>.
2019         * ksvg2/svg/SVGUseElement.cpp:
2020         (WebCore::SVGUseElement::detach):
2021         * ksvg2/svg/SVGUseElement.h:
2023 2007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
2025         Reviewed by Rob.
2027         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14153
2029         Final, long-awaited RenderSVGContainer split. Make RenderSVGContainer really a simple
2030         container without special cases for inner <svg> elements or <marker>. Create a new
2031         RenderSVGViewportContainer class handling these cases now.
2033         * WebCore.xcodeproj/project.pbxproj:
2034         * ksvg2/svg/SVGMarkerElement.cpp:
2035         (WebCore::SVGMarkerElement::createRenderer):
2036         * ksvg2/svg/SVGSVGElement.cpp:
2037         (WebCore::SVGSVGElement::createRenderer):
2038         * ksvg2/svg/SVGSVGElement.h:
2039         * rendering/RenderSVGContainer.cpp:
2040         (WebCore::RenderSVGContainer::layout):
2041         (WebCore::RenderSVGContainer::applyContentTransforms):
2042         (WebCore::RenderSVGContainer::applyAdditionalTransforms):
2043         (WebCore::RenderSVGContainer::paint):
2044         (WebCore::RenderSVGContainer::viewportTransform):
2045         (WebCore::RenderSVGContainer::relativeBBox):
2046         (WebCore::RenderSVGContainer::nodeAtPoint):
2047         * rendering/RenderSVGContainer.h:
2048         * rendering/RenderSVGRoot.cpp:
2049         * rendering/RenderSVGViewportContainer.cpp: Added.
2050         (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
2051         (WebCore::RenderSVGViewportContainer::~RenderSVGViewportContainer):
2052         (WebCore::RenderSVGViewportContainer::layout):
2053         (WebCore::RenderSVGViewportContainer::paint):
2054         (WebCore::RenderSVGViewportContainer::applyContentTransforms):
2055         (WebCore::RenderSVGViewportContainer::applyAdditionalTransforms):
2056         (WebCore::RenderSVGViewportContainer::viewport):
2057         (WebCore::RenderSVGViewportContainer::calcViewport):
2058         (WebCore::RenderSVGViewportContainer::viewportTransform):
2059         (WebCore::RenderSVGViewportContainer::absoluteTransform):
2060         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
2061         * rendering/RenderSVGViewportContainer.h: Added.
2062         (WebCore::RenderSVGViewportContainer::isSVGContainer):
2063         (WebCore::RenderSVGViewportContainer::renderName):
2065 2007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
2067         Reviewed by Oliver & Rob.
2069         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12501 (SVG Text fails to respect opacity, fill-opacity and stroke-opacity)
2070         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14045 (Incorrect support for opacity, fill-opacity and stroke-opacity)
2072         Based on an older patch from Rob, this fixes SVG text opacity as well as group opacity for solid fills & gradients.
2073         The pattern changes are still missing a testcase (need to wait for Antoine Quint for that).
2075         * platform/graphics/svg/SVGResourceFilter.h:
2076         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2077         (WebCore::SVGPaintServerGradient::setup):
2078         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
2079         (WebCore::SVGPaintServerPattern::setup):
2080         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
2081         (WebCore::colorFromFloatComponents):
2082         (WebCore::SVGPaintServerSolid::setup):
2083         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
2084         (WebCore::SVGResourceFilter::SVGResourceFilter):
2085         (WebCore::SVGResourceFilter::prepareFilter):
2086         (WebCore::SVGResourceFilter::applyFilter):
2087         * rendering/RenderPath.cpp:
2088         (WebCore::RenderPath::paint):
2089         * rendering/RenderSVGContainer.cpp:
2090         (WebCore::RenderSVGContainer::paint):
2091         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
2092         * rendering/RenderSVGImage.cpp:
2093         (WebCore::RenderSVGImage::paint):
2094         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
2095         * rendering/RenderSVGRoot.cpp:
2096         (WebCore::RenderSVGRoot::paint):
2097         * rendering/RenderSVGText.cpp:
2098         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
2099         * rendering/SVGRenderSupport.cpp:
2100         (WebCore::prepareToRenderSVGContent):
2101         (WebCore::finishRenderSVGContent):
2102         * rendering/SVGRenderSupport.h:
2103         * rendering/SVGRootInlineBox.cpp:
2104         (WebCore::prepareTextRendering):
2105         (WebCore::SVGRootInlineBox::paint):
2106         (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
2108 2007-08-08  Rob Buis  <buis@kde.org>
2110         Reviewed by Nikolas.
2112         http://bugs.webkit.org/show_bug.cgi?id=11909
2113         Regression: large SVG from Illustrator comes out blank
2115         Fix last issue with the Illustrator file by making relativeBBox
2116         calculation take into account viewBox.
2118         * rendering/RenderSVGContainer.cpp:
2119         (WebCore::RenderSVGContainer::relativeBBox):
2120         * rendering/RenderSVGRoot.cpp:
2121         (WebCore::RenderSVGRoot::relativeBBox):
2123 2007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
2125         Reviewed by Oliver.
2127         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14896 (SVG InlineText/Flow box sizes don't take rotated glyphs into account)
2129         Introduce new helper function calculateGlyphBoundaries, which takes into account any per-character transformation.
2130         This fixes box size calculations in svg/W3C-SVG-1.1/text-text-07-t.svg, svg/batik/text/textEffect3.svg (rotated glyphs)
2131         -> These strings can be properly selected now, just as well as text path elements.
2133         * rendering/SVGInlineTextBox.cpp:
2134         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
2135         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2136         (WebCore::SVGInlineTextBox::nodeAtPoint):
2137         (WebCore::SVGInlineTextBox::selectionRect):
2138         * rendering/SVGInlineTextBox.h:
2139         * rendering/SVGRootInlineBox.cpp:
2140         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
2142 2007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
2144         Reviewed by Oliver.
2146         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13909 (SVG text selection doesn't work with RTL text)
2148         Use drawHighlightForText() to draw the selection, instead of my home-brewn solution.
2149         Affected code in SVGRootInlineBox::paintSelectionForTextBox. Removed not anymore needed
2150         helper function cummulatedWidthOfSelectionRange.
2152         Dump all contained InlineTextBox(es) in SVGRenderTreeAsText, take into account multiple
2153         child text boxes in ie. a RenderSVGInlineText objects (which happens for RTL text and
2154         LTR text cases where newlines were involved - see changed testcase results.)
2155         This affects a lot of LTR tests which actually had more than one child text box, that
2156         wasn't taken properly into account before (in terms of selection, not rendering.)
2158         Fix selection for RTL text by taking box start offsets into account in closestCharacterToPosition()
2159         and by offering RTL text selection special cases in svgCharacterHitsPosition().
2161         Centralized the creation of a TextStyle object for text selection/painting in a new helper function
2162         svgTextStyleForInlineTextBox. Add new helper functions calculateGlyphWidth/calculateGlyphHeight to
2163         centralize these calculations -> use these new helpers everywhere to avoid code duplication.
2165         A single fix in bidi.cpp was needed to fix SVG's unicode-bidi/direction handling, to fix text-intro-02-b.svg.
2166         SVG didacts that the 'direction' attribute is ignored if unicode-bidi is set to 'normal' (default).
2167         Discussed with Mitz.
2169         * rendering/RenderSVGInlineText.cpp:
2170         (WebCore::RenderSVGInlineText::positionForCoordinates):
2171         * rendering/SVGInlineTextBox.cpp:
2172         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
2173         (WebCore::SVGInlineTextBox::calculateGlyphHeight):
2174         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2175         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
2176         (WebCore::SVGInlineTextBox::nodeAtPoint):
2177         (WebCore::SVGInlineTextBox::selectionRect):
2178         * rendering/SVGInlineTextBox.h:
2179         * rendering/SVGRenderTreeAsText.cpp:
2180         (WebCore::writeSVGInlineTextBox):
2181         (WebCore::writeSVGInlineText):
2182         * rendering/SVGRootInlineBox.cpp:
2183         (WebCore::cummulatedWidthOfInlineBoxCharacterRange): Take box start offset into account.
2184         (WebCore::svgTextStyleForInlineTextBox): New helper function.
2185         (WebCore::totalAdvanceOfInlineTextBox): Take box start offset into account.
2186         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Ditto. (correctly calculate advance values in RTL mode!)
2187         (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Use GraphicsContext drawHighlightForText() instead of self-made hacks.
2188         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox): Use new helper function svgTextStyleForInlineTextBox.
2189         * rendering/SVGRootInlineBox.h:
2190         * rendering/bidi.cpp: Add special case for SVG.
2191         (WebCore::RenderBlock::layoutInlineChildren):
2193 2007-07-30  Nikolas Zimmermann  <zimmermann@kde.org>
2195         Reviewed by Oliver & Rob.
2197         Enable SVG textPath selection. Actually build chunks for them instead of
2198         ignoring them - was easier than I thought. Respect per-character transformation
2199         when calculating the chunk boundaries for the selection rectangles. Also fixes
2200         selection rect drawing of rotated characters.
2202         Next thing todo is to unify the glyph size calculations, as per-glyph transformations
2203         are not respected when calculating flow box sizes in SVGRootInlineBox.
2205         * rendering/RenderObject.h:
2206         (WebCore::RenderObject::isSVGHiddenContainer):
2207         * rendering/RenderSVGHiddenContainer.h:
2208         (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
2209         * rendering/RenderSVGInlineText.cpp:
2210         (WebCore::isChildOfHiddenContainer):
2211         (WebCore::RenderSVGInlineText::selectionRect):
2212         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2213         * rendering/SVGCharacterLayoutInfo.h:
2214         (WebCore::SVGTextChunk::SVGTextChunk):
2215         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
2216         * rendering/SVGInlineTextBox.cpp:
2217         (WebCore::SVGInlineTextBox::selectionRect):
2218         * rendering/SVGRootInlineBox.cpp:
2219         (WebCore::applyTextAnchorToTextChunk):
2220         (WebCore::SVGRootInlineBox::buildTextChunks):
2222 2007-07-25  Rob Buis  <buis@kde.org>
2224         Reviewed by Nikolas.
2226         http://bugs.webkit.org/show_bug.cgi?id=14312
2227         Removing an attribute has no effect on SVG
2229         Update the transform matrix also when transform attribute is empty.
2231         * ksvg2/svg/SVGStyledTransformableElement.cpp:
2232         (WebCore::SVGStyledTransformableElement::updateLocalTransform):
2234 2007-07-26  Nikolas Zimmermann  <zimmermann@kde.org>
2236         Reviewed by Oliver.
2238         Unify absoluteRects() of RenderSVGTSpan & RenderSVGTextPath.
2239         The RenderSVGTextPath one was still using the old, wrong concept.
2241         * rendering/RenderSVGTSpan.cpp: Remove unused params tx, ty, while I'm at it.
2242         (WebCore::RenderSVGTSpan::absoluteRects):
2243         * rendering/RenderSVGTextPath.cpp:
2244         (WebCore::RenderSVGTextPath::absoluteRects):
2246 2007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2248         Reviewed by Sam.
2250         Let <textPath> be recognized within the ObjC bindings.
2251         Forgot to add that months ago.
2253         * bindings/objc/DOM.mm:
2254         (WebCore::createElementClassMap):
2255         * bindings/objc/DOMInternal.h:
2256         * bindings/objc/DOMSVG.h:
2258 2007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2260         Reviewed by Oliver.
2262         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14065
2264         Fix all known bugs regarding to SVG text selection, when embedded in XHTML.
2265         Also fix inspecting <text> elements when embedded in XHTML. (WebInspector)
2267         Short story: selectionRect() & friends are special in terms of the "HTML parent translation".
2268         Caused by ie. CSS translation like "left: 50px; top: 50px" when <svg> is a child of a <div>.
2269         For non-textual objects like RenderPath, we can easily add a translation to a new coordinate
2270         space in RenderSVGRoot::applyContentTransformations() and we're done with it.
2272         Same for painting text, but text selection makes problems in this concept.
2273         We have to remove the 'html parent translation' from our selection rects that we return
2274         from RenderSVGText & RenderSVGInlineText. Hopefully all issues are fixed now.
2276         Long story:
2277         - RenderSVGRoot::nodeAtPoint didn't take the parent 'scroll offset' into account. We exited
2278           too early, because the overflow rect wasn't correctly sized. Fixed.
2279         - RenderSVGRoot::absoluteRects() can't return the absoluteClippedOverflowRect() as it includes
2280           the 'html parent translation', which needs to be removed, otherwhise the painted rects are off
2281           when inspecting with WebInspector. -> Pass down absoluteRects() call to it's children..
2282         - RenderSVGText::absoluteRects() can't use absoluteClippedOverflowRect() for the same reason.
2283         - Add RenderSVGInlineText::computeAbsoluteRectForRange() function - shared by absoluteRects() and
2284           selectionRect() - and remove the 'html parent translation' there by asking the RenderSVGRoot
2285           object for the correct offsets.
2287         This lead to nasty bugs showing that SVGInlineTextBox::selectionRect() wasn't actually returning
2288         correct rectangles. It couldn't work for text chunks the way it was implemented. Fixed by implementing
2289         it exactly the same way that closestCharacterToPosition() was done - could share more code later on.
2291         * rendering/RenderSVGInlineText.cpp:
2292         (WebCore::RenderSVGInlineText::absoluteRects):
2293         (WebCore::RenderSVGInlineText::selectionRect):
2294         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2295         * rendering/RenderSVGInlineText.h:
2296         * rendering/RenderSVGRoot.cpp:
2297         (WebCore::RenderSVGRoot::absoluteRects):
2298         (WebCore::RenderSVGRoot::nodeAtPoint):
2299         * rendering/RenderSVGText.cpp:
2300         (WebCore::RenderSVGText::absoluteRects):
2301         * rendering/SVGCharacterLayoutInfo.h: Removed unused variable 'bool selected'
2302         * rendering/SVGInlineTextBox.cpp:
2303         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2304         (WebCore::SVGInlineTextBox::nodeAtPoint):
2305         (WebCore::SVGInlineTextBox::selectionRect):
2306         * rendering/SVGRootInlineBox.cpp: Add 'findSVGRootObject' helper function.
2307         (WebCore::findSVGRootObject):
2308         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2309         (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Remove unused tx/ty parameters.
2310         (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2311         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
2312         * rendering/SVGRootInlineBox.h:
2314 2007-07-17  Nikolas Zimmermann  <zimmermann@kde.org>
2316         Build fix. Not reviewed.
2318         Rob forgot to land the changes to SVGResourceMarker in his last commit.
2320         * platform/graphics/svg/SVGResourceMarker.cpp:
2321         (WebCore::SVGResourceMarker::draw):
2323 2007-07-17  Rob Buis  <buis@kde.org>
2325         Reviewed by Nikolas.
2327         http://bugs.webkit.org/show_bug.cgi?id=5996
2328         SVG <view> is unimplemented
2330         Implement <view> and refactor the code in the svg renderer container classes.
2332         * WebCore.xcodeproj/project.pbxproj:
2333         * ksvg2/svg/SVGDocument.cpp:
2334         (WebCore::SVGDocument::zoomAndPanEnabled): Take into account currentView for zoom/pan
2335         * ksvg2/svg/SVGDocument.h:
2336         * ksvg2/svg/SVGFEImageElement.cpp:
2337         (WebCore::SVGFEImageElement::parseMappedAttribute):
2338         * ksvg2/svg/SVGFitToViewBox.cpp:
2339         (WebCore::SVGFitToViewBox::parseViewBox):
2340         (WebCore::SVGFitToViewBox::parseMappedAttribute):
2341         * ksvg2/svg/SVGFitToViewBox.h:
2342         * ksvg2/svg/SVGImageElement.cpp:
2343         (WebCore::SVGImageElement::parseMappedAttribute):
2344         * ksvg2/svg/SVGLocatable.h:
2345         * ksvg2/svg/SVGMarkerElement.cpp:
2346         (WebCore::SVGMarkerElement::createRenderer):
2347         (WebCore::SVGMarkerElement::notifyAttributeChange):
2348         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
2349         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2350         * ksvg2/svg/SVGPreserveAspectRatio.h:
2351         * ksvg2/svg/SVGSVGElement.cpp:
2352         (WebCore::SVGSVGElement::SVGSVGElement):
2353         (WebCore::SVGSVGElement::currentView):
2354         (WebCore::SVGSVGElement::parseMappedAttribute):
2355         (WebCore::SVGSVGElement::createRenderer):
2356         (WebCore::SVGSVGElement::viewBoxToViewTransform):
2357         (WebCore::SVGSVGElement::inheritViewAttributes):
2358         * ksvg2/svg/SVGSVGElement.h:
2359         * ksvg2/svg/SVGTransformable.cpp:
2360         (WebCore::SVGTransformable::parseTransformAttribute):
2361         * ksvg2/svg/SVGTransformable.h:
2362         * ksvg2/svg/SVGViewElement.cpp:
2363         (WebCore::SVGViewElement::parseMappedAttribute):
2364         * ksvg2/svg/SVGViewElement.h:
2365         * ksvg2/svg/SVGViewSpec.cpp: Added.
2366         (WebCore::SVGViewSpec::SVGViewSpec):
2367         (WebCore::SVGViewSpec::~SVGViewSpec):
2368         (WebCore::SVGViewSpec::setTransform):
2369         (WebCore::SVGViewSpec::setViewBoxString):
2370         (WebCore::SVGViewSpec::setPreserveAspectRatioString):
2371         (WebCore::SVGViewSpec::setViewTargetString):
2372         (WebCore::SVGViewSpec::viewTarget):
2373         (WebCore::SVGViewSpec::contextElement):
2374         (WebCore::):
2375         (WebCore::SVGViewSpec::parseViewSpec):
2376         * ksvg2/svg/SVGViewSpec.h: Added.
2377         (WebCore::SVGViewSpec::transform):
2378         (WebCore::SVGViewSpec::viewTargetString):
2379         * ksvg2/svg/SVGZoomAndPan.cpp:
2380         (WebCore::SVGZoomAndPan::parseMappedAttribute):
2381         (WebCore::):
2382         (WebCore::SVGZoomAndPan::parseZoomAndPan):
2383         * ksvg2/svg/SVGZoomAndPan.h:
2384         * loader/FrameLoader.cpp:
2385         (WebCore::FrameLoader::gotoAnchor):
2386         * page/Frame.cpp:
2387         (WebCore::Frame::setZoomFactor): do not zoom when it is disabled
2388         * rendering/RenderSVGContainer.cpp:
2389         (WebCore::RenderSVGContainer::RenderSVGContainer):
2390         (WebCore::RenderSVGContainer::paint):
2391         (WebCore::RenderSVGContainer::viewportTransform):
2392         * rendering/RenderSVGContainer.h:
2393         * rendering/RenderSVGRoot.cpp:
2394         (WebCore::RenderSVGRoot::RenderSVGRoot):
2395         (WebCore::RenderSVGRoot::applyContentTransforms):
2396         (WebCore::RenderSVGRoot::paint):
2397         (WebCore::RenderSVGRoot::absoluteTransform):
2398         (WebCore::RenderSVGRoot::localTransform):
2399         * rendering/RenderSVGRoot.h:
2401 2007-07-16  Nikolas Zimmermann  <zimmermann@kde.org>
2403         Reviewed by Rob.
2405         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13611 (Crash in setAttributeNS setting href of SVG <use> to nonexistent symbol)
2406         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14631 (<use> doesn't deep-expand <symbol> elements.)
2408         Rework <use> on <foreignObject> cases, to not just ignore these cases, but actually proceed and skip <fO> objects
2409         from the resulting cloned tree. This fixes parts of "treasure_map.svg" (no bug report availabe on that one, private "testcase").
2411         Fix assertion happening with <use> on <g> containing <symbol>. Introduce expandSymbolElementsInShadowTree()
2412         concept, just like it's done for <use> on <use>, to deep-replace all <symbol> elements by <svg>, as demanded
2413         by the spec. This only worked on <use> on <symbol> direct cases so far.
2415         Added testcase: svg/custom/use-on-g-containing-foreignObject-and-image.svg (testcase for treasure_map.svg)
2416                         svg/custom/use-on-disallowed-foreign-object-5.svg (<use> on <symbol> containg <foreignObject>)
2417                         svg/custom/use-on-disallowed-foreign-object-6.svg (<use> on <g> containing <svg> containing <foreignObject>)
2418                         svg/custom/use-on-disallowed-foreign-object-7.svg (<use> on <g> containing <symbol> containing <foreignObject>)
2419                         svg/custom/use-scripting-changes-to-nonexistant-href.svg
2421         * ksvg2/svg/SVGUseElement.cpp:
2422         (WebCore::isDisallowedElement):
2423         (WebCore::subtreeContainsDisallowedElement):
2424         (WebCore::SVGUseElement::buildPendingResource):
2425         (WebCore::SVGUseElement::buildInstanceTree):
2426         (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
2427         (WebCore::SVGUseElement::buildShadowTree):
2428         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
2429         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
2430         * ksvg2/svg/SVGUseElement.h:
2432 2007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2434         Reviewed by Rob.
2436         Fix invisible-text-after-scrolling.xhtml regression. Scroll offset not
2437         taken into account properly. Also fix RenderSVGInlineText::selectionRect(),
2438         so that SVG text can be selected, when being embedded in XHTML.
2440         * rendering/RenderSVGInlineText.cpp:
2441         (WebCore::RenderSVGInlineText::selectionRect):
2442         * rendering/RenderSVGRoot.cpp:
2443         (WebCore::RenderSVGRoot::applyContentTransforms):
2445 2007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2447         Reviewed by Oliver.
2449         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5940 (<svg> inside <body> incorrectly extends over top/bottom borders)
2450         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14145 (RenderSVGContainer should not inherit from RenderContainer)
2452         Make RenderSVGContainer inherit from RenderObject directly, instead of RenderContainer.
2453         Itdoes a lot of things that we don't need for SVG, and by removing this inheritance
2454         we can finally fix the differences about SVG object positioning, as we don't need
2455         parent translation (tx/ty). Fixes SVG text rendering within XHTML.
2457         Fix requireLayer() function on RenderSVGRoot, as it can actually be a layer now.
2458         This change is based on Rob's patch at 5940 - fixing z-order indexing.
2460         Change RenderSVGRoot renderName() and update all layout tests, because of this change.
2461         
2462         Fix absoluteRects() function for RenderSVGInlineText & RenderSVGTSpan.
2463         Checked extensively using WebInspector, to assure all rects are correctly displayed.
2465         Testcases fixed: junk-data.svg, missing-xlink.svg hixie/013.xml (all regressions!)
2466         (junk-data.svg & missing-xlink.svg previously relied on SVG text painting out of <svg> overflow rect.
2467          Fix these testcases, as within this new RenderSVGContainer concept, that bug is now fixed, and breaks them)
2469         Testcases added: custom/absolute-sized-svg-in-xhtml.xhtml, custom/inline-svg-in-xhtml.xml (Mozilla XTech demo)
2471         * ksvg2/svg/SVGSVGElement.cpp:
2472         (WebCore::SVGSVGElement::parseMappedAttribute):
2473         * rendering/RenderObject.cpp:
2474         (WebCore::RenderObject::containingBlock):
2475         * rendering/RenderObject.h:
2476         (WebCore::RenderObject::isSVGRoot):
2477         * rendering/RenderPath.cpp:
2478         (WebCore::RenderPath::paint):
2479         (WebCore::RenderPath::addFocusRingRects):
2480         * rendering/RenderSVGContainer.cpp:
2481         (WebCore::RenderSVGContainer::RenderSVGContainer):
2482         (WebCore::RenderSVGContainer::canHaveChildren):
2483         (WebCore::RenderSVGContainer::addChild):
2484         (WebCore::RenderSVGContainer::removeChild):
2485         (WebCore::RenderSVGContainer::destroy):
2486         (WebCore::RenderSVGContainer::destroyLeftoverChildren):
2487         (WebCore::RenderSVGContainer::removeChildNode):
2488         (WebCore::RenderSVGContainer::appendChildNode):
2489         (WebCore::RenderSVGContainer::insertChildNode):
2490         (WebCore::RenderSVGContainer::layout):
2491         (WebCore::RenderSVGContainer::calcReplacedWidth):
2492         (WebCore::RenderSVGContainer::calcReplacedHeight):
2493         (WebCore::RenderSVGContainer::applyContentTransforms):
2494         (WebCore::RenderSVGContainer::paint):
2495         (WebCore::RenderSVGContainer::absoluteTransform):
2496         (WebCore::RenderSVGContainer::nodeAtPoint):
2497         * rendering/RenderSVGContainer.h:
2498         (WebCore::RenderSVGContainer::firstChild):
2499         (WebCore::RenderSVGContainer::lastChild):
2500         (WebCore::RenderSVGContainer::width):
2501         (WebCore::RenderSVGContainer::height):
2502         (WebCore::RenderSVGContainer::moveChildNode):
2503         (WebCore::RenderSVGContainer::calcPrefWidths):
2504         * rendering/RenderSVGHiddenContainer.cpp:
2505         (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
2506         (WebCore::RenderSVGHiddenContainer::paint):
2507         (WebCore::RenderSVGHiddenContainer::absoluteRects):
2508         (WebCore::RenderSVGHiddenContainer::relativeBBox):
2509         * rendering/RenderSVGHiddenContainer.h:
2510         * rendering/RenderSVGImage.cpp:
2511         (WebCore::RenderSVGImage::paint):
2512         * rendering/RenderSVGInline.cpp:
2513         (WebCore::RenderSVGInline::RenderSVGInline):
2514         * rendering/RenderSVGInlineText.cpp:
2515         (WebCore::RenderSVGInlineText::absoluteRects):
2516         * rendering/RenderSVGRoot.cpp:
2517         (WebCore::RenderSVGRoot::applyContentTransforms):
2518         (WebCore::RenderSVGRoot::paint):
2519         (WebCore::RenderSVGRoot::addFocusRingRects):
2520         * rendering/RenderSVGRoot.h:
2521         (WebCore::RenderSVGRoot::isSVGRoot):
2522         (WebCore::RenderSVGRoot::renderName):
2523         * rendering/RenderSVGTSpan.cpp:
2524         (WebCore::RenderSVGTSpan::RenderSVGTSpan):
2525         (WebCore::RenderSVGTSpan::absoluteRects):
2526         * rendering/RenderSVGTextPath.cpp:
2527         (WebCore::RenderSVGTextPath::absoluteRects):
2528         * rendering/RenderTreeAsText.cpp:
2529         (WebCore::write):
2530         * rendering/SVGRenderTreeAsText.cpp:
2531         (WebCore::operator<<):
2532         (WebCore::write):
2533         * rendering/SVGRenderTreeAsText.h:
2535 2007-07-11  Nikolas Zimmermann  <zimmermann@kde.org>
2537         Reviewed by Sam.
2539         Remove all "SVGElement* m_context" parameters spread over SVG primitives
2540         (like SVGAngle, SVGPreserveAspectRatio, SVGTransformList, ...)
2542         This is all handled by the JS generation in the bindings now, leading
2543         to a faster static rendering codepaths, and easier handling of the dynamic
2544         parts like JS scripting. Remove the mystified genericContext() concept alltogether.
2546         * bindings/js/JSSVGMatrixCustom.cpp: Adapt to the context() change.
2547         (WebCore::JSSVGMatrix::multiply):
2548         (WebCore::JSSVGMatrix::inverse):
2549         (WebCore::JSSVGMatrix::translate):
2550         (WebCore::JSSVGMatrix::scale):
2551         (WebCore::JSSVGMatrix::scaleNonUniform):
2552         (WebCore::JSSVGMatrix::rotate):
2553         (WebCore::JSSVGMatrix::rotateFromVector):
2554         (WebCore::JSSVGMatrix::flipX):
2555         (WebCore::JSSVGMatrix::flipY):
2556         (WebCore::JSSVGMatrix::skewX):
2557         (WebCore::JSSVGMatrix::skewY):
2558         * bindings/js/JSSVGPODTypeWrapper.h: Remove all nAC() calls here!
2559         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2560         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2561         (WebCore::JSSVGPODTypeWrapperCreatorForList::~JSSVGPODTypeWrapperCreatorForList):
2562         * bindings/js/JSSVGPathSegCustom.cpp: Adapt to the context() change.
2563         (WebCore::toJS):
2564         * bindings/js/JSSVGPathSegListCustom.cpp: Ditto.
2565         (WebCore::JSSVGPathSegList::clear):
2566         (WebCore::JSSVGPathSegList::initialize):
2567         (WebCore::JSSVGPathSegList::getItem):
2568         (WebCore::JSSVGPathSegList::insertItemBefore):
2569         (WebCore::JSSVGPathSegList::replaceItem):
2570         (WebCore::JSSVGPathSegList::removeItem):
2571         (WebCore::JSSVGPathSegList::appendItem):
2572         * bindings/js/JSSVGPointListCustom.cpp: Ditto.
2573         (WebCore::JSSVGPointList::clear):
2574         (WebCore::JSSVGPointList::initialize):
2575         (WebCore::JSSVGPointList::getItem):
2576         (WebCore::JSSVGPointList::insertItemBefore):
2577         (WebCore::JSSVGPointList::replaceItem):
2578         (WebCore::JSSVGPointList::removeItem):
2579         (WebCore::JSSVGPointList::appendItem): 
2580         * bindings/js/JSSVGTransformListCustom.cpp: Ditto.
2581         (WebCore::JSSVGTransformList::clear):
2582         (WebCore::JSSVGTransformList::initialize):
2583         (WebCore::JSSVGTransformList::getItem):
2584         (WebCore::JSSVGTransformList::insertItemBefore):
2585         (WebCore::JSSVGTransformList::replaceItem):
2586         (WebCore::JSSVGTransformList::removeItem):
2587         (WebCore::JSSVGTransformList::appendItem):
2588         * bindings/js/kjs_binding.h: Add new cacheSVGDOMObject, taking third parameter: context.
2589         (KJS::cacheSVGDOMObject):
2590         * bindings/scripts/CodeGeneratorJS.pm: Change generation to step aways from genericContext().
2591         * ksvg2/misc/SVGDocumentExtensions.h: Kill all genericContext() stuff.
2592         (WebCore::SVGDocumentExtensions::hasBaseValue):
2593         * ksvg2/svg/SVGAngle.cpp: Kill context parameter.
2594         (WebCore::SVGAngle::SVGAngle):
2595         * ksvg2/svg/SVGAngle.h: ditto.
2596         * ksvg2/svg/SVGFEImageElement.cpp: SVG classes don't get context params passed anymore.
2597         (WebCore::SVGFEImageElement::SVGFEImageElement):
2598         * ksvg2/svg/SVGFitToViewBox.cpp: Ditto.
2599         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
2600         * ksvg2/svg/SVGGradientElement.cpp: Ditto.
2601         (WebCore::SVGGradientElement::SVGGradientElement):
2602         * ksvg2/svg/SVGImageElement.cpp: Ditto.
2603         (WebCore::SVGImageElement::SVGImageElement):
2604         * ksvg2/svg/SVGMarkerElement.cpp: Ditto.
2605         (WebCore::SVGMarkerElement::SVGMarkerElement):
2606         (WebCore::SVGMarkerElement::parseMappedAttribute):
2607         * ksvg2/svg/SVGPathElement.cpp: Ditto.
2608         (WebCore::SVGPathElement::pathSegList):
2609         * ksvg2/svg/SVGPathSegList.cpp: Kill context parameter.
2610         (WebCore::SVGPathSegList::SVGPathSegList):
2611         * ksvg2/svg/SVGPathSegList.h:
2612         * ksvg2/svg/SVGPatternElement.cpp: SVG classes don't get context params passed anymore.
2613         (WebCore::SVGPatternElement::SVGPatternElement):
2614         * ksvg2/svg/SVGPointList.cpp: Kill context parameter.
2615         (SVGPointList::SVGPointList):
2616         * ksvg2/svg/SVGPointList.h:
2617         * ksvg2/svg/SVGPolyElement.cpp: SVG classes don't get context params passed anymore.
2618         (WebCore::SVGPolyElement::points):
2619         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Kill context parameter.
2620         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
2621         (WebCore::SVGPreserveAspectRatio::setAlign):
2622         (WebCore::SVGPreserveAspectRatio::setMeetOrSlice):
2623         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2624         * ksvg2/svg/SVGPreserveAspectRatio.h:
2625         * ksvg2/svg/SVGSVGElement.cpp: SVG classes don't get cntext params passed anymore.
2626         (WebCore::SVGSVGElement::createSVGAngle):
2627         * ksvg2/svg/SVGStyledTransformableElement.cpp: Ditto.
2628         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2629         * ksvg2/svg/SVGTextElement.cpp: Ditto.
2630         (WebCore::SVGTextElement::SVGTextElement):
2631         * ksvg2/svg/SVGTransformList.cpp: Kill context parameter.
2632         (SVGTransformList::SVGTransformList):
2633         * ksvg2/svg/SVGTransformList.h:
2635 2007-07-10  Nikolas Zimmermann  <zimmermann@kde.org>
2637         Reviewed by Sam.
2639         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11167.
2641         Recognize <textPath> in SVG JS bindings.
2642         Add JSSVGTextPathElement to JSSVGElementWrapperFactory.
2644         Add SVGException.idl just for the JS generation.
2645         Turn on all SVG JS constructors and add them to DOMWindow.idl.
2647         Testcase added: LayoutTests/svg/custom/js-svg-constructors.svg
2648     
2649         * DerivedSources.make: Add JSSVGException.h
2650         * WebCore.xcodeproj/project.pbxproj: Correct paths for DOM/JS*SVGTextPathElement
2651         * bindings/scripts/CodeGeneratorJS.pm: Forward port hash fix from trunk.
2652         * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGTextPathElement support
2653         * ksvg2/svg/SVGComponentTransferFunctionElement.idl:
2654         * ksvg2/svg/SVGTextPathElement.h:
2655         * ksvg2/svg/SVGException.h:
2656         * ksvg2/svg/SVGException.idl: Added.
2657         * ksvg2/svg/SVGFEBlendElement.idl:
2658         * ksvg2/svg/SVGFEColorMatrixElement.idl:
2659         * ksvg2/svg/SVGFECompositeElement.idl:
2660         * ksvg2/svg/SVGFEDisplacementMapElement.idl:
2661         * ksvg2/svg/SVGFETurbulenceElement.idl:
2662         * ksvg2/svg/SVGGradientElement.idl:
2663         * ksvg2/svg/SVGMarkerElement.idl:
2664         * ksvg2/svg/SVGTextContentElement.idl:
2665         * ksvg2/svg/SVGTextPathElement.idl:
2666         * page/DOMWindow.idl: Recognize new js svg constructors.
2668 2007-06-28  Rob Buis  <buis@kde.org>
2670         Reviewed by Maciej.
2672         http://bugs.webkit.org/show_bug.cgi?id=14241
2673         SVG <image> with height or width less than 1 fails to render image
2675         Keep extra member vars to get width/height as floats for accurate
2676         calculations.
2678         * rendering/RenderSVGImage.cpp:
2679         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
2680         (WebCore::RenderSVGImage::paint):
2681         (WebCore::RenderSVGImage::calcWidth):
2682         (WebCore::RenderSVGImage::calcHeight):
2683         * rendering/RenderSVGImage.h:
2685 2007-06-26  Rob Buis  <buis@kde.org>
2687         Reviewed by Maciej.
2689         http://bugs.webkit.org/show_bug.cgi?id=9976
2690         Fix negative width issue in Hixie's test
2692         Refuse to render zero or negative width/height.
2694         * rendering/RenderSVGContainer.cpp:
2695         (WebCore::RenderSVGContainer::paint):
2696         * rendering/RenderSVGRoot.cpp:
2697         (WebCore::RenderSVGRoot::paint):
2699 2007-06-26  Rob Buis  <buis@kde.org>
2701         Reviewed by Maciej.
2703         http://bugs.webkit.org/show_bug.cgi?id=12062
2704         WebCore does not handle CSS-specified fill fallback correctly
2706         Implement fallback for fill and stroke.
2708         * ksvg2/css/SVGCSSParser.cpp:
2709         (WebCore::CSSParser::parseSVGValue):
2710         * ksvg2/svg/SVGPaint.cpp:
2711         (WebCore::SVGPaint::SVGPaint):
2712         * ksvg2/svg/SVGPaint.h:
2713         * platform/graphics/svg/SVGPaintServer.cpp:
2714         (WebCore::SVGPaintServer::fillPaintServer):
2715         (WebCore::SVGPaintServer::strokePaintServer):
2717 2007-06-20  Rob Buis  <buis@kde.org>
2719         Reviewed by Eric.
2721         http://bugs.webkit.org/show_bug.cgi?id=14157
2722         Rotated shape has wrong gradient rendering
2724         Use the untransformed bbox in objectBoundingBoxMode. Also
2725         don't do objectBoundingBoxMode should the bbox width ort height
2726         be zero.
2728         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2729         (WebCore::SVGPaintServerGradient::teardown):
2730         (WebCore::SVGPaintServerGradient::renderPath):
2732 2007-06-20  Nikolas Zimmermann  <zimmermann@kde.org>
2734         Reviewed by Eric & Oliver.
2736         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14198
2738         Reeanble <foreignObject>. Explicitely disallow <use> on <foreignObject>
2739         as it may lead to bad problems. 
2741         While I'm at it disallow <use> on any non-svg element.
2743         * bindings/js/JSSVGElementWrapperFactory.cpp:
2744         * bindings/objc/DOM.mm:
2745         (WebCore::createElementClassMap):
2746         * ksvg2/svg/SVGForeignObjectElement.cpp:
2747         * ksvg2/svg/SVGForeignObjectElement.h:
2748         * ksvg2/svg/SVGForeignObjectElement.idl:
2749         * ksvg2/svg/SVGLocatable.cpp:
2750         (WebCore::SVGLocatable::nearestViewportElement):
2751         (WebCore::SVGLocatable::farthestViewportElement):
2752         * ksvg2/svg/SVGUseElement.cpp:
2753         (WebCore::SVGUseElement::buildPendingResource):
2754         * ksvg2/svg/svgtags.in:
2755         * rendering/RenderForeignObject.cpp:
2757 2007-06-19  Rob Buis  <buis@kde.org>
2759         Reviewed by Oliver.
2761         http://bugs.webkit.org/show_bug.cgi?id=14144
2762         All tx/ty (parentX/parentY) usage should be removed from SVG renders
2763         http://bugs.webkit.org/show_bug.cgi?id=13981
2764         <br> prevents click handler from firing
2766         Fix the hit testing issues by making RenderSVGRoot take its m_x, m_y
2767         into account in the absolute transform.
2769         * rendering/RenderPath.cpp:
2770         (WebCore::RenderPath::absoluteRects):
2771         (WebCore::RenderPath::nodeAtPoint):
2772         * rendering/RenderSVGImage.cpp:
2773         (WebCore::RenderSVGImage::nodeAtPoint):
2774         * rendering/RenderSVGRoot.cpp:
2775         (WebCore::RenderSVGRoot::absoluteTransform):
2776         (WebCore::RenderSVGRoot::nodeAtPoint):
2778 2007-06-16  Nikolas Zimmermann  <zimmermann@kde.org>
2780         Reviewed by Eric.
2782         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14015 (SVGTransformList::initialize() has no effect)
2784         Fix SVGTransformList usage in SVG DOM exposed to JS.
2785         This also fixes SVG space invaders including most repainting issues. (still some unrelated ones left)
2787         This is basically the _same_ fix applied to SVGPointList some months ago. We just forgot
2788         to add JSSVGTransformListCustom when switching from SVGTransform* -> SVGTransform (POD type).
2790         * WebCore.xcodeproj/project.pbxproj:
2791         * bindings/js/JSSVGTransformListCustom.cpp: Added.
2792         (WebCore::JSSVGTransformList::clear):
2793         (WebCore::JSSVGTransformList::initialize):
2794         (WebCore::JSSVGTransformList::getItem):
2795         (WebCore::JSSVGTransformList::insertItemBefore):
2796         (WebCore::JSSVGTransformList::replaceItem):
2797         (WebCore::JSSVGTransformList::removeItem):
2798         (WebCore::JSSVGTransformList::appendItem):
2799         * ksvg2/svg/SVGCircleElement.cpp:
2800         (WebCore::SVGCircleElement::notifyAttributeChange):
2801         * ksvg2/svg/SVGEllipseElement.cpp:
2802         (WebCore::SVGEllipseElement::notifyAttributeChange):
2803         * ksvg2/svg/SVGGradientElement.cpp:
2804         (WebCore::SVGGradientElement::SVGGradientElement):
2805         * ksvg2/svg/SVGImageElement.cpp:
2806         (WebCore::SVGImageElement::notifyAttributeChange):
2807         * ksvg2/svg/SVGLineElement.cpp:
2808         (WebCore::SVGLineElement::notifyAttributeChange):
2809         * ksvg2/svg/SVGPathElement.cpp:
2810         (WebCore::SVGPathElement::notifyAttributeChange):
2811         * ksvg2/svg/SVGPatternElement.cpp:
2812         (WebCore::SVGPatternElement::SVGPatternElement):
2813         * ksvg2/svg/SVGPolyElement.cpp:
2814         (WebCore::SVGPolyElement::notifyAttributeChange):
2815         * ksvg2/svg/SVGRectElement.cpp:
2816         (WebCore::SVGRectElement::notifyAttributeChange):
2817         * ksvg2/svg/SVGStyledTransformableElement.cpp:
2818         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2819         (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
2820         * ksvg2/svg/SVGStyledTransformableElement.h:
2821         * ksvg2/svg/SVGTextElement.cpp:
2822         (WebCore::SVGTextElement::SVGTextElement):
2823         * ksvg2/svg/SVGTransformList.cpp:
2824         (SVGTransformList::SVGTransformList):
2825         (SVGTransformList::context):
2826         * ksvg2/svg/SVGTransformList.h:
2827         * ksvg2/svg/SVGTransformList.idl:
2829 2007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2831         Reviewed by Eric.
2833         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14155
2835         JSSVGMatrix was not working properly.
2836         "matrix.translate(10, 10)" actually altered 'matrix' instead of returning a
2837         new SVGMatrix object, as described in SVG 1.1 specification.
2839         * bindings/js/JSSVGMatrixCustom.cpp:
2840         (WebCore::JSSVGMatrix::multiply):
2841         (WebCore::JSSVGMatrix::inverse):
2842         (WebCore::JSSVGMatrix::translate):
2843         (WebCore::JSSVGMatrix::scale):
2844         (WebCore::JSSVGMatrix::scaleNonUniform):
2845         (WebCore::JSSVGMatrix::rotate):
2846         (WebCore::JSSVGMatrix::flipX):
2847         (WebCore::JSSVGMatrix::flipY):
2848         (WebCore::JSSVGMatrix::skewX):
2849         (WebCore::JSSVGMatrix::skewY):
2850         * ksvg2/svg/SVGMatrix.idl:
2852 2007-06-15  Eric Seidel  <eric@webkit.org>
2854         Reviewed by Niko.
2856         Fix the release build.
2858         * rendering/SVGRootInlineBox.cpp:
2859         (WebCore::applyTextAnchorToTextChunk):
2861 2007-06-15  Rob Buis  <buis@kde.org>
2863         Reviewed by Eric.
2865         http://bugs.webkit.org/show_bug.cgi?id=14051
2866         <svg:image> fails to position correctly when <svg> is inside an inline <div>
2868         Leave parent translation to the containers.
2870         * rendering/RenderSVGImage.cpp:
2871         (WebCore::RenderSVGImage::paint):
2873 2007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2875         Reviewed by Eric.
2877         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13963
2879         Fix SVG space invaders. It actually highlighted a bad problem with our JSSVGPODTypeWrapper's.
2880         Introduce a new "2nd-level cache" for all readwrite POD properties. Subsequent calls to ie.
2881         myRect.x.baseVal.value don't create a new wrapper everytime, but are properly cached now.
2882         This leads to a massive reduction in created wrappers.
2884         * bindings/js/JSSVGMatrixCustom.cpp:
2885         (WebCore::JSSVGMatrix::inverse):
2886         (WebCore::JSSVGMatrix::rotateFromVector):
2887         * bindings/js/JSSVGPODTypeWrapper.h:
2888         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
2889         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::~JSSVGPODTypeWrapperCreatorReadWrite):
2890         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::operator PODType):
2891         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2892         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
2893         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::~JSSVGPODTypeWrapperCreatorReadOnly):
2894         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::operator PODType):
2895         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
2896         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2897         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
2898         (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo):
2899         (WebCore::PODTypeReadWriteHashInfo::operator==):
2900         (WebCore::PODTypeReadWriteHashInfoHash::hash):
2901         (WebCore::PODTypeReadWriteHashInfoHash::equal):
2902         (WebCore::PODTypeReadWriteHashInfoTraits::deletedValue):
2903         (WebCore::PODTypeReadWriteHashInfoTraits::emptyValue):
2904         (WebCore::JSSVGPODTypeWrapperCache::readWriteHashMap):
2905         (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
2906         (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
2907         * bindings/js/JSSVGPointListCustom.cpp:
2908         (WebCore::JSSVGPointList::removeItem):
2909         * bindings/scripts/CodeGeneratorJS.pm:
2911 2007-06-14  Eric Seidel  <eric@webkit.org>
2913         Reviewed by Niko.
2915         Text gradients are broken on feature branch
2916         http://bugs.webkit.org/show_bug.cgi?id=14142
2918         * rendering/SVGRenderSupport.cpp:
2919         (WebCore::prepareToRenderSVGContent):
2920         * rendering/SVGRootInlineBox.cpp:
2921         (WebCore::prepareTextRendering):
2922         (WebCore::SVGRootInlineBox::paint):
2923         (WebCore::SVGRootInlineBox::paintInlineBoxes):
2924         (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2925         (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
2926         * rendering/SVGRootInlineBox.h:
2928 2007-06-14  Nikolas Zimmermann  <zimmermann@kde.org>
2930         Reviewed by Sam.
2932         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11273
2934         Implement pixelUnitToMillimeterX(), pixelUnitToMillimeterY() in SVGSVGElement.
2935         Use cssPixelsPerInch, just like done in CSSPrimitiveValue & SVGLength.
2937         * ksvg2/svg/SVGSVGElement.cpp:
2938         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
2939         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
2941 2007-06-14  Rob Buis  <buis@kde.org>
2943         Reviewed by Eric.
2945         http://bugs.webkit.org/show_bug.cgi?id=9752
2946         %-sizing of elements with a html parent is broken
2948         Calculate width/height for length percentages when embedded in xhtml.
2950         * ksvg2/svg/SVGLength.cpp:
2951         (WebCore::SVGLength::PercentageOfViewport):
2953 2007-06-14  Rob Buis  <buis@kde.org>
2955         Build fix.
2957         * rendering/SVGCharacterLayoutInfo.cpp:
2959 2007-06-14  Rob Buis  <buis@kde.org>
2961         Reviewed by Eric.
2963         http://bugs.webkit.org/show_bug.cgi?id=12207
2964         RenderSVGContainer should be split into multiple classes
2965         http://bugs.webkit.org/show_bug.cgi?id=14125
2966         KCanvasRenderingStyle should be removed
2968         Introduce the RenderSVGRoot class and kill the KCanvas enums.
2970         * WebCore.xcodeproj/project.pbxproj:
2971         * ksvg2/css/SVGRenderStyle.cpp:
2972         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
2973         * ksvg2/css/SVGRenderStyle.h:
2974         * ksvg2/misc/KCanvasRenderingStyle.cpp: Removed.
2975         * ksvg2/misc/KCanvasRenderingStyle.h: Removed.
2976         * ksvg2/svg/SVGMarkerElement.cpp:
2977         (WebCore::SVGMarkerElement::createRenderer):
2978         (WebCore::SVGMarkerElement::notifyAttributeChange):
2979         * ksvg2/svg/SVGSVGElement.cpp:
2980         (WebCore::SVGSVGElement::createRenderer):
2981         * ksvg2/svg/SVGSVGElement.h:
2982         * platform/graphics/svg/SVGPaintServer.cpp:
2983         (WebCore::sharedSolidPaintServer):
2984         (WebCore::SVGPaintServer::fillPaintServer):
2985         (WebCore::SVGPaintServer::strokePaintServer):
2986         (WebCore::dashArrayFromRenderingStyle):
2987         * platform/graphics/svg/SVGPaintServer.h:
2988         * platform/graphics/svg/cg/CgSupport.cpp:
2989         (WebCore::applyStrokeStyleToContext):
2990         * platform/graphics/svg/cg/RenderPathCg.cpp:
2991         (WebCore::RenderPath::strokeContains):
2992         * rendering/RenderPath.cpp:
2993         (WebCore::RenderPath::fillContains):
2994         (WebCore::fillAndStrokePath):
2995         (WebCore::RenderPath::drawMarkersIfNeeded):
2996         * rendering/RenderSVGContainer.cpp:
2997         (WebCore::RenderSVGContainer::requiresLayer):
2998         (WebCore::RenderSVGContainer::layout):
2999         (WebCore::RenderSVGContainer::applyContentTransforms):
3000         (WebCore::RenderSVGContainer::paint):
3001         (WebCore::RenderSVGContainer::setAlign):
3002         (WebCore::RenderSVGContainer::align):
3003         (WebCore::RenderSVGContainer::viewportTransform):
3004         (WebCore::RenderSVGContainer::absoluteTransform):
3005         (WebCore::RenderSVGContainer::getAspectRatio):
3006         * rendering/RenderSVGContainer.h:
3007         * rendering/RenderSVGInlineText.cpp:
3008         * rendering/RenderSVGRoot.cpp: Added.
3009         (WebCore::RenderSVGRoot::RenderSVGRoot):
3010         (WebCore::RenderSVGRoot::~RenderSVGRoot):
3011         (WebCore::RenderSVGRoot::localTransform):
3012         (WebCore::RenderSVGRoot::setLocalTransform):
3013         (WebCore::RenderSVGRoot::requiresLayer):
3014         (WebCore::RenderSVGRoot::lineHeight):
3015         (WebCore::RenderSVGRoot::baselinePosition):
3016         (WebCore::RenderSVGRoot::layout):
3017         (WebCore::RenderSVGRoot::applyContentTransforms):
3018         (WebCore::RenderSVGRoot::paint):
3019         (WebCore::RenderSVGRoot::viewport):
3020         (WebCore::RenderSVGRoot::calcViewport):
3021         (WebCore::RenderSVGRoot::setViewBox):
3022         (WebCore::RenderSVGRoot::viewBox):
3023         (WebCore::RenderSVGRoot::setAlign):
3024         (WebCore::RenderSVGRoot::align):
3025         (WebCore::RenderSVGRoot::viewportTransform):
3026         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
3027         (WebCore::RenderSVGRoot::addFocusRingRects):
3028         (WebCore::RenderSVGRoot::absoluteRects):
3029         (WebCore::RenderSVGRoot::absoluteTransform):
3030         (WebCore::RenderSVGRoot::fillContains):
3031         (WebCore::RenderSVGRoot::strokeContains):
3032         (WebCore::RenderSVGRoot::relativeBBox):
3033         (WebCore::RenderSVGRoot::setSlice):
3034         (WebCore::RenderSVGRoot::slice):
3035         (WebCore::RenderSVGRoot::getAspectRatio):
3036         (WebCore::RenderSVGRoot::nodeAtPoint):
3037         * rendering/RenderSVGRoot.h: Added.
3038         (WebCore::RenderSVGRoot::isSVGContainer):
3039         (WebCore::RenderSVGRoot::renderName):
3040         * rendering/RenderSVGTSpan.cpp:
3041         * rendering/RenderSVGText.cpp:
3042         (WebCore::RenderSVGText::relativeBBox):
3043         * rendering/SVGRenderTreeAsText.cpp:
3044         (WebCore::operator<<):
3045         (WebCore::writeStyle):
3046         * rendering/SVGRootInlineBox.cpp:
3047         (WebCore::SVGRootInlineBox::paint):
3048         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3050 2007-06-12  Nikolas Zimmermann  <zimmermann@kde.org>
3052         Reviewed by Eric.
3054         Fix regression: SVG images drawn in the wrong paint phase.
3056         * rendering/RenderSVGImage.cpp:
3057         (WebCore::RenderSVGImage::paint):
3059 2007-06-11  Rob Buis  <buis@kde.org>
3061         Reviewed by weinig.
3063         http://bugs.webkit.org/show_bug.cgi?id=14064
3064         fill property is reported as type SVGColor
3066         Do the checks in the right order.
3068         * bindings/js/kjs_css.cpp:
3069         (KJS::toJS):
3071 2007-06-07  Rob Buis  <buis@kde.org>
3073         Reviewed by Eric.
3075         http://bugs.webkit.org/show_bug.cgi?id=12122
3076         SVGPathElement should not inherit from SVGPathParser
3078         Use path builders for building Path and PathSegLists.
3080         * ksvg2/svg/SVGAnimateMotionElement.cpp:
3081         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
3082         * ksvg2/svg/SVGParserUtilities.cpp:
3083         (WebCore::pointsListFromSVGData):
3084         (WebCore::SVGPathParser::~SVGPathParser):
3085         (WebCore::SVGPathParser::svgLineToHorizontal):
3086         (WebCore::SVGPathParser::svgLineToVertical):
3087         (WebCore::SVGPathParser::svgCurveToCubicSmooth):
3088         (WebCore::SVGPathParser::svgCurveToQuadratic):
3089         (WebCore::SVGPathParser::svgCurveToQuadraticSmooth):
3090         (WebCore::SVGPathParser::svgArcTo):
3091         (WebCore::PathBuilder::build):
3092         (WebCore::PathBuilder::svgMoveTo):
3093         (WebCore::PathBuilder::svgLineTo):
3094         (WebCore::PathBuilder::svgCurveToCubic):
3095         (WebCore::PathBuilder::svgClosePath):
3096         (WebCore::pathFromSVGData):
3097         (WebCore::SVGPathSegListBuilder::build):
3098         (WebCore::SVGPathSegListBuilder::svgMoveTo):
3099         (WebCore::SVGPathSegListBuilder::svgLineTo):
3100         (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
3101         (WebCore::SVGPathSegListBuilder::svgLineToVertical):
3102         (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
3103         (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
3104         (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
3105         (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
3106         (WebCore::SVGPathSegListBuilder::svgArcTo):
3107         (WebCore::SVGPathSegListBuilder::svgClosePath):
3108         (WebCore::pathSegListFromSVGData):
3109         * ksvg2/svg/SVGParserUtilities.h:
3110         * ksvg2/svg/SVGPathElement.cpp:
3111         (WebCore::SVGPathElement::SVGPathElement):
3112         (WebCore::SVGPathElement::parseMappedAttribute):
3113         * ksvg2/svg/SVGPathElement.h:
3114         * ksvg2/svg/SVGPolyElement.cpp:
3115         (WebCore::SVGPolyElement::SVGPolyElement):
3116         (WebCore::SVGPolyElement::parseMappedAttribute):
3117         * ksvg2/svg/SVGPolyElement.h:
3119 2007-06-06  Eric Seidel  <eric@webkit.org>
3121         Reviewed by olliej.
3123         Add support for tabbing between links in an SVG file
3124         Also add support for drawing a focus ring around focused svg content.
3125         http://bugs.webkit.org/show_bug.cgi?id=8823
3126         
3127         Layout test is blocked by http://bugs.webkit.org/show_bug.cgi?id=14027
3129         * css/svg.css:
3130         * ksvg2/svg/SVGAElement.cpp:
3131         (WebCore::SVGAElement::defaultEventHandler):
3132         (WebCore::SVGAElement::supportsFocus):
3133         (WebCore::SVGAElement::isFocusable):
3134         (WebCore::SVGAElement::isMouseFocusable):
3135         (WebCore::SVGAElement::isKeyboardFocusable):
3136         * ksvg2/svg/SVGAElement.h:
3138 2007-06-06  Eric Seidel  <eric@webkit.org>
3140         Reviewed by olliej.
3142         Make SVG (mostly) support CSS outline property (and thus focus rings)
3143         http://bugs.webkit.org/show_bug.cgi?id=10849
3145         Test: svg/custom/focus-ring.svg
3147         * rendering/RenderPath.cpp:
3148         (WebCore::RenderPath::paint):
3149         (WebCore::RenderPath::addFocusRingRects):
3150         * rendering/RenderPath.h:
3151         * rendering/RenderSVGContainer.cpp:
3152         (WebCore::RenderSVGContainer::paint):
3153         (WebCore::RenderSVGContainer::addFocusRingRects):
3154         * rendering/RenderSVGContainer.h:
3155         * rendering/RenderSVGImage.cpp:
3156         (WebCore::RenderSVGImage::paint):
3157         (WebCore::RenderSVGImage::addFocusRingRects):
3158         * rendering/RenderSVGImage.h:
3160 2007-06-06  Eric Seidel  <eric@webkit.org>
3162         Reviewed by weinig.
3163         
3164         Break out common SVG rendering logic into prepareToRenderSVGContent in SVGRenderSupport
3166         No test cases should be changed by this.
3168         * WebCore.xcodeproj/project.pbxproj:
3169         * rendering/RenderPath.cpp:
3170         (WebCore::fillAndStrokePath):
3171         (WebCore::RenderPath::paint):
3172         * rendering/RenderSVGContainer.cpp:
3173         (WebCore::RenderSVGContainer::RenderSVGContainer):
3174         (WebCore::RenderSVGContainer::requiresLayer):
3175         (WebCore::RenderSVGContainer::isOutermostSVG):
3176         (WebCore::RenderSVGContainer::layout):
3177         (WebCore::RenderSVGContainer::applyContentTransforms):
3178         (WebCore::RenderSVGContainer::paint):
3179         (WebCore::RenderSVGContainer::viewportTransform):
3180         (WebCore::RenderSVGContainer::absoluteTransform):
3181         * rendering/RenderSVGContainer.h:
3182         * rendering/RenderSVGImage.cpp:
3183         (WebCore::RenderSVGImage::paint):
3184         (WebCore::RenderSVGImage::translationForAttributes):
3185         * rendering/SVGRenderSupport.cpp: Added.
3186         (WebCore::prepareToRenderSVGContent):
3187         * rendering/SVGRenderSupport.h: Added.
3188         * rendering/SVGRootInlineBox.cpp:
3189         (WebCore::prepareTextRendering):
3190         (WebCore::SVGRootInlineBox::paint):
3191         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3193 2007-06-06  Rob Buis  <buis@kde.org>
3195         Reviewed by Eric.
3197         http://bugs.webkit.org/show_bug.cgi?id=13976
3198         getPresentationAttribute not implemented
3200         Implement getPresentationAttribute.
3202         * ksvg2/svg/SVGStylable.h:
3203         * ksvg2/svg/SVGStylable.idl:
3204         * ksvg2/svg/SVGStyledElement.cpp:
3205         (WebCore::SVGStyledElement::getPresentationAttribute):
3206         * ksvg2/svg/SVGStyledElement.h:
3208 2007-06-06  Rob Buis  <buis@kde.org>
3210         Reviewed by olliej and eric.
3212         http://bugs.webkit.org/show_bug.cgi?id=12430
3213         SVG has two transform parsers when it should have one.
3215         Refactor SVGTransformable parser so SVGAnimateTransformElement can reuse it better.
3217         * ksvg2/svg/SVGAnimateTransformElement.cpp:
3218         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
3219         * ksvg2/svg/SVGAnimateTransformElement.h:
3220         * ksvg2/svg/SVGTransformable.cpp:
3221         (WebCore::):
3222         (WebCore::SVGTransformable::parseTransformValue):
3223         (WebCore::SVGTransformable::parseTransformAttribute):
3224         * ksvg2/svg/SVGTransformable.h:
3226 2007-06-05  Eric Seidel  <eric@webkit.org>
3228         Reviewed by olliej.
3230         Commit files missing from previous commit, oops!
3231         
3232         * platform/graphics/svg/SVGResourceMasker.cpp:
3233         (WebCore::SVGResourceMasker::SVGResourceMasker):
3234         (WebCore::SVGResourceMasker::invalidate):
3235         * platform/graphics/svg/SVGResourceMasker.h:
3236         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3237         (WebCore::SVGResourceMasker::applyMask):
3239 2007-06-01  Eric Seidel  <eric@webkit.org>
3241         Reviewed by olliej.
3243         Add support for maskUnits and maskContentUnits
3244         http://bugs.webkit.org/show_bug.cgi?id=12568
3245         
3246         This is covered by the W3C tests (including mask-intro01)
3248         * ksvg2/svg/SVGMaskElement.cpp:
3249         (WebCore::SVGMaskElement::SVGMaskElement):
3250         (WebCore::SVGMaskElement::parseMappedAttribute):
3251         (WebCore::SVGMaskElement::drawMaskerContent):
3252         (WebCore::SVGMaskElement::canvasResource):
3253         (WebCore::SVGMaskElement::notifyAttributeChange):
3254         * ksvg2/svg/SVGMaskElement.h:
3255         * ksvg2/svg/SVGMaskElement.idl:
3256         * platform/graphics/svg/SVGResourceMasker.cpp:
3257         (WebCore::SVGResourceMasker::SVGResourceMasker):
3258         (WebCore::SVGResourceMasker::invalidate):
3259         * platform/graphics/svg/SVGResourceMasker.h:
3260         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3261         (WebCore::SVGResourceMasker::applyMask):
3263 2007-06-01  Eric Seidel  <eric@webkit.org>
3265         Reviewed by lars.
3266         
3267         Cursor does not change to hand over links containing <use>
3268         http://bugs.webkit.org/show_bug.cgi?id=12630
3270         Test: manual-tests/svg-link-hover-use.svg
3272         * manual-tests/svg-link-hover-use.svg: Added.
3273         * rendering/RenderLayer.cpp:
3274         (WebCore::RenderLayer::hitTest): use eventParentNode instead of parentNode
3276 2007-06-01  Eric Seidel  <eric@webkit.org>
3278         Reviewed by olliej.
3280         SVG is not correctly respecting scroll during hit testing
3281         http://bugs.webkit.org/show_bug.cgi?id=13083
3283         Test: svg/custom/scroll-hit-test.svg
3285         * rendering/RenderPath.cpp:
3286         (WebCore::RenderPath::nodeAtPoint):
3287         * rendering/RenderSVGContainer.cpp:
3288         (WebCore::RenderSVGContainer::nodeAtPoint):
3290 2007-06-01  Eric Seidel  <eric@webkit.org>
3292         Reviewed by hyatt.
3294         Fix for: http://bugs.webkit.org/show_bug.cgi?id=12187
3296         Tests: fast/dom/attribute-case-sensitivity.html, fast/dom/attribute-case-sensitivity2.xhtml
3298         * dom/Element.cpp:
3299         (WebCore::shouldIgnoreAttributeCase): check to make sure element is an HTMLElement
3300         (WebCore::Element::getAttribute):
3301         (WebCore::Element::setAttribute):
3302         (WebCore::Element::removeAttribute):
3303         (WebCore::Element::getAttributeNode):
3304         (WebCore::Element::hasAttribute):
3305         * dom/NamedAttrMap.cpp:
3306         (WebCore::shouldIgnoreAttributeCase):
3307         (WebCore::NamedAttrMap::getNamedItem):
3308         (WebCore::NamedAttrMap::removeNamedItem):
3310 2007-05-31  Eric Seidel  <eric@webkit.org>
3312         Reviewed by Niko.
3314         Links are activated based on mouse down events instead of click events
3315         http://bugs.webkit.org/show_bug.cgi?id=12570
3316         
3317         Test: svg/custom/prevent-default.svg
3319         * html/HTMLAnchorElement.cpp: use MiddleButton and RightButton instead of 1 and 2
3320         (WebCore::HTMLAnchorElement::defaultEventHandler):
3321         * ksvg2/svg/SVGAElement.cpp:
3322         (WebCore::SVGAElement::defaultEventHandler): make it function more like the HTML side
3324 2007-05-30  Rob Buis  <buis@kde.org>
3326         Reviewed by Darin.
3328         http://bugs.webkit.org/show_bug.cgi?id=11272
3329         Implement currentScale(), setCurrentScale() and currentTranslate() in SVGSVGElement
3331         Allow zooming and panning, thereby implementing the above methods.
3333         * ksvg2/svg/SVGDocument.cpp:
3334         (WebCore::SVGDocument::zoomAndPanEnabled):
3335         (WebCore::SVGDocument::startPan):
3336         (WebCore::SVGDocument::updatePan):
3337         * ksvg2/svg/SVGDocument.h:
3338         * ksvg2/svg/SVGSVGElement.cpp:
3339         (WebCore::SVGSVGElement::currentScale):
3340         (WebCore::SVGSVGElement::setCurrentScale):
3341         (WebCore::SVGSVGElement::currentTranslate):
3342         (WebCore::SVGSVGElement::setCurrentTranslate):
3343         * ksvg2/svg/SVGSVGElement.h:
3344         * page/EventHandler.cpp:
3345         (WebCore::EventHandler::EventHandler):
3346         (WebCore::EventHandler::handleMousePressEvent):
3347         (WebCore::EventHandler::handleMouseMoveEvent):
3348         (WebCore::EventHandler::handleMouseReleaseEvent):
3349         * page/EventHandler.h:
3350         * page/Frame.cpp:
3351         (WebCore::Frame::setZoomFactor):
3352         * rendering/RenderSVGContainer.cpp:
3353         (WebCore::RenderSVGContainer::layout):
3354         (WebCore::RenderSVGContainer::paint):
3355         (WebCore::RenderSVGContainer::absoluteTransform):
3357 2007-05-30  Nikolas Zimmermann  <zimmermann@kde.org>
3359         Reviewed by Oliver.
3361         Fix regression: gradient on fill of text works again!
3363         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
3364         (WebCore::SVGPaintServerGradient::teardown):
3366 2007-05-29  Nikolas Zimmermann  <zimmermann@kde.org>
3368         Reviewed by Oliver.
3370         Fix "jumpy" selection by correcting the way svgCharacterHitsPosition works.
3371         I basically mixed up the "closest character to position" logic.
3373         * rendering/RenderSVGInlineText.cpp: Only call svgCharacterHitsPosition for the firstTextBox -> it handles all children anyway.
3374         (WebCore::RenderSVGInlineText::positionForCoordinates):
3375         * rendering/SVGInlineTextBox.cpp:
3376         (WebCore::SVGInlineTextBox::closestCharacterToPosition): Fix logic - was really broken!
3377         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3378         (WebCore::SVGInlineTextBox::nodeAtPoint): Do not use svgCharacterHitsPosition here - too accurate!
3379                                                   We don't want to loose the 'text' cursor if one is just between two characters.
3381 2007-05-24  Nikolas Zimmermann  <zimmermann@kde.org>
3383         Reviewed by Oliver.
3385         Add new code path dumping SVG text engine specific layout test results.
3386         Finally the dumped results are actually accurate and respond to the
3387         rendered glyphs. This has never been correct so far.
3389         * rendering/RenderTreeAsText.cpp:
3390         (WebCore::quoteAndEscapeNonPrintables):
3391         (WebCore::write):
3392         * rendering/RenderTreeAsText.h:
3393         * rendering/SVGInlineTextBox.h:
3394         * rendering/SVGRenderTreeAsText.cpp:
3395         (WebCore::operator<<):
3396         (WebCore::containsInlineTextBox):
3397         (WebCore::writeSVGInlineText):
3398         (WebCore::write):
3399         * rendering/SVGRenderTreeAsText.h:
3400         * rendering/SVGRootInlineBox.cpp:
3401         (WebCore::topLeftPositionOfCharacterRange):
3402         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3403         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
3404         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3405         * rendering/SVGRootInlineBox.h:
3407 2007-05-20  Nikolas Zimmermann  <zimmermann@kde.org>
3409         Reviewed by Oliver.
3411         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12698 (SVG text needs a special per-character layout mode.)
3413         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6420 (<text> does not respect x,y offset lists)
3414         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6425 (<textPath> element not implemented)
3415         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6481 (text-anchor (vertical) does not work in SVG text elements)
3416         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11941 (REGRESSION: Missing text stroke in svg/W3C-SVG-1.1/text-deco-01-b.svg)
3417         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12376 (glyph rotation in text/tspan not implemented)
3418         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12377 (multiple dx and dy attributes not respected in text and tspan elements)
3419         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12574 (<text> does not handle baseline-shift correctly)
3421         Introduce new experimental SVG text engine - after 5+ months of hacking.
3423         Add textPath support, absolute positioned SVG characters, vertical text,
3424         text rotation, baseline-shift, text chunks spanning <tspan>'s etc.
3426         Check my Flickr page for screenshots: http://www.flickr.com/photos/43532360@N00 (a bit outdated)
3428         Fixes/Improvments:
3429         - animate-elem-40-t.svg (x/y lists respected on <text> now)
3430         - interact-cursor-01-f.svg (text-anchor correctly handled in <text><a> situations)
3431         - struct-frag-05-t.svg (ditto)
3432         - text-align-02-b.svg (baseline-shift recognized)
3433         - text-align-04-b.svg (textPath displayed)
3434         - text-align-05-b.svg (text-anchor & vertical text handled correctly)
3435         - text-align-06-b.svg (baseline-shift & vertical text handled correctly)
3436         - text-deco-01-b.svg (longstanding regression fixed for text-decoration)
3437         - text-path-01-b.svg (all textPaths are displayed correctly)
3438         - text-text-04-t.svg (all x/y/dx/dy list situations work fine now)
3439         - text-text-05-t.svg (ditto)
3440         - text-text-06-t.svg (ditto)
3441         - text-text-07-t.svg (rotation works fine now)
3442         - text-tspan-01-b.svg (per character placment works great in all situations)
3444         Most files using text-anchor show 0.5-1% differences because the shift offset calculation is more correct now.
3446         Regressions:    
3447         - Gradient on fill is broken (on stroke works) -> this is a regression (easy to fix soon)
3448           js-late-gradient-and-object-creation.svg & js-late-gradient-creation.svg & pservers-grad-08-b.svg & pservers-grad-11-b.svg are broken
3450         Complete list of missing things:
3451         - 'textLength' / 'lengthAdjust' properties on <text>/<tspan> not yet handled.
3452         - 'dominant-baseline / alignment-baseline missing (neither FF/Opera/Batik support this)
3453         - 'kerning' property ignored
3454         - 'glyph-orientation-vertical' / 'glyph-orientation-horizontal' not yet handled.
3455         - Hebrew text selection broken (discontinous selection doesn't work)
3456         - <textPath> doesn't yet participate in text selection
3457         - <textPath> 'text-anchor' handling is flawed
3458         - <textPath> doesn't yet handle 'method' / 'spacing' properties
3459         - 'letter-spacing' / 'word-spacing' is still handled in the "legacy" mode. That means it only works
3460           for simple cases -> won't work for textPath's for instance
3461         - SVG fonts (<altGlyph>, <font> ..... tons more)
3463         * DerivedSources.make: Add DOM/JSSVGTextPathElement.h to build
3464         * WebCore.xcodeproj/project.pbxproj: Add textPath related files to build
3465         * css/svg.css: Correct white-space default setting for textPath element
3466         * ksvg2/svg/SVGFEFloodElement.cpp: Missing include (experimental build was broken)
3467         * ksvg2/svg/SVGTSpanElement.cpp: Recognize textPath children.
3468         (WebCore::SVGTSpanElement::childShouldCreateRenderer):
3469         * ksvg2/svg/SVGTextElement.cpp: Ditto.
3470         (WebCore::SVGTextElement::childShouldCreateRenderer):
3471         * ksvg2/svg/SVGTextPathElement.cpp: Added.
3472         (WebCore::SVGTextPathElement::SVGTextPathElement):
3473         (WebCore::SVGTextPathElement::~SVGTextPathElement):
3474         (WebCore::SVGTextPathElement::parseMappedAttribute):
3475         (WebCore::SVGTextPathElement::createRenderer):
3476         (WebCore::SVGTextPathElement::childShouldCreateRenderer):
3477         (WebCore::SVGTextPathElement::insertedIntoDocument):
3478         (WebCore::SVGTextPathElement::buildPendingResource):
3479         (WebCore::SVGTextPathElement::attach):
3480         * ksvg2/svg/SVGTextPathElement.h: Added.
3481         (WebCore::):
3482         (WebCore::SVGTextPathElement::rendererIsNeeded):
3483         (WebCore::SVGTextPathElement::contextElement):
3484         * ksvg2/svg/SVGTextPathElement.idl: Added.
3485         * ksvg2/svg/svgtags.in: Add textPath tag.
3486         * rendering/InlineTextBox.cpp: Make two methods non static to share with SVG.
3487         (WebCore::correctedTextColor):
3488         (WebCore::updateGraphicsContext):
3489         * rendering/InlineTextBox.h:
3490         * rendering/RenderSVGInlineText.cpp: Special positionForCoordinates() implementation. Stub caretRect() for SVG.
3491         (WebCore::RenderSVGInlineText::selectionRect):
3492         (WebCore::RenderSVGInlineText::caretRect):
3493         (WebCore::RenderSVGInlineText::positionForCoordinates):
3494         * rendering/RenderSVGInlineText.h:
3495         * rendering/RenderSVGTextPath.cpp: Added.
3496         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3497         (WebCore::RenderSVGTextPath::layoutPath):
3498         (WebCore::RenderSVGTextPath::setLayoutPath):
3499         (WebCore::RenderSVGTextPath::startOffset):
3500         (WebCore::RenderSVGTextPath::setStartOffset):
3501         (WebCore::RenderSVGTextPath::exactAlignment):
3502         (WebCore::RenderSVGTextPath::setExactAlignment):
3503         (WebCore::RenderSVGTextPath::stretchMethod):
3504         (WebCore::RenderSVGTextPath::setStretchMethod):
3505         (WebCore::RenderSVGTextPath::absoluteRects):
3506         * rendering/RenderSVGTextPath.h: Added.
3507         (WebCore::RenderSVGTextPath::renderName):
3508         * rendering/RenderText.cpp: Fix indention and use StringImpl::empty() instead of creating an empty string manually.
3509         (WebCore::RenderText::setTextInternal):
3510         * rendering/RootInlineBox.h: Add virtual no-op computePerCharacterLayoutInformation().
3511         (WebCore::RootInlineBox::computePerCharacterLayoutInformation):
3512         * rendering/SVGCharacterLayoutInfo.cpp: Added.
3513         (WebCore::calculateBaselineShift):
3514         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
3515         (WebCore::SVGCharacterLayoutInfo::xValueAvailable):
3516         (WebCore::SVGCharacterLayoutInfo::yValueAvailable):
3517         (WebCore::SVGCharacterLayoutInfo::dxValueAvailable):
3518         (WebCore::SVGCharacterLayoutInfo::dyValueAvailable):
3519         (WebCore::SVGCharacterLayoutInfo::angleValueAvailable):
3520         (WebCore::SVGCharacterLayoutInfo::baselineShiftValueAvailable):
3521         (WebCore::SVGCharacterLayoutInfo::xValueNext):
3522         (WebCore::SVGCharacterLayoutInfo::yValueNext):
3523         (WebCore::SVGCharacterLayoutInfo::dxValueNext):
3524         (WebCore::SVGCharacterLayoutInfo::dyValueNext):
3525         (WebCore::SVGCharacterLayoutInfo::angleValueNext):
3526         (WebCore::SVGCharacterLayoutInfo::baselineShiftValueNext):
3527         (WebCore::SVGCharacterLayoutInfo::processedSingleCharacter):
3528         (WebCore::SVGCharacterLayoutInfo::processedChunk):
3529         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
3530         (WebCore::SVGCharacterLayoutInfo::inPathLayout):
3531         (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
3532         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
3533         (WebCore::SVGCharacterLayoutInfo::addStackContent):
3534         (WebCore::SVGCharacterLayoutInfo::xStackWalk):
3535         (WebCore::SVGCharacterLayoutInfo::yStackWalk):
3536         (WebCore::SVGCharacterLayoutInfo::dxStackWalk):
3537         (WebCore::SVGCharacterLayoutInfo::dyStackWalk):
3538         (WebCore::SVGCharacterLayoutInfo::angleStackWalk):
3539         (WebCore::SVGCharacterLayoutInfo::baselineShiftStackWalk):
3540         * rendering/SVGCharacterLayoutInfo.h: Added.
3541         (WebCore::PositionedVector::Type):
3542         (WebCore::PositionedVector::position):
3543         (WebCore::PositionedVector::advance):
3544         (WebCore::PositionedVector::valueAtCurrentPosition):
3545         (WebCore::SVGCharacterLayoutInfo::):
3546         (WebCore::SVGInlineBoxCharacterRange::SVGInlineBoxCharacterRange):
3547         (WebCore::SVGInlineBoxCharacterRange::isOpen):
3548         (WebCore::SVGInlineBoxCharacterRange::isClosed):
3549         (WebCore::SVGTextChunk::SVGTextChunk):
3550         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
3551         * rendering/SVGInlineFlowBox.cpp: Make all methods no-ops when using the new text engine.
3552         (WebCore::SVGInlineFlowBox::paint):
3553         (WebCore::SVGInlineFlowBox::placeBoxesHorizontally):
3554         (WebCore::SVGInlineFlowBox::verticallyAlignBoxes):
3555         * rendering/SVGInlineFlowBox.h:
3556         * rendering/SVGInlineTextBox.cpp: Add new text selection / character hit detection related code.
3557         (WebCore::SVGInlineTextBox::SVGInlineTextBox):
3558         (WebCore::SVGInlineTextBox::selectionTop):
3559         (WebCore::SVGInlineTextBox::svgRootInlineBox):
3560         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
3561         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3562         (WebCore::SVGInlineTextBox::offsetForPosition):
3563         (WebCore::SVGInlineTextBox::positionForOffset):
3564         (WebCore::SVGInlineTextBox::nodeAtPoint):
3565         (WebCore::SVGInlineTextBox::selectionRect):
3566         * rendering/SVGInlineTextBox.h:
3567         * rendering/SVGRootInlineBox.cpp: The heart of the new text engine lives here.
3568         (WebCore::prepareTextRendering):
3569         (WebCore::isVerticalWritingMode):
3570         (WebCore::SVGRootInlineBox::paint):
3571         (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
3572         (WebCore::SVGRootInlineBox::verticallyAlignBoxes):
3573         (WebCore::SVGRootInlineBox::cummulatedWidthOfSelectionRange):
3574         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3575         (WebCore::cummulatedWidthOfTextChunk):
3576         (WebCore::cummulatedHeightOfTextChunk):
3577         (WebCore::applyTextAnchorToTextChunk):
3578         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3579         (WebCore::totalAdvanceOfInlineTextBox):
3580         (WebCore::totalAdvanceOfInlineBox):
3581         (WebCore::SVGRootInlineBox::buildLayoutInformation):
3582         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
3583         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
3584         (WebCore::SVGRootInlineBox::buildTextChunks):
3585         (WebCore::SVGRootInlineBox::svgTextChunks):
3586         (WebCore::SVGRootInlineBox::layoutTextChunks):
3587         (WebCore::SVGRootInlineBox::paintSelectionForTextBox):
3588         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3589         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
3590         * rendering/SVGRootInlineBox.h:
3591         * rendering/bidi.cpp: Call the new computePerCharacterLayoutInformation() method.
3592         (WebCore::RenderBlock::layoutInlineChildren):
3594 2007-05-10  Eric Seidel  <eric@webkit.org>
3596         Reviewed by olliej.
3598         http://bugs.webkit.org/show_bug.cgi?id=11931
3599         PathCG fails to hit on unclosed sub-paths
3601         Test: svg/custom/hit-test-unclosed-subpaths.svg
3603         * platform/graphics/cg/PathCG.cpp:
3604         (WebCore::copyClosingSubpathsApplierFunction):
3605         (WebCore::copyCGPathClosingSubpaths):
3606         (WebCore::Path::contains): use new copy & close function
3608 === End merge of feature-branch 2007-10-12 ===
3610 2007-10-11  Jon Honeycutt  <jhoneycutt@apple.com>
3612         Reviewed by Anders.
3614         Handle a race condition that could arise if a plugin was loaded while it
3615         was scheduled to be freed: check whether the timer that schedules
3616         library frees is active in PluginPackageWin::load().
3618         * plugins/win/PluginPackageWin.cpp:
3619         (WebCore::PluginPackageWin::freeLibrarySoon): Added assertions
3620         (WebCore::PluginPackageWin::freeLibraryTimerFired): Added assertion
3621         (WebCore::PluginPackageWin::load): If we are scheduled to free this
3622         library, cancel the timer, and don't call LoadLibrary
3624 2007-10-11  Justin Garcia  <justin.garcia@apple.com>
3626         Reviewed by Harrison.
3628         <rdar://problem/5483567> REGRESSION (Tiger only): Pasting words copied from TextEdit in Mail adds extra newline
3629         
3630         * editing/ReplaceSelectionCommand.cpp:
3631         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Added.
3632         We would like to insert the fragment as-is if possible, but AppKit on Tiger
3633         creates fragments from RTF data that have carriage returns and spaces at the
3634         beginning and end, and those need to be removed since they'll interfere with 
3635         paragraph merging.
3636         (WebCore::ReplaceSelectionCommand::doApply):
3637         * editing/ReplaceSelectionCommand.h:
3639 2007-10-10  Justin Garcia  <justin.garcia@apple.com>
3641         Reviewed by Maciej.
3642         
3643         <rdar://problem/5521237> Pasting a word copied from TextEdit after a regular, breaking space, adds a leading newline
3644         
3645         * editing/CompositeEditCommand.cpp:
3646         (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
3647         Fixed a typo.
3649 2007-10-10  Jon Honeycutt  <jhoneycutt@apple.com>
3651         Reviewed by Darin.
3653         <rdar://5530519> REGRESSION (303-310A18): Crash when closing tab with
3654         pdf file (Reader 7 only)
3656         Reader 7 subclasses its parent window, so posting a WM_DESTROY to this
3657         window puts us in plugin code. When the plugin forwards the message
3658         back to the original window proc, and we free the plugin library from
3659         there, we will jump back to code we just freed when we return, so delay 
3660         calling FreeLibrary at least until the next message loop
3662         * plugins/win/PluginPackageWin.cpp:
3663         (WebCore::PluginPackageWin::freeLibrarySoon): Start a timer to free the
3664         plugin library
3665         (WebCore::PluginPackageWin::freeLibraryTimerFired): Free the library
3666         (WebCore::PluginPackageWin::PluginPackageWin): Initialize the timer that
3667         will free this library
3668         (WebCore::PluginPackageWin::unloadWithoutShutdown): Call
3669         freeLibrarySoon()
3670         * plugins/win/PluginPackageWin.h: Added m_freeLibraryTimer
3672 2007-10-11  Ada Chan  <adachan@apple.com>
3674         <rdar://problem/5534421> 
3675         Switched to using wkGetDefaultHTTPCookieStorage() and removed some cookie-related
3676         methods we no longer need in ResourceHandle.
3677         
3678         <rdar://problem/5244261> "Never" cookie policy was ignored on windows
3679         Need to set the cookie accept policy on each CFURLRequest.
3680         
3681         Reviewed by Oliver.
3683         * platform/network/ResourceHandle.h:
3684         * platform/network/cf/ResourceHandleCFNet.cpp:
3685         (WebCore::makeFinalRequest):
3686         * platform/network/cf/ResourceRequestCFNet.cpp:
3687         (WebCore::ResourceRequest::doUpdatePlatformRequest):
3688         * platform/network/win/CookieJarWin.cpp:
3689         (WebCore::setCookies):
3690         (WebCore::cookies):
3691         (WebCore::cookiesEnabled):
3693 2007-10-11  Mark Rowe  <mrowe@apple.com>
3695         Reviewed by Tim Hatcher.
3697         Fix for <rdar://problem/5488678>.  Disable debugging symbols in production builds for 10.4
3698         PowerPC to prevent a huge STABS section from being generated.
3700         * Configurations/Base.xcconfig:
3702 2007-10-11  Lars Knoll  <lars@trolltech.com>
3704         Reviewed by Erik Seidel and Simon.
3706         Ensure that setting innerHTML on an element doesn't do
3707         weird things with the document.
3708         Fixes most issues with http://bugs.webkit.org/show_bug.cgi?id=15456
3710         Test: fast/innerHTML/innerHTML-changing-document-properties.xhtml
3712         * dom/XMLTokenizer.cpp:
3713         (WebCore::XMLTokenizer::write):
3714         (WebCore::XMLTokenizer::startDocument):
3715         (WebCore::XMLTokenizer::end):
3716         (WebCore::):
3718 2007-10-10  George Staikos  <staikos@kde.org>
3720         Reviewed by Adam Roben.
3722         Fix Qt build on Win32 with VS2005.
3724         * loader/FTPDirectoryDocument.cpp:
3725         (WebCore::processFileDateString):
3726         * loader/FTPDirectoryParser.cpp:
3727         (WebCore::parseOneFTPLine):
3729 2007-10-10  Alice Liu  <alice.liu@apple.com>
3731         Reviewed by Geoff Garen.
3733         Fixed <rdar://5464402> Crash when running fast/frames/onload-remove-iframe-crash.html in DRT
3734         createFrame() now returns a RefPtr instead of a raw Frame pointer. 
3735         Making this change improves the way we handle frames on Windows webkit. 
3737         * loader/FrameLoader.cpp:
3738         (WebCore::FrameLoader::loadSubframe):
3739         * loader/FrameLoaderClient.h:
3740         * platform/graphics/svg/SVGImageEmptyClients.h:
3741         (WebCore::SVGEmptyFrameLoaderClient::createFrame):
3743 2007-10-10  Simon Hausmann  <hausmann@kde.org>
3745         Reviewed by Lars.
3747         Fix compilation using gcc 4.3. Header files have been reorganized and as a result some extra
3748         includes are needed for INT_MAX, std::auto_ptr and the like.
3750         WARNING: NO TEST CASES ADDED OR CHANGED
3752         * bridge/AXObjectCache.h:
3753         * ksvg2/misc/SVGDocumentExtensions.h:
3754         * platform/Base64.cpp:
3755         * platform/graphics/svg/SVGPaintServerPattern.h:
3756         * platform/graphics/svg/SVGResourceMasker.h:
3758 2007-10-08  Sam Weinig  <sam@webkit.org>
3760         Reviewed by Steve Falkenburg.
3762         Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
3764         Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
3766         * dom/XMLTokenizer.cpp:
3767         (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
3768         (WebCore::XMLTokenizer::columnNumber): ditto.
3770 2007-10-08  Adam Roben  <aroben@apple.com>
3772         Fix Bug 15305: Crash when dragging an image when "load images automatically" preference is off
3774         http://bugs.webkit.org/show_bug.cgi?id=15305
3775         <rdar://problem/5524774>
3777         Reviewed by Eric Seidel.
3779         No test possible: to reproduce this you have to change a WebKit
3780         preference and reload the page. See
3781         http://bugs.webkit.org/show_bug.cgi?id=15414
3783         * platform/win/ClipboardWin.cpp:
3784         (WebCore::createGlobalImageFileDescriptor): ASSERT that we have an
3785         image and that it has a SharedBuffer.
3786         (WebCore::writeImageToDataObject): The fix: null-check imageBuffer.
3788 2007-10-05  Geoffrey Garen  <ggaren@apple.com>
3790         Reviewed by Sam Weinig.
3791         
3792         New fix for <rdar://problem/5522487> REGRESSION: With JavaScript 
3793         disabled, any page load causes a crash in PropertyMap::put
3794         
3795         Explicitly remove the "document" property from the window. The old 
3796         solution would leave a stale "document" property around after JavaScript
3797         was re-enabled.
3799         The architecture for disabling JavaScript could use some consolidation. 
3800         It seems wrong that a script proxy even exists when JavaScript is 
3801         disabled. It also seems wrong that so many individual call sites are 
3802         responsible for checking whether JavaScript is enabled. I've filed a 
3803         bug about this: http://bugs.webkit.org/show_bug.cgi?id=15385.
3805         * bindings/js/kjs_proxy.cpp:
3806         (WebCore::KJSProxy::clearDocumentWrapper):
3807         * bindings/js/kjs_proxy.h:
3808         * page/Frame.cpp:
3809         (WebCore::Frame::setDocument):
3811 2007-10-05  Jon Honeycutt  <jhoneycutt@apple.com>
3813         Reviewed by Anders.
3815         <rdar://5520913> Ticketmaster.com doesn't display correctly (Flash
3816         related?)
3818         The plugin is requesting files that don't exist on the server, and
3819         we are passing the 404 error page to the plugin. This change cancels the
3820         stream if the response code indicates a failure.
3822         This is a port of the safari / mac code.
3824         * loader/win/NetscapePlugInStreamLoaderWin.cpp:
3825         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): If the
3826         response code indicates a failure, cancel the stream
3828 2007-10-05  Geoffrey Garen  <ggaren@apple.com>
3830         Reviewed by Sam Weinig.
3831         
3832         Fixed <rdar://problem/5522487> REGRESSION: With JavaScript disabled, 
3833         any page load causes a crash in PropertyMap::put
3834         
3835         The problem was that we were using JavaScript when JavaScript was
3836         disabled. The architecture for disabling JavaScript could use some
3837         consolidation, but this is the simplest, safest change for now.
3838         
3839         Currently passing layout tests still pass.
3841         * bindings/js/kjs_proxy.cpp:
3842         (WebCore::KJSProxy::updateDocumentWrapper):
3844 2007-10-04  Beth Dakin  <bdakin@apple.com>
3846         Reviewed by John Sullivan.
3848         Fix for <rdar://problem/5441823> REGRESSION (r25142, Tiger only): 
3849         Vertical scroll bar not redrawn properly when going back in history 
3850         (15033)
3852         This fix if-defs r25142 to be Leopard-only since it causes 
3853         correctness issues on Tiger and does not seem to have any 
3854         performance impact on Tiger either.
3856         * loader/FrameLoader.cpp:
3857         (WebCore::FrameLoader::transitionToCommitted):
3859 2007-10-05  Ada Chan  <adachan@apple.com>
3861         <rdar://problem/5436617> Favicons sometimes don't show up even when they are
3862         in the database
3863         - A client can try to retain an icon for a page before the database is actually
3864         opened.  Since isOpened() is not a requirement to retain an icon, remove the check
3865         for that.  Instead, we'll check to make sure whether this database is enabled
3866         before proceeding.
3868         Reviewed by Brady.
3870         * loader/icon/IconDatabase.cpp:
3871         (WebCore::IconDatabase::retainIconForPageURL):
3872         (WebCore::IconDatabase::releaseIconForPageURL): only check isOpen() before we
3873         schedule for a sync.
3875 2007-10-05  Lars Knoll  <lars@trolltech.com>
3877         Reviewed by olliej.
3879         fix a hang in editing/selection/extend-by-word-002.html
3881         * platform/qt/TextBreakIteratorQt.cpp:
3882         (WebCore::CharBreakIteratorQt::next):
3883         (WebCore::characterBreakIterator):
3885 2007-10-04  Mark Rowe  <mrowe@apple.com>
3887         Reviewed by Oliver.
3889         Switch to default level of debugging symbols to resolve <rdar://problem/5488678>.
3890         The "full" level appears to offer no observable benefits even though the documentation
3891         suggests it be used for dead code stripping.  This should also decrease link times.
3893         * Configurations/Base.xcconfig:
3895 2007-10-04  Adele Peterson  <adele@apple.com>
3897         Reviewed by Darin.
3899         WebCore part of fix for <rdar://problem/5369017> REGRESSION: Can't tab to webview that doesn't have editable content
3901         * page/FocusController.h: Added FocusDirection argument.
3902         * page/FocusController.cpp: (WebCore::FocusController::setInitialFocus):
3903           Use FocusDirection argument instead of key modifiers to send direction to advanceFocus.
3904         * WebCore.exp: Updated symbol.
3906 2007-10-04  Kevin Decker  <kdecker@apple.com>
3908         Reviewed by John.
3909         
3910         <rdar://problems/5516309>
3911         
3912         * page/FrameView.cpp:
3913         (WebCore::FrameView::updateControlTints): Avoid the expense of updating tints on controls for the
3914         empty-window case since this can take a significant amount of time even on windows that have no
3915         content at all. Note this fix specifically optimizes the empty window/tab case; for a more broad
3916         fix John wrote up rdar://problem/5521050.
3918 2007-10-04  Darin Adler  <darin@apple.com>
3920         * page/Frame.h: Put functions into categories to indicate other classes
3921         we'd like to move them into in the future. Just organizational -- no code
3922         change.
3924 2007-10-04  Lars Knoll  <lars@trolltech.com>
3926         Reviewed by maciej.
3928         fix a crash in the FrameLoader that can happen under certain
3929         conditions in the Qt port.
3931         Test: fast/loader/iframe-crash-on-missing-image.xhtml
3933         * loader/FrameLoader.cpp:
3934         (WebCore::FrameLoader::receivedMainResourceError):
3936 2007-10-03  Alp Toker  <alp@atoker.com>
3938         Reviewed by Adam.
3940         http://bugs.webkit.org/show_bug.cgi?id=14726
3941         [gtk] API design. Mapping the WebView delegates to signals.
3943         Change the API namespace of the Gtk+ port from 'WebKitGtk' to 'WebKit'.
3945         * WebCore.pro:
3947 2007-10-03  Alp Toker  <alp@atoker.com>
3949         Reviewed by Eric.
3951         http://bugs.webkit.org/show_bug.cgi?id=14129
3952         [CAIRO] Support the canvas element
3954         Add a new canvas implementation using Cairo for rendering.
3956         * html/CanvasGradient.cpp:
3957         (WebCore::CanvasGradient::CanvasGradient):
3958         (WebCore::CanvasGradient::~CanvasGradient):
3959         (WebCore::CanvasGradient::addColorStop):
3960         (WebCore::CanvasGradient::platformShading):
3961         * html/CanvasGradient.h:
3962         * html/CanvasRenderingContext2D.cpp:
3963         (WebCore::CanvasRenderingContext2D::setFillStyle):
3964         (WebCore::CanvasRenderingContext2D::fill):
3965         (WebCore::CanvasRenderingContext2D::stroke):
3966         (WebCore::CanvasRenderingContext2D::fillRect):
3967         (WebCore::CanvasRenderingContext2D::drawImage):
3968         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
3969         * html/CanvasStyle.cpp:
3970         (WebCore::CanvasStyle::applyStrokeColor):
3971         * html/HTMLCanvasElement.cpp:
3972         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
3973         (WebCore::HTMLCanvasElement::reset):
3974         (WebCore::HTMLCanvasElement::paint):
3975         (WebCore::HTMLCanvasElement::createDrawingContext):
3976         (WebCore::HTMLCanvasElement::createPlatformImage):
3977         * html/HTMLCanvasElement.h:
3979 2007-10-03  Lars Knoll  <lars@trolltech.com>
3981         Signed off by olliej.
3983         move WebKitQt to WebKit/qt for consistency with the other ports.
3985         WARNING: NO TEST CASES ADDED OR CHANGED
3987         * WebCore.pro:
3989 2007-10-02  Sam Weinig  <sam@webkit.org>
3991         Reviewed by Oliver and Adam.
3993         Patch for <rdar://problem/5506968> Fail to DnD local file with non-ascii character in path from desktop to Safari (can open it with file menu)
3995         Use CoreFoundation to do the conversion from path to URL, as the Windows API was not
3996         correctly converting to UTF-8 and we know CFURL will.
3998         * platform/win/ClipboardUtilitiesWin.cpp:
3999         (WebCore::urlFromPath):
4000         (WebCore::getURL):
4002 2007-10-02  Tristan O'Tierney  <tristan@apple.com>
4004         Reviewed by Darin Adler.
4006         <rdar://problem/5511842> REGRESSION: Webkit stops responding while loading Apple Store Canada page (15304)
4007         
4008         Included the NSSynchronousURLConnection_PrivateMode mode, in addition to the default run loop modes
4009         as an acceptable mode when using performSelectorOnMainThread with our syncronous url callbacks.
4011         * platform/network/mac/ResourceHandleMac.mm:
4012         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
4013         Added NSSynchronousURLConnection_PrivateMode to the list of accepted modes.
4015 2007-10-02  Darin Adler  <darin@apple.com>
4017         Reviewed by Adam.
4019         - add support for GDI objects to OwnPtr; I plan to use this
4020           to fix some GDI handle leaks
4022         * css/CSSGrammar.y: Change parser to avoid macro that conflicts
4023         with macro defined in Windows system headers: FLOAT. This is needed
4024         because OwnPtr.h will now include <windows.h>.
4025         * css/CSSParser.cpp: (WebCore::CSSParser::lex): Ditto.
4026         * css/tokenizer.flex: Ditto.
4028         * platform/win/CursorWin.cpp: (WebCore::Cursor::Cursor):
4029         Use OwnPtr for a few HBITMAP objects as a test case.
4031         * platform/win/COMPtr.h: (COMPtr::COMPtr): Fix so that we can use
4032         Query with other COMPtr. Before this would not compile if it was
4033         ever instantiated.
4035 2007-10-02  Steve Falkenburg  <sfalken@apple.com>
4037         Reviewed by Adam, Ada.
4039         Fix leak of GDI handle when we call MLANG.
4041         * platform/win/FontCacheWin.cpp:
4042         (WebCore::FontCache::getFontDataForCharacters):
4044 2007-10-02  Lars Knoll  <lars@trolltech.com>
4046         Reviewed by Olliej.
4048         The cookies() method should only return the value of the
4049         cookie, not additional info such as the expiration date.
4051         * platform/qt/CookieJarQt.cpp:
4052         (WebCore::cookies):
4054 2007-10-01  Lars Knoll  <lars@trolltech.com>
4056         Reviewed by Eric.
4058         Fix a wrong extension mapping in the MIMETypeRegistry and identify about: url's as frames in the FrameLoaderClient.
4060         * platform/qt/MIMETypeRegistryQt.cpp:
4061         (WebCore::):
4063 2007-10-01  Justin Garcia  <justin.garcia@apple.com>
4065         Reviewed by Harrison.
4067         <rdar://problem/5516183> REGRESSION: Creating a ToDo on an incoming message fails
4068         
4069         Rolling out r25721.
4071         * editing/ReplaceSelectionCommand.cpp:
4072         (WebCore::ReplaceSelectionCommand::doApply):
4073         * editing/ReplaceSelectionCommand.h:
4075 2007-10-01  Beth Dakin  <bdakin@apple.com>
4077         Reviewed by Adam.
4079         Fix for <rdar://problem/5515426> NetNewsWire 3 crashes at launch in 
4080         WebCore::FrameView::layout (other repro scenarios too)
4082         The new call to updateWidget() that we added to FrameView::layout() 
4083         can destroy the RenderPartObject. And so we were crashing on the 
4084         subsequent call to updateWidgetPosition(). This patch fixes that by 
4085         checking to make sure the RenderPartObject is still in the HashSet 
4086         after updateWidget(). Because m_widgetUpdateSet can be modified 
4087         during the call to updateWidget(), we need it to be intact while we 
4088         are iterating through the copy, so we cannot use the HashSet::swap 
4089         call we were using before. This patch instead uses a Vector to 
4090         iterate through the HashSet data and calls clear() on the HashSet 
4091         at the end.
4093         * page/FrameView.cpp:
4094         (WebCore::FrameView::layout):
4096 2007-10-01  Eli Fidler  <eli@staikos.net>
4098         Reviewed by George Staikos.
4100         Switch bogus assert to a conditional and return.  This case happens
4101         when a widget is hidden.
4103         * platform/qt/WidgetQt.cpp:
4104         (WebCore::Widget::invalidateRect):
4106 2007-09-30  Darin Adler  <darin@apple.com>
4108         Reviewed by Maciej.
4110         - tone down the assertion I asked Harrison to include in his fix for
4111           <rdar://problem/5511128>; it's OK to re-ref and deref the document
4112           as long as you do so after the children are done being destroyed
4114         No effect on release builds. Assertion change only.
4116         Besides the changes listed below, renamed m_hasDeleted flag to
4117         m_deletionHasBegun.
4119         * dom/ContainerNode.cpp: (WebCore::ContainerNode::removeAllChildren):
4120         Added code to set the m_deletionHasBegun flag and some assertions
4121         that test its state.
4123         * dom/Document.h: Removed m_hasDeleted -- we now use m_deletionHasBegun
4124         in the base class TreeShared.
4125         * dom/Document.cpp:
4126         (WebCore::Document::Document): Removed initialization of m_hasDeleted.
4127         (WebCore::Document::removedLastRef): Added code to clear
4128         m_inRemovedLastRefFunction if we end up deciding not to delete this.
4130         * platform/Shared.h:
4131         (WebCore::TreeShared::TreeShared): Added m_deletionHasBegun in addition to
4132         m_inRemovedLastRefFunction (formerly named m_hasRemovedLastRef).
4133         (WebCore::TreeShared::~TreeShared): Assert that m_deletionHasBegun is true.
4134         (WebCore::TreeShared::ref): Assert neither flag is true.
4135         (WebCore::TreeShared::deref): Ditto.
4136         (WebCore::TreeShared::hasOneRef): Ditto.
4137         (WebCore::TreeShared::removedLastRef): Made private. Added code to
4138         set m_hasDeleted to true. Also removed cast; since this class template
4139         has a virtual destructor, we don't need to cast before calling delete.
4141 2007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4143         Reviewed by Mark.
4145         -Fix http://bugs.webkit.org/show_bug.cgi?id=13226.
4146         Remove Bakefiles from svn.
4148         * Projects/gdk/webcore-gdk.bkl: Removed.
4149         * Projects/wx/webcore-wx.bkl: Removed.
4150         * WebCoreSources.bkl: Removed.
4151         * webcore-base.bkl: Removed.
4153 2007-09-28  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
4155         Reviewed by Mark.
4157         -Fix http://bugs.webkit.org/show_bug.cgi?id=15254.
4159         * platform/gtk/RenderThemeGtk.cpp:
4160         (WebCore::RenderThemeGtk::determineState):
4161             - Apply state if control is readonly
4162             - Added state GTK_STATE_SELECTED of object is checked
4163             - Apply GTK_STATE_ACTIVE if RenderObject isFocused()
4164         (WebCore::RenderThemeGtk::paintTextField):
4165         (WebCore::RenderThemeGtk::gtkEntry):
4166             - Implemented theme-aware text field based on gtk/gtkentry.c implementation
4168 2007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4170         Reviewed by Eric.
4172         Build fix for Mac Gtk+ and Qt builds. In revision 25798 changing
4173         XSLTProcessor.cpp was forgotten.
4175         * xml/XSLTProcessor.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4177 2007-09-29  Adam Roben  <aroben@apple.com>
4179         Fix <rdar://4965715> Horizontal scrollwheel scrolling moves in opposite direction on Vista
4181         Reviewed by Sam.
4183         No regression test possible.
4185         * platform/win/WheelEventWin.cpp:
4186         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use a negative
4187         delta when scrolling right to match EventHandler's expectations (which
4188         are based on AppKit).
4190 2007-09-28  Kevin Decker  <kdecker@apple.com>
4192         Reviewed by Mark Rowe
4194         Build fix for Mac Gtk+ and Qt builds.
4195         
4196         * xml/XSLStyleSheet.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4197         * xml/XSLTExtensions.cpp: Ditto.
4199 2007-09-28  David Harrison  <harrison@apple.com>
4201         Reviewed by Darin Adler.
4203         <rdar://problem/5511128> Crash closing or reloading this SVG
4205         * dom/ContainerNode.cpp:
4206         (WebCore::dispatchChildInsertionEvents):
4207         (WebCore::dispatchChildRemovalEvents):
4208         Use DocPtr instead of RefPtr, since these events are dispatched
4209         when the Document is being being torn down by removedLastRef().
4211         * dom/DocPtr.h:
4212         (WebCore::DocPtr::DocPtr):
4213         Fix longstanding typo in template so that the DocPtr(DocPtr) constructor can be used.
4215         * dom/Document.cpp:
4216         (WebCore::Document::Document):
4217         (WebCore::Document::removedLastRef):
4218         * dom/Document.h:
4219         (WebCore::Document::selfOnlyRef):
4220         (WebCore::Document::selfOnlyDeref):
4221         * platform/Shared.h:
4222         (WebCore::Shared::Shared):
4223         (WebCore::Shared::ref):
4224         (WebCore::Shared::deref):
4225         (WebCore::Shared::hasOneRef):
4226         (WebCore::TreeShared::TreeShared):
4227         (WebCore::TreeShared::ref):
4228         (WebCore::TreeShared::deref):
4229         (WebCore::TreeShared::hasOneRef):
4230         (WebCore::TreeShared::refCount):
4231         Add debug-only checks for a document being ref-counted while being deleted.
4233 2007-09-27  Kevin McCullough  <kmccullough@apple.com>
4235         Reviewed by Darin.
4237         - <rdar://5261371> Nothing downloaded when exporting bookmarks from iGoogle web history
4239         Function for use by WebKit. Currently used only on Windows.
4241         * platform/network/ResourceResponse.cpp:
4242         (WebCore::ResourceResponse::isAttachment):
4243         * platform/network/ResourceResponse.h:
4245 2007-09-27  Mitz Pettel  <mitz@webkit.org>
4247         Reviewed by Dave Hyatt.
4249         - fix http://bugs.webkit.org/show_bug.cgi?id=15262
4250           REGRESSION: Margin-top:18px is pushing down the multiple select list box outside the div.
4252         Reflected in existing tests.
4254         * css/html4.css: Changed listboxes to use border-box sizing, to match Firefox,
4255         WinIE and apparently also Safari 2.
4257 2007-09-27  Kevin Decker  <kdecker@apple.com>
4259         <rdar://problem/5493093>
4260     
4261         Rubber stamped by John Sullivan.
4262         
4263         * WebCore.order: Added.
4264         * WebCore.xcodeproj/project.pbxproj:  We're changing from using an order file built by another team to using one
4265          we actually check into our project repository. Linker settings for Symbol Ordering Flags have been updated
4266          accordingly.
4267          
4268 2007-09-27  Antti Koivisto  <antti@apple.com>
4270         Reviewed by Geoff.
4271         
4272         Fix for <rdar://problem/5499125>
4273         REGRESSION (r21367): After launching Kidzui beta, a webview frame fails to appear in its main window
4274         
4275         If window object properties were modified when it had initial empty document (synchronously after 
4276         window.open() for example) those modifications were lost when the real document was switched in.
4277         
4278         Match Firefox behavior where window properties are not cleared if the inital document and the loaded one
4279         have matching security domains.
4281         Tests: fast/dom/Window/window-early-properties.html
4282                http/tests/security/window-properties-clear-domain.html
4283                http/tests/security/window-properties-clear-port.html
4284                http/tests/security/window-properties-pass.html
4286         * WebCore.exp:
4287         * loader/FrameLoader.cpp:
4288         (WebCore::FrameLoader::FrameLoader):
4289         (WebCore::FrameLoader::init):
4290         (WebCore::FrameLoader::clear):
4291         (WebCore::FrameLoader::isSecureTransition):
4292         (WebCore::FrameLoader::begin):
4293         * loader/FrameLoader.h:
4294         If we are transitioning from initial empty document to the final one, do a domain security check
4295         between old security policy URL and new URL. If that passes don't clear script proxy and script objects.
4296         
4297         * bindings/js/kjs_proxy.cpp:
4298         (WebCore::KJSProxy::updateDocumentWrapper):
4299         * bindings/js/kjs_proxy.h:
4300         * page/Frame.cpp:
4301         (WebCore::Frame::setDocument):
4302         Since we don't always clear window properties anymore, we need to update the document property to point to
4303         the newly created one. 
4304         
4305 2007-09-27  Kevin Decker  <kdecker@apple.com>
4307         Reviewed by Darin.
4309         <rdar://problem/5493093>
4310         
4311         * WebCore.xcodeproj/project.pbxproj: Removed libxslt from statically linked frameworks.
4312         * platform/mac/SoftLinking.h: Formatting tweakes, added SOFT_LINK_LIBRARY, and if'def for 
4313         PLATFORM(DARWIN)
4314         * xml/XSLStyleSheet.cpp: Soft-linked libxslt.
4315         * xml/XSLTExtensions.cpp: Removed the call to xsltGenericError, and added a FIXME comment stating
4316         that it might be helpful to push any errors from xmlXPathNewValueTree up to the Javascript Console. 
4317         * xml/XSLTProcessor.cpp: Soft-linked libxslt.
4318         
4319 2007-09-27  Adele Peterson  <adele@apple.com>
4321         Reviewed by Brady.
4323         Fix for <rdar://problem/5453350> REGRESSION (r18541, Tiger only): Refreshing a cached https page does not reload CSS and JavaScript resources
4324         http://bugs.webkit.org/show_bug.cgi?id=15121
4326         * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest): Now sets the cache policy to ReloadIgnoringCacheData.  Without setting the cache policy,
4327         the default policy in this case was ReturnCacheDataElseLoad.  If we're in a situation where the resource is in the cache, we want to make sure to avoid loading from the cache in this case.
4329 2007-09-27  Timothy Hatcher  <timothy@apple.com>
4331         Reviewed by Darin.
4333         <rdar://problem/5199546> CrashTracer: [REGRESSION] 8216 crashes in Safari at com.apple.WebCore: WebCore::ResourceHandle::client const + 6
4335         On Tiger NSURLConnection can sometimes call the connection:willCacheResponse: delegate method on
4336         a secondary thread instead of the main thread. This was never an issue before, since the implementation 
4337         of this method was very simple and thread safe.
4339         The fix is to block during connection:willCacheResponse: and perform the work on the main thread.
4340         We need to block since this delegate method needs to return a result. If we are already on the
4341         main thread (which sometimes we are), the method does nothing different. If we are on a secondary
4342         thread, we make a mutable dictionary to hold all the arguments and later the result object.
4343         Then performSelectorOnMainThread:withObject: using the _callConnectionWillCacheResponseWithInfo:
4344         selector. This new method just pulls the arguments out for the dictionary and calls the real
4345         connection:willCacheResponse: delegate method (this time on the main thread). The result is stored
4346         in the dictionary, and when performSelectorOnMainThread:withObject: finishes the result is pulled
4347         out and returned.
4349         * platform/network/mac/ResourceHandleMac.mm:
4350         (-[WebCoreResourceHandleAsDelegate _callConnectionWillCacheResponseWithInfo:]):
4351         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
4353 2007-09-27  David Hyatt  <hyatt@apple.com>
4355         Update to reflect the minimal WebKitSystemInterface changes required
4356         to support @font-face.
4358         Reviewed by john
4360         * platform/mac/FontDataMac.mm:
4361         (WebCore::FontData::platformInit):
4362         (WebCore::FontData::platformWidthForGlyph):
4363         * platform/mac/WebCoreSystemInterface.h:
4364         * platform/mac/WebCoreSystemInterface.mm:
4366 2007-09-26  Darin Adler  <darin@apple.com>
4368         - fix Windows build
4370         * platform/win/ClipboardWin.cpp:
4371         (WebCore::writeURL): Add a check for empty URL. Remove the check for invalid URL.
4372         (WebCore::ClipboardWin::setData): Remove the check for invalid URL.
4373         * plugins/win/PluginViewWin.cpp:
4374         (WebCore::PluginViewWin::start): Check for empty URL instead of invalid URL.
4375         (WebCore::PluginViewWin::load): Same here.
4377 2007-09-26  Darin Adler  <darin@apple.com>
4379         Reviewed by John Sullivan.
4381         - fix <rdar://problem/5491054> REGRESSION (Mail, plain-text only): Nothing happens
4382           when you click on rdar://<num>&<num> links (or AOL links in Safari)
4384         Remove the non-useful concept of a "malformed"/"invalid" URL.
4386         There are URLs we can parse, and others we can't, but that's not sufficient to
4387         determine if we should try to work with the URL. It's entirely possible that
4388         a so-called "malformed" URL will work just fine if it's passed to the right
4389         software.
4391         * platform/KURL.h: Removed isMalformed() and isValid().
4393         * loader/Cache.cpp: (WebCore::Cache::requestResource): Removed unneeded check
4394         if the URL is valid. But do check for an empty URL just to guarantee we don't
4395         trip up with a null string. It's possible we can remove this empty URL check
4396         later, but it's less risky to leave the empty string behavior alone for now.
4398         * loader/FrameLoader.cpp:
4399         (WebCore::FrameLoader::urlSelected): Removed unneeded check if the URL is valid.
4400         Back on 2007-07-08, we realized that we needed to allow empty URLs. But we also
4401         need to allow other URLs here. This is the code path from the Mail case.
4402         (WebCore::FrameLoader::submitForm): Replaced URL validity check with a check
4403         for an empty URL (same reasoning as for requestResource above).
4405         * page/InspectorController.cpp: (WebCore::InspectorResource::type):
4406         * rendering/RenderObject.cpp: (WebCore::RenderObject::addPDFURLRect):
4407         Removed unneeded check for an invalid URL. In both of these cases it's definitely
4408         safe to allow event an empty URL.
4410 2007-09-26  George Staikos  <staikos@kde.org>
4412         Reviewed by John Sullivan.
4414         Only highlight the applicable portion of the text run for a search
4415         highlight.  No way to make a testcase for this presently.
4417         * rendering/InlineTextBox.cpp:
4418         (WebCore::InlineTextBox::paintTextMatchMarker):
4420 2007-09-25  David Kilzer  <ddkilzer@webkit.org>
4422         Reviewed by Adam.
4424         - Fix http://bugs.webkit.org/show_bug.cgi?id=14885
4425           LGPL'ed files contain incorrect FSF address
4427         * LICENSE-LGPL-2:
4428         * LICENSE-LGPL-2.1:
4429         * WebCorePrefix.h:
4430         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
4431         * bindings/js/JSDOMWindowCustom.cpp:
4432         * bindings/js/JSDocumentCustom.cpp:
4433         * bindings/js/JSHTMLCollectionCustom.cpp:
4434         * bindings/js/JSHTMLElementWrapperFactory.cpp:
4435         * bindings/js/JSHTMLElementWrapperFactory.h:
4436         * bindings/js/JSHTMLInputElementBase.cpp:
4437         * bindings/js/JSHTMLInputElementBase.h:
4438         * bindings/js/JSHTMLOptionElementConstructor.cpp:
4439         * bindings/js/JSHTMLOptionElementConstructor.h:
4440         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
4441         * bindings/js/JSHTMLSelectElementCustom.cpp:
4442         * bindings/js/JSNodeFilterCondition.cpp:
4443         * bindings/js/JSNodeFilterCondition.h:
4444         * bindings/js/JSNodeIteratorCustom.cpp:
4445         * bindings/js/JSSVGElementWrapperFactory.cpp:
4446         * bindings/js/JSSVGElementWrapperFactory.h:
4447         * bindings/js/JSSVGMatrixCustom.cpp:
4448         * bindings/js/JSSVGPathSegCustom.cpp:
4449         * bindings/js/JSSVGPathSegListCustom.cpp:
4450         * bindings/js/JSSVGPointListCustom.cpp:
4451         * bindings/js/JSTreeWalkerCustom.cpp:
4452         * bindings/js/JSXMLHttpRequest.cpp:
4453         * bindings/js/JSXMLHttpRequest.h:
4454         * bindings/js/kjs_binding.cpp:
4455         * bindings/js/kjs_binding.h:
4456         * bindings/js/kjs_css.cpp:
4457         * bindings/js/kjs_css.h:
4458         * bindings/js/kjs_dom.cpp:
4459         * bindings/js/kjs_dom.h:
4460         * bindings/js/kjs_events.cpp:
4461         * bindings/js/kjs_events.h:
4462         * bindings/js/kjs_html.cpp:
4463         * bindings/js/kjs_html.h:
4464         * bindings/js/kjs_navigator.cpp:
4465         * bindings/js/kjs_navigator.h:
4466         * bindings/js/kjs_proxy.cpp:
4467         * bindings/js/kjs_proxy.h:
4468         * bindings/js/kjs_window.cpp:
4469         * bindings/js/kjs_window.h:
4470         * bindings/objc/DOMImplementationFront.cpp:
4471         * bindings/objc/DOMImplementationFront.h:
4472         * bindings/scripts/CodeGenerator.pm:
4473         * bindings/scripts/CodeGeneratorJS.pm:
4474         * bindings/scripts/CodeGeneratorObjC.pm:
4475         * bindings/scripts/IDLParser.pm:
4476         * bindings/scripts/IDLStructure.pm:
4477         * bindings/scripts/generate-bindings.pl:
4478         * config.h:
4479         * css/CSSBorderImageValue.cpp:
4480         * css/CSSBorderImageValue.h:
4481         * css/CSSCharsetRule.cpp:
4482         * css/CSSCharsetRule.h:
4483         * css/CSSCharsetRule.idl:
4484         * css/CSSComputedStyleDeclaration.cpp:
4485         * css/CSSComputedStyleDeclaration.h:
4486         * css/CSSCursorImageValue.cpp:
4487         * css/CSSCursorImageValue.h:
4488         * css/CSSFontFaceRule.cpp:
4489         * css/CSSFontFaceRule.h:
4490         * css/CSSFontFaceRule.idl:
4491         * css/CSSGrammar.y:
4492         * css/CSSHelper.cpp:
4493         * css/CSSHelper.h:
4494         * css/CSSImageValue.cpp:
4495         * css/CSSImageValue.h:
4496         * css/CSSImportRule.cpp:
4497         * css/CSSImportRule.h:
4498         * css/CSSImportRule.idl:
4499         * css/CSSInheritedValue.cpp:
4500         * css/CSSInheritedValue.h:
4501         * css/CSSInitialValue.cpp:
4502         * css/CSSInitialValue.h:
4503         * css/CSSMediaRule.cpp:
4504         * css/CSSMediaRule.h:
4505         * css/CSSMediaRule.idl:
4506         * css/CSSMutableStyleDeclaration.cpp:
4507         * css/CSSMutableStyleDeclaration.h:
4508         * css/CSSNamespace.h:
4509         * css/CSSPageRule.cpp:
4510         * css/CSSPageRule.h:
4511         * css/CSSPageRule.idl:
4512         * css/CSSParser.cpp:
4513         * css/CSSParser.h:
4514         * css/CSSPrimitiveValue.cpp:
4515         * css/CSSPrimitiveValue.h:
4516         * css/CSSPrimitiveValue.idl:
4517         * css/CSSProperty.cpp:
4518         * css/CSSProperty.h:
4519         * css/CSSQuirkPrimitiveValue.h:
4520         * css/CSSRule.cpp:
4521         * css/CSSRule.h:
4522         * css/CSSRule.idl:
4523         * css/CSSRuleList.cpp:
4524         * css/CSSRuleList.h:
4525         * css/CSSSelector.cpp:
4526         * css/CSSSelector.h:
4527         * css/CSSStyleDeclaration.cpp:
4528         * css/CSSStyleDeclaration.h:
4529         * css/CSSStyleDeclaration.idl:
4530         * css/CSSStyleRule.cpp:
4531         * css/CSSStyleRule.h:
4532         * css/CSSStyleRule.idl:
4533         * css/CSSStyleSelector.cpp:
4534         * css/CSSStyleSelector.h:
4535         * css/CSSStyleSheet.cpp:
4536         * css/CSSStyleSheet.h:
4537         * css/CSSStyleSheet.idl:
4538         * css/CSSUnknownRule.h:
4539         * css/CSSUnknownRule.idl:
4540         * css/CSSValue.h:
4541         * css/CSSValue.idl:
4542         * css/CSSValueList.cpp:
4543         * css/CSSValueList.h:
4544         * css/Counter.h:
4545         * css/Counter.idl:
4546         * css/DashboardRegion.h:
4547         * css/FontFamilyValue.cpp:
4548         * css/FontFamilyValue.h:
4549         * css/FontValue.cpp:
4550         * css/FontValue.h:
4551         * css/MediaFeatureNames.cpp:
4552         * css/MediaFeatureNames.h:
4553         * css/MediaList.cpp:
4554         * css/MediaList.h:
4555         * css/Pair.h:
4556         * css/RGBColor.idl:
4557         * css/Rect.h:
4558         * css/Rect.idl:
4559         * css/ShadowValue.cpp:
4560         * css/ShadowValue.h:
4561         * css/StyleBase.cpp:
4562         * css/StyleBase.h:
4563         * css/StyleList.cpp:
4564         * css/StyleList.h:
4565         * css/StyleSheet.cpp:
4566         * css/StyleSheet.h:
4567         * css/StyleSheet.idl:
4568         * css/StyleSheetList.cpp:
4569         * css/StyleSheetList.h:
4570         * css/StyleSheetList.idl:
4571         * css/html4.css:
4572         * css/make-css-file-arrays.pl:
4573         * css/makegrammar.pl:
4574         * css/makeprop.pl:
4575         * css/maketokenizer:
4576         * css/makevalues.pl:
4577         * css/quirks.css:
4578         * dom/AtomicStringList.h:
4579         * dom/Attr.cpp:
4580         * dom/Attr.h:
4581         * dom/Attr.idl:
4582         * dom/Attribute.cpp:
4583         * dom/Attribute.h:
4584         * dom/BeforeUnloadEvent.cpp:
4585         * dom/BeforeUnloadEvent.h:
4586         * dom/CDATASection.cpp:
4587         * dom/CDATASection.h:
4588         * dom/CDATASection.idl:
4589         * dom/CSSMappedAttributeDeclaration.cpp:
4590         * dom/CSSMappedAttributeDeclaration.h:
4591         * dom/CharacterData.cpp:
4592         * dom/CharacterData.h:
4593         * dom/CharacterData.idl:
4594         * dom/ChildNodeList.cpp:
4595         * dom/ChildNodeList.h:
4596         * dom/Clipboard.h:
4597         * dom/ClipboardEvent.cpp:
4598         * dom/ClipboardEvent.h:
4599         * dom/Comment.cpp:
4600         * dom/Comment.h:
4601         * dom/Comment.idl:
4602         * dom/ContainerNode.cpp:
4603         * dom/ContainerNode.h:
4604         * dom/DOMImplementation.cpp:
4605         * dom/DOMImplementation.h:
4606         * dom/DOMImplementation.idl:
4607         * dom/DocPtr.h:
4608         * dom/Document.cpp:
4609         * dom/Document.h:
4610         * dom/Document.idl:
4611         * dom/DocumentFragment.cpp:
4612         * dom/DocumentFragment.h:
4613         * dom/DocumentFragment.idl:
4614         * dom/DocumentMarker.h:
4615         * dom/DocumentType.cpp:
4616         * dom/DocumentType.h:
4617         * dom/DocumentType.idl:
4618         * dom/EditingText.cpp:
4619         * dom/EditingText.h:
4620         * dom/Element.cpp:
4621         * dom/Element.h:
4622         * dom/Element.idl:
4623         * dom/Entity.cpp:
4624         * dom/Entity.h:
4625         * dom/Entity.idl:
4626         * dom/EntityReference.cpp:
4627         * dom/EntityReference.h:
4628         * dom/EntityReference.idl:
4629         * dom/Event.cpp:
4630         * dom/Event.h:
4631         * dom/Event.idl:
4632         * dom/EventListener.h:
4633         * dom/EventListener.idl:
4634         * dom/EventNames.cpp:
4635         * dom/EventNames.h:
4636         * dom/EventTarget.idl:
4637         * dom/EventTargetNode.cpp:
4638         * dom/EventTargetNode.h:
4639         * dom/ExceptionCode.h:
4640         * dom/KeyboardEvent.cpp:
4641         * dom/KeyboardEvent.h:
4642         * dom/KeyboardEvent.idl:
4643         * dom/MappedAttribute.cpp:
4644         * dom/MappedAttribute.h:
4645         * dom/MappedAttributeEntry.h:
4646         * dom/MouseEvent.cpp:
4647         * dom/MouseEvent.h:
4648         * dom/MouseEvent.idl:
4649         * dom/MouseRelatedEvent.cpp:
4650         * dom/MouseRelatedEvent.h:
4651         * dom/MutationEvent.cpp:
4652         * dom/MutationEvent.h:
4653         * dom/MutationEvent.idl:
4654         * dom/NameNodeList.cpp:
4655         * dom/NameNodeList.h:
4656         * dom/NamedAttrMap.cpp:
4657         * dom/NamedAttrMap.h:
4658         * dom/NamedMappedAttrMap.cpp:
4659         * dom/NamedMappedAttrMap.h:
4660         * dom/NamedNodeMap.h:
4661         * dom/NamedNodeMap.idl:
4662         * dom/Node.cpp:
4663         * dom/Node.h:
4664         * dom/Node.idl:
4665         * dom/NodeFilter.cpp:
4666         * dom/NodeFilter.h:
4667         * dom/NodeFilter.idl:
4668         * dom/NodeFilterCondition.cpp:
4669         * dom/NodeFilterCondition.h:
4670         * dom/NodeIterator.cpp:
4671         * dom/NodeIterator.h:
4672         * dom/NodeIterator.idl:
4673         * dom/NodeList.cpp:
4674         * dom/NodeList.h:
4675         * dom/NodeList.idl:
4676         * dom/Notation.cpp:
4677         * dom/Notation.h:
4678         * dom/Notation.idl:
4679         * dom/ProcessingInstruction.cpp:
4680         * dom/ProcessingInstruction.h:
4681         * dom/ProcessingInstruction.idl:
4682         * dom/QualifiedName.cpp:
4683         * dom/QualifiedName.h:
4684         * dom/Range.cpp:
4685         * dom/Range.h:
4686         * dom/Range.idl:
4687         * dom/RangeException.h:
4688         * dom/RangeException.idl:
4689         * dom/RegisteredEventListener.cpp:
4690         * dom/RegisteredEventListener.h:
4691         * dom/StyleElement.cpp:
4692         * dom/StyleElement.h:
4693         * dom/StyledElement.cpp:
4694         * dom/StyledElement.h:
4695         * dom/Text.cpp:
4696         * dom/Text.h:
4697         * dom/Text.idl:
4698         * dom/Tokenizer.h:
4699         * dom/Traversal.cpp:
4700         * dom/Traversal.h:
4701         * dom/TreeWalker.cpp:
4702         * dom/TreeWalker.h:
4703         * dom/TreeWalker.idl:
4704         * dom/UIEvent.cpp:
4705         * dom/UIEvent.h:
4706         * dom/UIEvent.idl:
4707         * dom/UIEventWithKeyState.cpp:
4708         * dom/UIEventWithKeyState.h:
4709         * dom/WheelEvent.cpp:
4710         * dom/WheelEvent.h:
4711         * dom/WheelEvent.idl:
4712         * dom/XMLTokenizer.cpp:
4713         * dom/XMLTokenizer.h:
4714         * html/FormDataList.cpp:
4715         * html/FormDataList.h:
4716         * html/HTMLAnchorElement.cpp:
4717         * html/HTMLAnchorElement.h:
4718         * html/HTMLAnchorElement.idl:
4719         * html/HTMLAppletElement.cpp:
4720         * html/HTMLAppletElement.h:
4721         * html/HTMLAppletElement.idl:
4722         * html/HTMLAreaElement.cpp:
4723         * html/HTMLAreaElement.h:
4724         * html/HTMLAreaElement.idl:
4725         * html/HTMLBRElement.cpp:
4726         * html/HTMLBRElement.h:
4727         * html/HTMLBRElement.idl:
4728         * html/HTMLBaseElement.cpp:
4729         * html/HTMLBaseElement.h:
4730         * html/HTMLBaseElement.idl:
4731         * html/HTMLBaseFontElement.cpp:
4732         * html/HTMLBaseFontElement.h:
4733         * html/HTMLBaseFontElement.idl:
4734         * html/HTMLBlockquoteElement.cpp:
4735         * html/HTMLBlockquoteElement.h:
4736         * html/HTMLBlockquoteElement.idl:
4737         * html/HTMLBodyElement.cpp:
4738         * html/HTMLBodyElement.h:
4739         * html/HTMLBodyElement.idl:
4740         * html/HTMLButtonElement.cpp:
4741         * html/HTMLButtonElement.h:
4742         * html/HTMLButtonElement.idl:
4743         * html/HTMLCollection.cpp:
4744         * html/HTMLCollection.h:
4745         * html/HTMLCollection.idl:
4746         * html/HTMLDListElement.cpp:
4747         * html/HTMLDListElement.h:
4748         * html/HTMLDListElement.idl:
4749         * html/HTMLDirectoryElement.cpp:
4750         * html/HTMLDirectoryElement.h:
4751         * html/HTMLDirectoryElement.idl:
4752         * html/HTMLDivElement.cpp:
4753         * html/HTMLDivElement.h:
4754         * html/HTMLDivElement.idl:
4755         * html/HTMLDocument.cpp:
4756         * html/HTMLDocument.h:
4757         * html/HTMLDocument.idl:
4758         * html/HTMLElement.cpp:
4759         * html/HTMLElement.h:
4760         * html/HTMLElement.idl:
4761         * html/HTMLElementFactory.cpp:
4762         * html/HTMLElementFactory.h:
4763         * html/HTMLEmbedElement.cpp:
4764         * html/HTMLEmbedElement.h:
4765         * html/HTMLEmbedElement.idl:
4766         * html/HTMLEntityNames.gperf:
4767         * html/HTMLFieldSetElement.cpp:
4768         * html/HTMLFieldSetElement.h:
4769         * html/HTMLFieldSetElement.idl:
4770         * html/HTMLFontElement.cpp:
4771         * html/HTMLFontElement.h:
4772         * html/HTMLFontElement.idl:
4773         * html/HTMLFormCollection.cpp:
4774         * html/HTMLFormCollection.h:
4775         * html/HTMLFormElement.cpp:
4776         * html/HTMLFormElement.h:
4777         * html/HTMLFormElement.idl:
4778         * html/HTMLFrameElement.cpp:
4779         * html/HTMLFrameElement.h:
4780         * html/HTMLFrameElement.idl:
4781         * html/HTMLFrameElementBase.cpp:
4782         * html/HTMLFrameElementBase.h:
4783         * html/HTMLFrameOwnerElement.cpp:
4784         * html/HTMLFrameOwnerElement.h:
4785         * html/HTMLFrameSetElement.cpp:
4786         * html/HTMLFrameSetElement.h:
4787         * html/HTMLFrameSetElement.idl:
4788         * html/HTMLGenericFormElement.cpp:
4789         * html/HTMLGenericFormElement.h:
4790         * html/HTMLHRElement.cpp:
4791         * html/HTMLHRElement.h:
4792         * html/HTMLHRElement.idl:
4793         * html/HTMLHeadElement.cpp:
4794         * html/HTMLHeadElement.h:
4795         * html/HTMLHeadElement.idl:
4796         * html/HTMLHeadingElement.cpp:
4797         * html/HTMLHeadingElement.h:
4798         * html/HTMLHeadingElement.idl:
4799         * html/HTMLHtmlElement.cpp:
4800         * html/HTMLHtmlElement.h:
4801         * html/HTMLHtmlElement.idl:
4802         * html/HTMLIFrameElement.cpp:
4803         * html/HTMLIFrameElement.h:
4804         * html/HTMLIFrameElement.idl:
4805         * html/HTMLImageElement.cpp:
4806         * html/HTMLImageElement.h:
4807         * html/HTMLImageElement.idl:
4808         * html/HTMLImageLoader.cpp:
4809         * html/HTMLImageLoader.h:
4810         * html/HTMLInputElement.cpp:
4811         * html/HTMLInputElement.h:
4812         * html/HTMLInputElement.idl:
4813         * html/HTMLIsIndexElement.cpp:
4814         * html/HTMLIsIndexElement.h:
4815         * html/HTMLIsIndexElement.idl:
4816         * html/HTMLKeygenElement.cpp:
4817         * html/HTMLKeygenElement.h:
4818         * html/HTMLLIElement.cpp:
4819         * html/HTMLLIElement.h:
4820         * html/HTMLLIElement.idl:
4821         * html/HTMLLabelElement.cpp:
4822         * html/HTMLLabelElement.h:
4823         * html/HTMLLabelElement.idl:
4824         * html/HTMLLegendElement.cpp:
4825         * html/HTMLLegendElement.h:
4826         * html/HTMLLegendElement.idl:
4827         * html/HTMLLinkElement.cpp:
4828         * html/HTMLLinkElement.h:
4829         * html/HTMLLinkElement.idl:
4830         * html/HTMLMapElement.cpp:
4831         * html/HTMLMapElement.h:
4832         * html/HTMLMapElement.idl:
4833         * html/HTMLMarqueeElement.cpp:
4834         * html/HTMLMarqueeElement.h:
4835         * html/HTMLMarqueeElement.idl:
4836         * html/HTMLMenuElement.cpp:
4837         * html/HTMLMenuElement.h:
4838         * html/HTMLMenuElement.idl:
4839         * html/HTMLMetaElement.cpp:
4840         * html/HTMLMetaElement.h:
4841         * html/HTMLMetaElement.idl:
4842         * html/HTMLModElement.cpp:
4843         * html/HTMLModElement.h:
4844         * html/HTMLModElement.idl:
4845         * html/HTMLNameCollection.cpp:
4846         * html/HTMLNameCollection.h:
4847         * html/HTMLOListElement.cpp:
4848         * html/HTMLOListElement.h:
4849         * html/HTMLOListElement.idl:
4850         * html/HTMLObjectElement.cpp:
4851         * html/HTMLObjectElement.h:
4852         * html/HTMLObjectElement.idl:
4853         * html/HTMLOptGroupElement.cpp:
4854         * html/HTMLOptGroupElement.h:
4855         * html/HTMLOptGroupElement.idl:
4856         * html/HTMLOptionElement.cpp:
4857         * html/HTMLOptionElement.h:
4858         * html/HTMLOptionElement.idl:
4859         * html/HTMLOptionsCollection.cpp:
4860         * html/HTMLOptionsCollection.h:
4861         * html/HTMLOptionsCollection.idl:
4862         * html/HTMLParagraphElement.cpp:
4863         * html/HTMLParagraphElement.h:
4864         * html/HTMLParagraphElement.idl:
4865         * html/HTMLParamElement.cpp:
4866         * html/HTMLParamElement.h:
4867         * html/HTMLParamElement.idl:
4868         * html/HTMLParser.cpp:
4869         * html/HTMLParser.h:
4870         * html/HTMLPlugInElement.cpp:
4871         * html/HTMLPlugInElement.h:
4872         * html/HTMLPreElement.cpp:
4873         * html/HTMLPreElement.h:
4874         * html/HTMLPreElement.idl:
4875         * html/HTMLQuoteElement.cpp:
4876         * html/HTMLQuoteElement.h:
4877         * html/HTMLQuoteElement.idl:
4878         * html/HTMLScriptElement.cpp:
4879         * html/HTMLScriptElement.h:
4880         * html/HTMLScriptElement.idl:
4881         * html/HTMLSelectElement.cpp:
4882         * html/HTMLSelectElement.h:
4883         * html/HTMLSelectElement.idl:
4884         * html/HTMLStyleElement.cpp:
4885         * html/HTMLStyleElement.h:
4886         * html/HTMLStyleElement.idl:
4887         * html/HTMLTableCaptionElement.cpp:
4888         * html/HTMLTableCaptionElement.h:
4889         * html/HTMLTableCaptionElement.idl:
4890         * html/HTMLTableCellElement.cpp:
4891         * html/HTMLTableCellElement.h:
4892         * html/HTMLTableCellElement.idl:
4893         * html/HTMLTableColElement.cpp:
4894         * html/HTMLTableColElement.h:
4895         * html/HTMLTableColElement.idl:
4896         * html/HTMLTableElement.cpp:
4897         * html/HTMLTableElement.h:
4898         * html/HTMLTableElement.idl:
4899         * html/HTMLTablePartElement.cpp:
4900         * html/HTMLTablePartElement.h:
4901         * html/HTMLTableRowElement.cpp:
4902         * html/HTMLTableRowElement.h:
4903         * html/HTMLTableRowElement.idl:
4904         * html/HTMLTableSectionElement.cpp:
4905         * html/HTMLTableSectionElement.h:
4906         * html/HTMLTableSectionElement.idl:
4907         * html/HTMLTextAreaElement.cpp:
4908         * html/HTMLTextAreaElement.h:
4909         * html/HTMLTextAreaElement.idl:
4910         * html/HTMLTitleElement.cpp:
4911         * html/HTMLTitleElement.h:
4912         * html/HTMLTitleElement.idl:
4913         * html/HTMLTokenizer.cpp:
4914         * html/HTMLTokenizer.h:
4915         * html/HTMLUListElement.cpp:
4916         * html/HTMLUListElement.h:
4917         * html/HTMLUListElement.idl:
4918         * ksvg2/css/SVGCSSParser.cpp:
4919         * ksvg2/css/SVGCSSStyleSelector.cpp:
4920         * ksvg2/css/SVGRenderStyle.cpp:
4921         * ksvg2/css/SVGRenderStyle.h:
4922         * ksvg2/css/SVGRenderStyleDefs.cpp:
4923         * ksvg2/css/SVGRenderStyleDefs.h:
4924         * ksvg2/events/JSSVGLazyEventListener.cpp:
4925         * ksvg2/events/JSSVGLazyEventListener.h:
4926         * ksvg2/events/SVGZoomEvent.cpp:
4927         * ksvg2/events/SVGZoomEvent.h:
4928         * ksvg2/misc/KCanvasRenderingStyle.cpp:
4929         * ksvg2/misc/KCanvasRenderingStyle.h:
4930         * ksvg2/misc/PointerEventsHitRules.cpp:
4931         * ksvg2/misc/PointerEventsHitRules.h:
4932         * ksvg2/misc/SVGDocumentExtensions.cpp:
4933         * ksvg2/misc/SVGDocumentExtensions.h:
4934         * ksvg2/misc/SVGImageLoader.cpp:
4935         * ksvg2/misc/SVGImageLoader.h:
4936         * ksvg2/misc/SVGTimer.cpp:
4937         * ksvg2/misc/SVGTimer.h:
4938         * ksvg2/misc/TimeScheduler.cpp:
4939         * ksvg2/misc/TimeScheduler.h:
4940         * ksvg2/scripts/cssmakeprops:
4941         * ksvg2/scripts/cssmakevalues:
4942         * ksvg2/svg/ColorDistance.cpp:
4943         * ksvg2/svg/ColorDistance.h:
4944         * ksvg2/svg/GradientAttributes.h:
4945         * ksvg2/svg/LinearGradientAttributes.h:
4946         * ksvg2/svg/PatternAttributes.h:
4947         * ksvg2/svg/RadialGradientAttributes.h:
4948         * ksvg2/svg/SVGAElement.cpp:
4949         * ksvg2/svg/SVGAElement.h:
4950         * ksvg2/svg/SVGAngle.cpp:
4951         * ksvg2/svg/SVGAngle.h:
4952         * ksvg2/svg/SVGAngle.idl:
4953         * ksvg2/svg/SVGAnimateColorElement.cpp:
4954         * ksvg2/svg/SVGAnimateColorElement.h:
4955         * ksvg2/svg/SVGAnimateElement.cpp:
4956         * ksvg2/svg/SVGAnimateElement.h:
4957         * ksvg2/svg/SVGAnimateMotionElement.cpp:
4958         * ksvg2/svg/SVGAnimateMotionElement.h:
4959         * ksvg2/svg/SVGAnimateTransformElement.cpp:
4960         * ksvg2/svg/SVGAnimateTransformElement.h:
4961         * ksvg2/svg/SVGAnimatedPathData.cpp:
4962         * ksvg2/svg/SVGAnimatedPathData.h:
4963         * ksvg2/svg/SVGAnimatedPoints.cpp:
4964         * ksvg2/svg/SVGAnimatedPoints.h:
4965         * ksvg2/svg/SVGAnimatedTemplate.h:
4966         * ksvg2/svg/SVGAnimationElement.cpp:
4967         * ksvg2/svg/SVGAnimationElement.h:
4968         * ksvg2/svg/SVGCircleElement.cpp:
4969         * ksvg2/svg/SVGCircleElement.h:
4970         * ksvg2/svg/SVGClipPathElement.cpp:
4971         * ksvg2/svg/SVGClipPathElement.h:
4972         * ksvg2/svg/SVGColor.cpp:
4973         * ksvg2/svg/SVGColor.h:
4974         * ksvg2/svg/SVGColor.idl:
4975         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
4976         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
4977         * ksvg2/svg/SVGCursorElement.cpp:
4978         * ksvg2/svg/SVGCursorElement.h:
4979         * ksvg2/svg/SVGDefsElement.cpp:
4980         * ksvg2/svg/SVGDefsElement.h:
4981         * ksvg2/svg/SVGDescElement.cpp:
4982         * ksvg2/svg/SVGDescElement.h:
4983         * ksvg2/svg/SVGDocument.cpp:
4984         * ksvg2/svg/SVGDocument.h:
4985         * ksvg2/svg/SVGDocument.idl:
4986         * ksvg2/svg/SVGElement.cpp:
4987         * ksvg2/svg/SVGElement.h:
4988         * ksvg2/svg/SVGElement.idl:
4989         * ksvg2/svg/SVGElementInstance.cpp:
4990         * ksvg2/svg/SVGElementInstance.h:
4991         * ksvg2/svg/SVGElementInstanceList.cpp:
4992         * ksvg2/svg/SVGElementInstanceList.h:
4993         * ksvg2/svg/SVGEllipseElement.cpp:
4994         * ksvg2/svg/SVGEllipseElement.h:
4995         * ksvg2/svg/SVGException.h:
4996         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
4997         * ksvg2/svg/SVGExternalResourcesRequired.h:
4998         * ksvg2/svg/SVGFEBlendElement.cpp:
4999         * ksvg2/svg/SVGFEBlendElement.h:
5000         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
5001         * ksvg2/svg/SVGFEColorMatrixElement.h:
5002         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
5003         * ksvg2/svg/SVGFEComponentTransferElement.h:
5004         * ksvg2/svg/SVGFECompositeElement.cpp:
5005         * ksvg2/svg/SVGFECompositeElement.h:
5006         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
5007         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
5008         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
5009         * ksvg2/svg/SVGFEDisplacementMapElement.h:
5010         * ksvg2/svg/SVGFEDistantLightElement.cpp:
5011         * ksvg2/svg/SVGFEDistantLightElement.h:
5012         * ksvg2/svg/SVGFEFloodElement.cpp:
5013         * ksvg2/svg/SVGFEFloodElement.h:
5014         * ksvg2/svg/SVGFEFuncAElement.cpp:
5015         * ksvg2/svg/SVGFEFuncAElement.h:
5016         * ksvg2/svg/SVGFEFuncBElement.cpp:
5017         * ksvg2/svg/SVGFEFuncBElement.h:
5018         * ksvg2/svg/SVGFEFuncGElement.cpp:
5019         * ksvg2/svg/SVGFEFuncGElement.h:
5020         * ksvg2/svg/SVGFEFuncRElement.cpp:
5021         * ksvg2/svg/SVGFEFuncRElement.h:
5022         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
5023         * ksvg2/svg/SVGFEGaussianBlurElement.h:
5024         * ksvg2/svg/SVGFEImageElement.cpp:
5025         * ksvg2/svg/SVGFEImageElement.h:
5026         * ksvg2/svg/SVGFELightElement.cpp:
5027         * ksvg2/svg/SVGFELightElement.h:
5028         * ksvg2/svg/SVGFEMergeElement.cpp:
5029         * ksvg2/svg/SVGFEMergeElement.h:
5030         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
5031         * ksvg2/svg/SVGFEMergeNodeElement.h:
5032         * ksvg2/svg/SVGFEOffsetElement.cpp:
5033         * ksvg2/svg/SVGFEOffsetElement.h:
5034         * ksvg2/svg/SVGFEPointLightElement.cpp:
5035         * ksvg2/svg/SVGFEPointLightElement.h:
5036         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
5037         * ksvg2/svg/SVGFESpecularLightingElement.h:
5038         * ksvg2/svg/SVGFESpotLightElement.cpp:
5039         * ksvg2/svg/SVGFESpotLightElement.h:
5040         * ksvg2/svg/SVGFETileElement.cpp:
5041         * ksvg2/svg/SVGFETileElement.h:
5042         * ksvg2/svg/SVGFETurbulenceElement.cpp:
5043         * ksvg2/svg/SVGFETurbulenceElement.h:
5044         * ksvg2/svg/SVGFilterElement.cpp:
5045         * ksvg2/svg/SVGFilterElement.h:
5046         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
5047         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
5048         * ksvg2/svg/SVGFitToViewBox.cpp:
5049         * ksvg2/svg/SVGFitToViewBox.h:
5050         * ksvg2/svg/SVGForeignObjectElement.cpp:
5051         * ksvg2/svg/SVGForeignObjectElement.h:
5052         * ksvg2/svg/SVGGElement.cpp:
5053         * ksvg2/svg/SVGGElement.h:
5054         * ksvg2/svg/SVGGradientElement.cpp:
5055         * ksvg2/svg/SVGGradientElement.h:
5056         * ksvg2/svg/SVGImageElement.cpp:
5057         * ksvg2/svg/SVGImageElement.h:
5058         * ksvg2/svg/SVGLangSpace.cpp:
5059         * ksvg2/svg/SVGLangSpace.h:
5060         * ksvg2/svg/SVGLength.cpp:
5061         * ksvg2/svg/SVGLength.h:
5062         * ksvg2/svg/SVGLength.idl:
5063         * ksvg2/svg/SVGLengthList.cpp:
5064         * ksvg2/svg/SVGLengthList.h:
5065         * ksvg2/svg/SVGLineElement.cpp:
5066         * ksvg2/svg/SVGLineElement.h:
5067         * ksvg2/svg/SVGLinearGradientElement.cpp:
5068         * ksvg2/svg/SVGLinearGradientElement.h:
5069         * ksvg2/svg/SVGList.h:
5070         * ksvg2/svg/SVGListTraits.h:
5071         * ksvg2/svg/SVGLocatable.cpp:
5072         * ksvg2/svg/SVGLocatable.h:
5073         * ksvg2/svg/SVGMPathElement.cpp:
5074         * ksvg2/svg/SVGMPathElement.h:
5075         * ksvg2/svg/SVGMarkerElement.cpp:
5076         * ksvg2/svg/SVGMarkerElement.h:
5077         * ksvg2/svg/SVGMaskElement.cpp:
5078         * ksvg2/svg/SVGMaskElement.h:
5079         * ksvg2/svg/SVGMatrix.idl:
5080         * ksvg2/svg/SVGMetadataElement.cpp:
5081         * ksvg2/svg/SVGMetadataElement.h:
5082         * ksvg2/svg/SVGMetadataElement.idl:
5083         * ksvg2/svg/SVGNumber.idl:
5084         * ksvg2/svg/SVGNumberList.cpp:
5085         * ksvg2/svg/SVGNumberList.h:
5086         * ksvg2/svg/SVGPaint.cpp:
5087         * ksvg2/svg/SVGPaint.h:
5088         * ksvg2/svg/SVGParserUtilities.cpp:
5089         * ksvg2/svg/SVGParserUtilities.h:
5090         * ksvg2/svg/SVGPathElement.cpp:
5091         * ksvg2/svg/SVGPathElement.h:
5092         * ksvg2/svg/SVGPathSeg.h:
5093         * ksvg2/svg/SVGPathSegArc.cpp:
5094         * ksvg2/svg/SVGPathSegArc.h:
5095         * ksvg2/svg/SVGPathSegClosePath.cpp:
5096         * ksvg2/svg/SVGPathSegClosePath.h:
5097         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
5098         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
5099         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
5100         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
5101         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
5102         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
5103         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
5104         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
5105         * ksvg2/svg/SVGPathSegLineto.cpp:
5106         * ksvg2/svg/SVGPathSegLineto.h:
5107         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
5108         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
5109         * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
5110         * ksvg2/svg/SVGPathSegLinetoVertical.h:
5111         * ksvg2/svg/SVGPathSegList.cpp:
5112         * ksvg2/svg/SVGPathSegList.h:
5113         * ksvg2/svg/SVGPathSegMoveto.cpp:
5114         * ksvg2/svg/SVGPathSegMoveto.h:
5115         * ksvg2/svg/SVGPatternElement.cpp:
5116         * ksvg2/svg/SVGPatternElement.h:
5117         * ksvg2/svg/SVGPoint.idl:
5118         * ksvg2/svg/SVGPointList.cpp:
5119         * ksvg2/svg/SVGPointList.h:
5120         * ksvg2/svg/SVGPolyElement.cpp:
5121         * ksvg2/svg/SVGPolyElement.h:
5122         * ksvg2/svg/SVGPolygonElement.cpp:
5123         * ksvg2/svg/SVGPolygonElement.h:
5124         * ksvg2/svg/SVGPolylineElement.cpp:
5125         * ksvg2/svg/SVGPolylineElement.h:
5126         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
5127         * ksvg2/svg/SVGPreserveAspectRatio.h:
5128         * ksvg2/svg/SVGRadialGradientElement.cpp:
5129         * ksvg2/svg/SVGRadialGradientElement.h:
5130         * ksvg2/svg/SVGRect.idl:
5131         * ksvg2/svg/SVGRectElement.cpp:
5132         * ksvg2/svg/SVGRectElement.h:
5133         * ksvg2/svg/SVGRenderingIntent.h:
5134         * ksvg2/svg/SVGSVGElement.cpp:
5135         * ksvg2/svg/SVGSVGElement.h:
5136         * ksvg2/svg/SVGSVGElement.idl:
5137         * ksvg2/svg/SVGScriptElement.cpp:
5138         * ksvg2/svg/SVGScriptElement.h:
5139         * ksvg2/svg/SVGSetElement.cpp:
5140         * ksvg2/svg/SVGSetElement.h:
5141         * ksvg2/svg/SVGStopElement.cpp:
5142         * ksvg2/svg/SVGStopElement.h:
5143         * ksvg2/svg/SVGStringList.cpp:
5144         * ksvg2/svg/SVGStringList.h:
5145         * ksvg2/svg/SVGStylable.cpp:
5146         * ksvg2/svg/SVGStylable.h:
5147         * ksvg2/svg/SVGStyleElement.cpp:
5148         * ksvg2/svg/SVGStyleElement.h:
5149         * ksvg2/svg/SVGStyledElement.cpp:
5150         * ksvg2/svg/SVGStyledElement.h:
5151         * ksvg2/svg/SVGStyledLocatableElement.cpp:
5152         * ksvg2/svg/SVGStyledLocatableElement.h:
5153         * ksvg2/svg/SVGStyledTransformableElement.cpp:
5154         * ksvg2/svg/SVGStyledTransformableElement.h:
5155         * ksvg2/svg/SVGSwitchElement.cpp:
5156         * ksvg2/svg/SVGSwitchElement.h:
5157         * ksvg2/svg/SVGSymbolElement.cpp:
5158         * ksvg2/svg/SVGSymbolElement.h:
5159         * ksvg2/svg/SVGTRefElement.cpp:
5160         * ksvg2/svg/SVGTRefElement.h:
5161         * ksvg2/svg/SVGTSpanElement.cpp:
5162         * ksvg2/svg/SVGTSpanElement.h:
5163         * ksvg2/svg/SVGTests.cpp:
5164         * ksvg2/svg/SVGTests.h:
5165         * ksvg2/svg/SVGTextContentElement.cpp:
5166         * ksvg2/svg/SVGTextContentElement.h:
5167         * ksvg2/svg/SVGTextElement.cpp:
5168         * ksvg2/svg/SVGTextElement.h:
5169         * ksvg2/svg/SVGTextPositioningElement.cpp:
5170         * ksvg2/svg/SVGTextPositioningElement.h:
5171         * ksvg2/svg/SVGTitleElement.cpp:
5172         * ksvg2/svg/SVGTitleElement.h:
5173         * ksvg2/svg/SVGTransform.cpp:
5174         * ksvg2/svg/SVGTransform.h:
5175         * ksvg2/svg/SVGTransform.idl:
5176         * ksvg2/svg/SVGTransformDistance.cpp:
5177         * ksvg2/svg/SVGTransformDistance.h:
5178         * ksvg2/svg/SVGTransformList.cpp:
5179         * ksvg2/svg/SVGTransformList.h:
5180         * ksvg2/svg/SVGTransformable.cpp:
5181         * ksvg2/svg/SVGTransformable.h:
5182         * ksvg2/svg/SVGURIReference.cpp:
5183         * ksvg2/svg/SVGURIReference.h:
5184         * ksvg2/svg/SVGUnitTypes.h:
5185         * ksvg2/svg/SVGUseElement.cpp:
5186         * ksvg2/svg/SVGUseElement.h:
5187         * ksvg2/svg/SVGViewElement.cpp:
5188         * ksvg2/svg/SVGViewElement.h:
5189         * ksvg2/svg/SVGZoomAndPan.cpp:
5190         * ksvg2/svg/SVGZoomAndPan.h:
5191         * loader/Cache.cpp:
5192         * loader/Cache.h:
5193         * loader/CachedCSSStyleSheet.cpp:
5194         * loader/CachedCSSStyleSheet.h:
5195         * loader/CachedImage.cpp:
5196         * loader/CachedImage.h:
5197         * loader/CachedResource.cpp:
5198         * loader/CachedResource.h:
5199         * loader/CachedResourceClient.h:
5200         * loader/CachedResourceClientWalker.cpp:
5201         * loader/CachedResourceClientWalker.h:
5202         * loader/CachedScript.cpp:
5203         * loader/CachedScript.h:
5204         * loader/CachedXBLDocument.cpp:
5205         * loader/CachedXBLDocument.h:
5206         * loader/CachedXSLStyleSheet.cpp:
5207         * loader/CachedXSLStyleSheet.h:
5208         * loader/DocLoader.cpp:
5209         * loader/DocLoader.h:
5210         * loader/FTPDirectoryParser.cpp:
5211         * loader/FTPDirectoryParser.h:
5212         * loader/Request.cpp:
5213         * loader/Request.h:
5214         * loader/TextResourceDecoder.cpp:
5215         * loader/TextResourceDecoder.h:
5216         * loader/loader.cpp:
5217         * loader/loader.h:
5218         * page/Chrome.cpp:
5219         * page/Chrome.h:
5220         * page/ChromeClient.h:
5221         * page/Frame.cpp:
5222         * page/Frame.h:
5223         * page/FramePrivate.h:
5224         * page/FrameTree.cpp:
5225         * page/FrameTree.h:
5226         * page/FrameView.cpp:
5227         * page/FrameView.h:
5228         * page/MouseEventWithHitTestResults.cpp:
5229         * page/MouseEventWithHitTestResults.h:
5230         * page/Page.cpp:
5231         * page/Page.h:
5232         * page/Plugin.h:
5233         * page/mac/ChromeMac.mm:
5234         * platform/Arena.cpp:
5235         * platform/Arena.h:
5236         * platform/AtomicString.cpp:
5237         * platform/AtomicString.h:
5238         * platform/AtomicStringImpl.h:
5239         * platform/BidiContext.cpp:
5240         * platform/BidiContext.h:
5241         * platform/BidiResolver.h:
5242         * platform/Font.cpp:
5243         * platform/Font.h:
5244         * platform/FontData.h:
5245         * platform/FontDescription.h:
5246         * platform/FontFallbackList.h:
5247         * platform/PlatformString.h:
5248         * platform/PopupMenu.h:
5249         * platform/PopupMenuClient.h:
5250         * platform/SearchPopupMenu.h:
5251         * platform/SegmentedString.cpp:
5252         * platform/SegmentedString.h:
5253         * platform/Shared.h:
5254         * platform/StaticConstructors.h:
5255         * platform/String.cpp:
5256         * platform/StringHash.h:
5257         * platform/StringImpl.cpp:
5258         * platform/StringImpl.h:
5259         * platform/TextBreakIterator.h:
5260         * platform/TextBreakIteratorICU.cpp:
5261         * platform/TextBreakIteratorInternalICU.h:
5262         * platform/TextStyle.h:
5263         * platform/UnicodeRange.cpp:
5264         * platform/UnicodeRange.h:
5265         * platform/cf/StringCF.cpp:
5266         * platform/cf/StringImplCF.cpp:
5267         * platform/graphics/FloatPoint3D.cpp:
5268         * platform/graphics/FloatPoint3D.h:
5269         * platform/graphics/Icon.h:
5270         * platform/graphics/IntSizeHash.h:
5271         * platform/graphics/PathTraversalState.cpp:
5272         * platform/graphics/cairo/CairoPath.h:
5273         * platform/graphics/cairo/PathCairo.cpp:
5274         * platform/graphics/mac/IconMac.mm:
5275         * platform/graphics/qt/IconQt.cpp:
5276         * platform/graphics/svg/SVGResourceFilter.cpp:
5277         * platform/graphics/svg/SVGResourceFilter.h:
5278         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
5279         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
5280         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
5281         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
5282         * platform/graphics/svg/filters/SVGDistantLightSource.h:
5283         * platform/graphics/svg/filters/SVGFEBlend.cpp:
5284         * platform/graphics/svg/filters/SVGFEBlend.h:
5285         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
5286         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
5287         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
5288         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
5289         * platform/graphics/svg/filters/SVGFEComposite.cpp:
5290         * platform/graphics/svg/filters/SVGFEComposite.h:
5291         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
5292         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
5293         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
5294         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
5295         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
5296         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
5297         * platform/graphics/svg/filters/SVGFEFlood.cpp:
5298         * platform/graphics/svg/filters/SVGFEFlood.h:
5299         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
5300         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
5301         * platform/graphics/svg/filters/SVGFEImage.cpp:
5302         * platform/graphics/svg/filters/SVGFEImage.h:
5303         * platform/graphics/svg/filters/SVGFEMerge.cpp:
5304         * platform/graphics/svg/filters/SVGFEMerge.h:
5305         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
5306         * platform/graphics/svg/filters/SVGFEMorphology.h:
5307         * platform/graphics/svg/filters/SVGFEOffset.cpp:
5308         * platform/graphics/svg/filters/SVGFEOffset.h:
5309         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
5310         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
5311         * platform/graphics/svg/filters/SVGFETile.h:
5312         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
5313         * platform/graphics/svg/filters/SVGFETurbulence.h:
5314         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
5315         * platform/graphics/svg/filters/SVGFilterEffect.h:
5316         * platform/graphics/svg/filters/SVGLightSource.cpp:
5317         * platform/graphics/svg/filters/SVGLightSource.h:
5318         * platform/graphics/svg/filters/SVGPointLightSource.h:
5319         * platform/graphics/svg/filters/SVGSpotLightSource.h:
5320         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
5321         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
5322         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
5323         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
5324         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
5325         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
5326         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
5327         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
5328         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
5329         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
5330         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
5331         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
5332         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
5333         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
5334         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
5335         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
5336         * platform/graphics/svg/qt/RenderPathQt.cpp:
5337         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
5338         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
5339         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
5340         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
5341         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
5342         * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
5343         * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
5344         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
5345         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
5346         * platform/graphics/win/IconWin.cpp:
5347         * platform/gtk/FontPlatformData.h:
5348         * platform/gtk/FontPlatformDataGtk.cpp:
5349         * platform/gtk/PopupMenuGtk.cpp:
5350         * platform/gtk/RenderThemeGtk.cpp:
5351         * platform/gtk/RenderThemeGtk.h:
5352         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
5353         * platform/image-decoders/png/PNGImageDecoder.cpp:
5354         * platform/mac/FontMac.mm:
5355         * platform/mac/FontPlatformData.h:
5356         * platform/mac/LocalCurrentGraphicsContext.h:
5357         * platform/mac/LocalCurrentGraphicsContext.mm:
5358         * platform/mac/PopupMenuMac.mm:
5359         * platform/mac/SearchPopupMenuMac.mm:
5360         * platform/mac/StringImplMac.mm:
5361         * platform/mac/StringMac.mm:
5362         * platform/mac/TextBreakIteratorInternalICUMac.mm:
5363         * platform/network/FormData.cpp:
5364         * platform/network/FormData.h:
5365         * platform/qt/FileChooserQt.cpp:
5366         * platform/qt/FontQt.cpp:
5367         * platform/qt/MenuEventProxy.h:
5368         * platform/qt/PlugInInfoStoreQt.cpp:
5369         * platform/qt/PopupMenuQt.cpp:
5370         * platform/qt/QWebPopup.cpp:
5371         * platform/qt/QWebPopup.h:
5372         * platform/qt/RenderThemeQt.cpp:
5373         * platform/qt/RenderThemeQt.h:
5374         * platform/qt/SearchPopupMenuQt.cpp:
5375         * platform/qt/TextBreakIteratorQt.cpp:
5376         * platform/qt/WheelEventQt.cpp:
5377         * platform/win/FontPlatformData.h:
5378         * platform/win/FontPlatformDataWin.cpp:
5379         * platform/win/PopupMenuWin.cpp:
5380         * platform/win/SearchPopupMenuWin.cpp:
5381         * platform/win/TextBreakIteratorInternalICUWin.cpp:
5382         * rendering/AutoTableLayout.cpp:
5383         * rendering/AutoTableLayout.h:
5384         * rendering/CounterNode.cpp:
5385         * rendering/CounterNode.h:
5386         * rendering/DataRef.h:
5387         * rendering/EllipsisBox.cpp:
5388         * rendering/EllipsisBox.h:
5389         * rendering/FixedTableLayout.cpp:
5390         * rendering/FixedTableLayout.h:
5391         * rendering/GapRects.h:
5392         * rendering/HitTestRequest.h:
5393         * rendering/HitTestResult.cpp:
5394         * rendering/HitTestResult.h:
5395         * rendering/InlineBox.cpp:
5396         * rendering/InlineBox.h:
5397         * rendering/InlineFlowBox.cpp:
5398         * rendering/InlineFlowBox.h:
5399         * rendering/InlineRunBox.h:
5400         * rendering/InlineTextBox.cpp:
5401         * rendering/InlineTextBox.h:
5402         * rendering/Length.h:
5403         * rendering/ListMarkerBox.cpp:
5404         * rendering/ListMarkerBox.h:
5405         * rendering/RenderApplet.cpp:
5406         * rendering/RenderApplet.h:
5407         * rendering/RenderArena.cpp:
5408         * rendering/RenderArena.h:
5409         * rendering/RenderBR.cpp:
5410         * rendering/RenderBR.h:
5411         * rendering/RenderBlock.cpp:
5412         * rendering/RenderBlock.h:
5413         * rendering/RenderBox.cpp:
5414         * rendering/RenderBox.h:
5415         * rendering/RenderButton.cpp:
5416         * rendering/RenderButton.h:
5417         * rendering/RenderContainer.cpp:
5418         * rendering/RenderContainer.h:
5419         * rendering/RenderCounter.cpp:
5420         * rendering/RenderCounter.h:
5421         * rendering/RenderFieldset.cpp:
5422         * rendering/RenderFieldset.h:
5423         * rendering/RenderFileUploadControl.cpp:
5424         * rendering/RenderFileUploadControl.h:
5425         * rendering/RenderFlexibleBox.cpp:
5426         * rendering/RenderFlexibleBox.h:
5427         * rendering/RenderFlow.cpp:
5428         * rendering/RenderFlow.h:
5429         * rendering/RenderForeignObject.cpp:
5430         * rendering/RenderForeignObject.h:
5431         * rendering/RenderFrame.cpp:
5432         * rendering/RenderFrame.h:
5433         * rendering/RenderFrameSet.cpp:
5434         * rendering/RenderFrameSet.h:
5435         * rendering/RenderImage.cpp:
5436         * rendering/RenderImage.h:
5437         * rendering/RenderInline.cpp:
5438         * rendering/RenderInline.h:
5439         * rendering/RenderLayer.cpp:
5440         * rendering/RenderLayer.h:
5441         * rendering/RenderLegend.cpp:
5442         * rendering/RenderLegend.h:
5443         * rendering/RenderListItem.cpp:
5444         * rendering/RenderListItem.h:
5445         * rendering/RenderListMarker.cpp:
5446         * rendering/RenderListMarker.h:
5447         * rendering/RenderMenuList.cpp:
5448         * rendering/RenderMenuList.h:
5449         * rendering/RenderObject.cpp:
5450         * rendering/RenderObject.h:
5451         * rendering/RenderPart.cpp:
5452         * rendering/RenderPart.h:
5453         * rendering/RenderPartObject.cpp:
5454         * rendering/RenderPartObject.h:
5455         * rendering/RenderPath.cpp:
5456         * rendering/RenderPath.h:
5457         * rendering/RenderReplaced.cpp:
5458         * rendering/RenderReplaced.h:
5459         * rendering/RenderSVGBlock.cpp:
5460         * rendering/RenderSVGBlock.h:
5461         * rendering/RenderSVGContainer.cpp:
5462         * rendering/RenderSVGContainer.h:
5463         * rendering/RenderSVGGradientStop.cpp:
5464         * rendering/RenderSVGGradientStop.h:
5465         * rendering/RenderSVGHiddenContainer.cpp:
5466         * rendering/RenderSVGHiddenContainer.h:
5467         * rendering/RenderSVGImage.cpp:
5468         * rendering/RenderSVGImage.h:
5469         * rendering/RenderSVGInline.cpp:
5470         * rendering/RenderSVGInline.h:
5471         * rendering/RenderSVGInlineText.cpp:
5472         * rendering/RenderSVGInlineText.h:
5473         * rendering/RenderSVGTSpan.cpp:
5474         * rendering/RenderSVGTSpan.h:
5475         * rendering/RenderSVGText.cpp:
5476         * rendering/RenderSVGText.h:
5477         * rendering/RenderSlider.cpp:
5478         * rendering/RenderSlider.h:
5479         * rendering/RenderStyle.cpp:
5480         * rendering/RenderStyle.h:
5481         * rendering/RenderTable.cpp:
5482         * rendering/RenderTable.h:
5483         * rendering/RenderTableCell.cpp:
5484         * rendering/RenderTableCell.h:
5485         * rendering/RenderTableCol.cpp:
5486         * rendering/RenderTableCol.h:
5487         * rendering/RenderTableRow.cpp:
5488         * rendering/RenderTableRow.h:
5489         * rendering/RenderTableSection.cpp:
5490         * rendering/RenderTableSection.h:
5491         * rendering/RenderText.cpp:
5492         * rendering/RenderText.h:
5493         * rendering/RenderTextControl.cpp:
5494         * rendering/RenderTextControl.h:
5495         * rendering/RenderTextFragment.cpp:
5496         * rendering/RenderTextFragment.h:
5497         * rendering/RenderTheme.cpp:
5498         * rendering/RenderTheme.h:
5499         * rendering/RenderThemeMac.h:
5500         * rendering/RenderThemeMac.mm:
5501         * rendering/RenderThemeSafari.cpp:
5502         * rendering/RenderThemeSafari.h:
5503         * rendering/RenderThemeWin.cpp:
5504         * rendering/RenderThemeWin.h:
5505         * rendering/RenderView.cpp:
5506         * rendering/RenderView.h:
5507         * rendering/RenderWidget.cpp:
5508         * rendering/RenderWidget.h:
5509         * rendering/RootInlineBox.cpp:
5510         * rendering/RootInlineBox.h:
5511         * rendering/SVGInlineFlowBox.cpp:
5512         * rendering/SVGInlineFlowBox.h:
5513         * rendering/SVGInlineTextBox.cpp:
5514         * rendering/SVGInlineTextBox.h:
5515         * rendering/SVGRootInlineBox.cpp:
5516         * rendering/SVGRootInlineBox.h:
5517         * rendering/TableLayout.h:
5518         * rendering/bidi.cpp:
5519         * rendering/bidi.h:
5520         * rendering/break_lines.cpp:
5521         * rendering/break_lines.h:
5522         * xml/DOMParser.cpp:
5523         * xml/DOMParser.h:
5524         * xml/DOMParser.idl:
5525         * xml/XMLHttpRequest.cpp:
5526         * xml/XMLHttpRequest.h:
5527         * xml/XMLSerializer.cpp:
5528         * xml/XMLSerializer.h:
5529         * xml/XMLSerializer.idl:
5530         * xml/XPathEvaluator.idl:
5531         * xml/XPathExpression.idl:
5532         * xml/XPathNSResolver.idl:
5533         * xml/XPathResult.idl:
5534         * xml/XSLImportRule.cpp:
5535         * xml/XSLImportRule.h:
5536         * xml/XSLStyleSheet.cpp:
5537         * xml/XSLStyleSheet.h:
5538         * xml/XSLTProcessor.cpp:
5539         * xml/XSLTProcessor.h:
5541 2007-09-25  Darin Adler  <darin@apple.com>
5543         Reviewed by Harrison.
5545         - fix <rdar://problem/5503225> CrashTracer: [USER] 2 crashes in Dashcode
5546           at com.apple.WebCore: WebCore::Frame::document const + 0
5548         * page/FrameView.cpp: (WebCore::FrameView::updateControlTints):
5549         Added null check.
5551 2007-09-25  Beth Dakin  <bdakin@apple.com>
5553         Reviewed by Darin.
5555         Fixes http://bugs.webkit.org/show_bug.cgi?id=15282 r25726 caused 
5556         plugins/mouse-events.html to fail
5558         * page/FrameView.cpp:
5559         (WebCore::FrameView::layout): We need to call 
5560         updateWidgetPosition() after updating each widget.
5562 2007-09-25  Anders Carlsson  <andersca@apple.com>
5564         Build fix.
5565         
5566         * page/Chrome.cpp:
5567         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
5569 2007-09-25  Anders Carlsson  <andersca@apple.com>
5571         Reviewed by Geoff.
5573         <rdar://problem/5283916>
5574         JavaScript timers may be firing while JavaScript alerts are displayed.
5575         
5576         Pause JavaScript timeouts while calling UI delegate methods that might show dialogs.
5577         
5578         * page/Chrome.cpp:
5579         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
5580         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
5582 2007-09-26  Holger Hans Peter Freyther  <zecke@selfish.org>
5584         Reviewed by Anders.
5586         Implement PopupMenu using GtkMenu.
5588         * platform/PopupMenu.h:
5589         * platform/gtk/PopupMenuGtk.cpp:
5590         (WebCore::PopupMenu::PopupMenu):
5591         (WebCore::PopupMenu::~PopupMenu):
5592         (WebCore::PopupMenu::show):
5593         (WebCore::PopupMenu::hide):
5594         (WebCore::PopupMenu::updateFromElement):
5595         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
5596         (WebCore::PopupMenu::menuItemActivated):
5597         (WebCore::PopupMenu::menuUnmapped):
5598         (WebCore::PopupMenu::menuPositionFunction):
5599         (WebCore::PopupMenu::menuRemoveItem):
5601 2007-09-23  Holger Hans Peter Freyther  <zecke@selfish.org>
5603         Rubber stamped by Mark.
5605         Obey the Coding-Style and move the asterisk to the
5606         left to be part of the type.
5608         * platform/gtk/RenderThemeGtk.h:
5610 2007-09-25  Beth Dakin  <bdakin@apple.com>
5612         Reviewed by Darin.
5614         Fix for <rdar://problem/5466459> CrashTracer: [USER] 1 crash in 
5615         NetNewsWire at com.apple.WebCore: WebCore::bidiNext + 485 (15241)
5617         Mitz discovered that this crash appeared because r25128 made it 
5618         possible for RenderPartObject::updateWidget() to be called during 
5619         layout. updateWidget() can, through a series of calls, cause an 
5620         attach/detach to happen, which is very bad in the middle of a 
5621         layout and is what led to this crash. This patch fixes that by 
5622         having the FrameView keep track of a queue of RenderPartObjects 
5623         that need to call updateWidget(), and it goes through the queue 
5624         calling updateWidget() as soon as layout is done.
5626         * page/FrameView.cpp: We only want to call updateWidget() if we are 
5627         not in a nested layout. Unfortunately, the existing variables on 
5628         FrameViewPrivate do not have exactly the information that we need, 
5629         so I added nestedLayoutCount.
5630         (WebCore::FrameViewPrivate::reset): Reset nestedLayoutCount.
5631         (WebCore::FrameView::layout): Increment nestedLayoutCount once we 
5632         have gotten through all of the early returns. Call updateWidget() 
5633         after layout is nestedLayoutCount is 1 and there are widgets to 
5634         update. Decrement nestedLayoutCount at the end.
5635         (WebCore::FrameView::addWidgetToUpdate):
5636         (WebCore::FrameView::removeWidgetToUpdate):
5637         * page/FrameView.h:
5638         * rendering/RenderPartObject.cpp:
5639         (WebCore::RenderPartObject::~RenderPartObject): Remove this from 
5640         the FrameView's update set.
5641         (WebCore::RenderPartObject::layout): Instead of calling 
5642         updateWidget() immediately, add this to the update widget set on 
5643         FrameView.
5644         * rendering/RenderPartObject.h:
5646 2007-09-25  David Kilzer  <ddkilzer@webkit.org>
5648         Reviewed by Mark Rowe.
5650         - fix http://bugs.webkit.org/show_bug.cgi?id=15275
5651           SVG dependency on WebCore/dom/XMLTokenizer.cpp
5653         * dom/XMLTokenizer.cpp: Moved #include "SVGStyleElement.h" into #if ENABLE(SVG).
5655 2007-09-25  Justin Garcia  <justin.garcia@apple.com>
5657         Reviewed by Darin.
5659         <rdar://problem/5483567> 
5660         REGRESSION (Tiger only, workaround in AppKit on Leopard): Pasting words copied from TextEdit in Mail adds extra newline
5661         
5662         * editing/ReplaceSelectionCommand.cpp:
5663         (WebCore::ReplaceSelectionCommand::removeUnrenderedNodes): Added.
5664         (WebCore::ReplaceSelectionCommand::doApply): Call removeUnrenderedNodes
5665         to prevent unrendered spaces from interfering with paragraph merging.
5666         * editing/ReplaceSelectionCommand.h:
5668 2007-09-24  Steve Falkenburg  <sfalken@apple.com>
5670         Reviewed by Darin.
5672         - fix <rdar://problem/5502513>
5674         * platform/win/FontCacheWin.cpp:
5675         (WebCore::FontCache::getFontLinkInterface):
5676         Roll back this file; the old code leaked a global COM object, but that's
5677         no big deal and the new code caused a crash on quit.
5679 2007-09-24  Anders Carlsson  <andersca@apple.com>
5681         Reviewed by Adam.
5683         <rdar://problem/5494608>
5684         Seed: Safari will follow links in Flash movies without clicking.
5686         Make sure to handle mouseover and mouseout so the plug-in can track when the mouse is over it.
5687                 
5688         * plugins/win/PluginViewWin.cpp:
5689         (WebCore::PluginViewWin::handleMouseEvent):
5691 2007-09-24  Mike Fenton  <mike@staikos.net>
5693         Reviewed by George Staikos.
5695         Switch to using a QImage instead of a QPixmap to make transparency work.
5697         * html/CanvasRenderingContext2D.cpp:
5698         (WebCore::CanvasRenderingContext2D::drawImage):
5699         * html/HTMLCanvasElement.cpp:
5700         (WebCore::HTMLCanvasElement::paint):
5701         (WebCore::HTMLCanvasElement::createDrawingContext):
5702         (WebCore::HTMLCanvasElement::createPlatformImage):
5703         * html/HTMLCanvasElement.h:
5705 2007-09-21  Kevin McCullough  <kmccullough@apple.com>
5707         Reviewed by Sam.
5709         - Updated project files to not use Edit and Continue for Debug Information since it doesn't work and breaks some functionality.
5711         * WebCore.vcproj/WebCore.vcproj:
5713 2007-09-24  Brady Eidson  <beidson@apple.com>
5715         Reviewed by John Sullivan
5717         * loader/icon/IconDatabase.cpp:
5718         (WebCore::IconDatabase::iconForPageURL): Assert the page url is non-null
5720 2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
5722         Rubber stamped by Adam.
5724         Renamed files from *Gdk to *Gtk (see #14732) using the
5725         work of Juan A. Suarez Romero as a base.
5727         GDK -> GTK
5729         * Projects/gdk/webcore-gdk.bkl:
5730         * WebCore.pro:
5731         * WebCoreSources.bkl:
5732         * loader/gdk: Removed.
5733         * loader/gdk/DocumentLoaderGdk.cpp: Removed.
5734         * loader/gtk: Added.
5735         * loader/gtk/DocumentLoaderGdk.cpp: Removed.
5736         * loader/gtk/DocumentLoaderGtk.cpp: Added.
5737         * page/FrameView.cpp:
5738         * page/FrameView.h:
5739         * page/gdk: Removed.
5740         * page/gdk/DragControllerGdk.cpp: Removed.
5741         * page/gdk/EventHandlerGdk.cpp: Removed.
5742         * page/gdk/FrameGdk.cpp: Removed.
5743         * page/gtk: Added.
5744         * page/gtk/DragControllerGdk.cpp: Removed.
5745         * page/gtk/DragControllerGtk.cpp: Added.
5746         * page/gtk/EventHandlerGdk.cpp: Removed.
5747         * page/gtk/EventHandlerGtk.cpp: Added.
5748         (WebCore::EventHandler::createDraggingClipboard):
5749         * page/gtk/FrameGdk.cpp: Removed.
5750         * page/gtk/FrameGtk.cpp: Added.
5751         * platform/ContextMenuItem.h:
5752         * platform/Cursor.h:
5753         * platform/DragData.h:
5754         * platform/DragImage.h:
5755         * platform/FontData.h:
5756         * platform/NotImplemented.h:
5757         * platform/PlatformKeyboardEvent.h:
5758         * platform/PlatformMenuDescription.h:
5759         * platform/PlatformMouseEvent.h:
5760         * platform/PlatformWheelEvent.h:
5761         * platform/ScrollView.h:
5762         * platform/Widget.h:
5763         * platform/gdk: Removed.
5764         * platform/gdk/ClipboardGdk.cpp: Removed.
5765         * platform/gdk/ClipboardGdk.h: Removed.
5766         * platform/gdk/ContextMenuGdk.cpp: Removed.
5767         * platform/gdk/ContextMenuItemGdk.cpp: Removed.
5768         * platform/gdk/CookieJarGdk.cpp: Removed.
5769         * platform/gdk/CursorGdk.cpp: Removed.
5770         * platform/gdk/DragDataGdk.cpp: Removed.
5771         * platform/gdk/DragImageGdk.cpp: Removed.
5772         * platform/gdk/FileChooserGdk.cpp: Removed.
5773         * platform/gdk/FileSystemGdk.cpp: Removed.
5774         * platform/gdk/FontCacheGdk.cpp: Removed.
5775         * platform/gdk/FontDataGdk.cpp: Removed.
5776         * platform/gdk/FontGdk.cpp: Removed.
5777         * platform/gdk/FontPlatformData.h: Removed.
5778         * platform/gdk/FontPlatformDataGdk.cpp: Removed.
5779         * platform/gdk/GlyphPageTreeNodeGdk.cpp: Removed.
5780         * platform/gdk/KeyEventGdk.cpp: Removed.
5781         * platform/gdk/KeyboardCodes.h: Removed.
5782         * platform/gdk/LocalizedStringsGdk.cpp: Removed.
5783         * platform/gdk/LoggingGdk.cpp: Removed.
5784         * platform/gdk/MIMETypeRegistryGdk.cpp: Removed.
5785         * platform/gdk/MouseEventGdk.cpp: Removed.
5786         * platform/gdk/PasteboardGdk.cpp: Removed.
5787         * platform/gdk/PlatformScreenGdk.cpp: Removed.
5788         * platform/gdk/PlatformScrollBar.h: Removed.
5789         * platform/gdk/PlatformScrollBarGdk.cpp: Removed.
5790         * platform/gdk/PopupMenuGdk.cpp: Removed.
5791         * platform/gdk/RenderThemeGdk.cpp: Removed.
5792         * platform/gdk/RenderThemeGdk.h: Removed.
5793         * platform/gdk/ScrollViewGdk.cpp: Removed.
5794         * platform/gdk/SearchPopupMenuGdk.cpp: Removed.
5795         * platform/gdk/SharedTimerLinux.cpp: Removed.
5796         * platform/gdk/SoundGdk.cpp: Removed.
5797         * platform/gdk/SystemTimeLinux.cpp: Removed.
5798         * platform/gdk/TemporaryLinkStubs.cpp: Removed.
5799         * platform/gdk/WheelEventGdk.cpp: Removed.
5800         * platform/gdk/WidgetGdk.cpp: Removed.
5801         * platform/graphics/GraphicsContext.h:
5802         * platform/graphics/cairo/GraphicsContextCairo.cpp:
5803         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
5804         (WebCore::GraphicsContext::setPlatformFont):
5805         * platform/graphics/gdk: Removed.
5806         * platform/graphics/gdk/IconGdk.cpp: Removed.
5807         * platform/graphics/gdk/ImageGdk.cpp: Removed.
5808         * platform/graphics/gtk: Added.
5809         * platform/graphics/gtk/IconGdk.cpp: Removed.
5810         * platform/graphics/gtk/IconGtk.cpp: Added.
5811         * platform/graphics/gtk/ImageGdk.cpp: Removed.
5812         * platform/graphics/gtk/ImageGtk.cpp: Added.
5813         * platform/gtk: Added.
5814         * platform/gtk/ClipboardGdk.cpp: Removed.
5815         * platform/gtk/ClipboardGdk.h: Removed.
5816         * platform/gtk/ClipboardGtk.cpp: Added.
5817         (WebCore::ClipboardGtk::ClipboardGtk):
5818         (WebCore::ClipboardGtk::~ClipboardGtk):
5819         (WebCore::ClipboardGtk::clearData):
5820         (WebCore::ClipboardGtk::clearAllData):
5821         (WebCore::ClipboardGtk::getData):
5822         (WebCore::ClipboardGtk::setData):
5823         (WebCore::ClipboardGtk::types):
5824         (WebCore::ClipboardGtk::dragLocation):
5825         (WebCore::ClipboardGtk::dragImage):
5826         (WebCore::ClipboardGtk::setDragImage):
5827         (WebCore::ClipboardGtk::dragImageElement):
5828         (WebCore::ClipboardGtk::setDragImageElement):
5829         (WebCore::ClipboardGtk::createDragImage):
5830         (WebCore::ClipboardGtk::declareAndWriteDragImage):
5831         (WebCore::ClipboardGtk::writeURL):
5832         (WebCore::ClipboardGtk::writeRange):
5833         (WebCore::ClipboardGtk::hasData):
5834         * platform/gtk/ClipboardGtk.h: Added.
5835         * platform/gtk/ContextMenuGdk.cpp: Removed.
5836         * platform/gtk/ContextMenuGtk.cpp: Added.
5837         * platform/gtk/ContextMenuItemGdk.cpp: Removed.
5838         * platform/gtk/ContextMenuItemGtk.cpp: Added.
5839         * platform/gtk/CookieJarGdk.cpp: Removed.
5840         * platform/gtk/CookieJarGtk.cpp: Added.
5841         * platform/gtk/CursorGdk.cpp: Removed.
5842         * platform/gtk/CursorGtk.cpp: Added.
5843         * platform/gtk/DragDataGdk.cpp: Removed.
5844         * platform/gtk/DragDataGtk.cpp: Added.
5845         * platform/gtk/DragImageGdk.cpp: Removed.
5846         * platform/gtk/DragImageGtk.cpp: Added.
5847         * platform/gtk/FileChooserGdk.cpp: Removed.
5848         * platform/gtk/FileChooserGtk.cpp: Added.
5849         * platform/gtk/FileSystemGdk.cpp: Removed.
5850         * platform/gtk/FileSystemGtk.cpp: Added.
5851         * platform/gtk/FontCacheGdk.cpp: Removed.
5852         * platform/gtk/FontCacheGtk.cpp: Added.
5853         * platform/gtk/FontDataGdk.cpp: Removed.
5854         * platform/gtk/FontDataGtk.cpp: Added.
5855         * platform/gtk/FontGdk.cpp: Removed.
5856         * platform/gtk/FontGtk.cpp: Added.
5857         * platform/gtk/FontPlatformDataGdk.cpp: Removed.
5858         * platform/gtk/FontPlatformDataGtk.cpp: Added.
5859         * platform/gtk/GlyphPageTreeNodeGdk.cpp: Removed.
5860         * platform/gtk/GlyphPageTreeNodeGtk.cpp: Added.
5861         * platform/gtk/KeyEventGdk.cpp: Removed.
5862         * platform/gtk/KeyEventGtk.cpp: Added.
5863         * platform/gtk/LocalizedStringsGdk.cpp: Removed.
5864         * platform/gtk/LocalizedStringsGtk.cpp: Added.
5865         * platform/gtk/LoggingGdk.cpp: Removed.
5866         * platform/gtk/LoggingGtk.cpp: Added.
5867         * platform/gtk/MIMETypeRegistryGdk.cpp: Removed.
5868         * platform/gtk/MIMETypeRegistryGtk.cpp: Added.
5869         * platform/gtk/MouseEventGdk.cpp: Removed.
5870         * platform/gtk/MouseEventGtk.cpp: Added.
5871         * platform/gtk/PasteboardGdk.cpp: Removed.
5872         * platform/gtk/PasteboardGtk.cpp: Added.
5873         * platform/gtk/PlatformScreenGdk.cpp: Removed.
5874         * platform/gtk/PlatformScreenGtk.cpp: Added.
5875         * platform/gtk/PlatformScrollBarGdk.cpp: Removed.
5876         * platform/gtk/PlatformScrollBarGtk.cpp: Added.
5877         * platform/gtk/PopupMenuGdk.cpp: Removed.
5878         * platform/gtk/PopupMenuGtk.cpp: Added.
5879         * platform/gtk/RenderThemeGdk.cpp: Removed.
5880         * platform/gtk/RenderThemeGdk.h: Removed.
5881         * platform/gtk/RenderThemeGtk.cpp: Added.
5882         (WebCore::theme):
5883         (WebCore::RenderThemeGtk::RenderThemeGtk):
5884         (WebCore::RenderThemeGtk::close):
5885         (WebCore::RenderThemeGtk::addIntrinsicMargins):
5886         (WebCore::RenderThemeGtk::supportsFocus):
5887         (WebCore::RenderThemeGtk::determineState):
5888         (WebCore::RenderThemeGtk::determineShadow):
5889         (WebCore::RenderThemeGtk::getThemeData):
5890         (WebCore::RenderThemeGtk::setCheckboxSize):
5891         (WebCore::RenderThemeGtk::paintCheckbox):
5892         (WebCore::RenderThemeGtk::setRadioSize):
5893         (WebCore::RenderThemeGtk::paintRadio):
5894         (WebCore::RenderThemeGtk::paintButton):
5895         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
5896         (WebCore::RenderThemeGtk::paintTextField):
5897         (WebCore::RenderThemeGtk::paintTextArea):
5898         (WebCore::RenderThemeGtk::adjustButtonStyle):
5899         (WebCore::RenderThemeGtk::systemFont):
5900         (WebCore::RenderThemeGtk::gtkButton):
5901         (WebCore::RenderThemeGtk::gtkCheckbox):
5902         (WebCore::RenderThemeGtk::gtkRadioButton):
5903         (WebCore::RenderThemeGtk::gtkWindowContainer):
5904         * platform/gtk/RenderThemeGtk.h: Added.
5905         * platform/gtk/ScrollViewGdk.cpp: Removed.
5906         * platform/gtk/ScrollViewGtk.cpp: Added.
5907         * platform/gtk/SearchPopupMenuGdk.cpp: Removed.
5908         * platform/gtk/SearchPopupMenuGtk.cpp: Added.
5909         * platform/gtk/SoundGdk.cpp: Removed.
5910         * platform/gtk/SoundGtk.cpp: Added.
5911         * platform/gtk/WheelEventGdk.cpp: Removed.
5912         * platform/gtk/WheelEventGtk.cpp: Added.
5913         * platform/gtk/WidgetGdk.cpp: Removed.
5914         * platform/gtk/WidgetGtk.cpp: Added.
5915         * platform/network/ResourceHandle.h:
5917 2007-09-23  Rob Buis  <buis@kde.org>
5919         Reviewed by Hyatt.
5921         http://bugs.webkit.org/show_bug.cgi?id=15025
5922         Background repeat css property is not inherited from parent if unspecified
5924         Don't let invalid url specification in background shorthand make
5925         the entire shorthand invalid.
5927         * css/CSSParser.cpp:
5928         (WebCore::CSSParser::parseBackgroundImage):
5929         (WebCore::CSSParser::parseBackgroundProperty):
5930         * css/CSSParser.h:
5932 2007-09-22  Adam Roben  <aroben@apple.com>
5934         Fix Bug 15251: REGRESSION: <input type=range> doesn't respond to form.reset() or setting input.value
5936         http://bugs.webkit.org/show_bug.cgi?id=15251
5937         <rdar://5498169>
5939         Reviewed by Maciej.
5941         Test: fast/forms/range-reset.html
5943         * html/HTMLInputElement.cpp:
5944         (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): <input
5945         type=range> should be storing its value separately from the value
5946         attribute, as do all of our variable-input input types.
5948 2007-09-21  Mark Rowe  <mrowe@apple.com>
5950         Build fix for non-Mac platforms after r25697.
5951         
5952         Rename Frame::cleanupPlatformScriptObjects to Frame::clearPlatformScriptObjects.
5954         * bridge/win/FrameWin.cpp:
5955         * page/gdk/FrameGdk.cpp:
5956         * page/qt/FrameQt.cpp:
5957         * platform/wx/TemporaryLinkStubs.cpp:
5959 2007-09-21  Adele Peterson  <adele@apple.com>
5961         Reviewed by Sam.
5963         Fix for <rdar://problem/5497357> REGRESSION: Safari doesn't show the month days on AirFrance reservation page
5965         Test: fast/dom/HTMLSelectElement/options-collection-set-string-length.html
5967         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::setLength):
5968           Convert the value to a number.  We already have code here to check if the value is not a number.
5969           This matches other browsers, which allow a string value to be used to set the length.
5971 2007-09-21  Timothy Hatcher  <timothy@apple.com>
5973         Reviewed by Darin.
5975         <rdar://problem/5491013> REGRESSION: -[WebView windowScriptObject] returns a dummy object or nil if a page hasn't loaded
5977         Calling -[WebView windowScriptObject] before the page loads would give you nil. This behavior didn't match Tiger.
5978         The API behavior in Tiger let you get the window script object once and keep ahold of it as long as you needed it.
5979         The window object would remain valid even after page loads. This change restores the Tiger behavior.
5981         <rdar://problem/5495790> NULL dereference crash beneath Bindings::RootObject::interpreter when saving Dashcode document
5983         The changes to WebScriptObject's _isSafeScript call also fixed the crash in Dashcode.
5985         * bindings/objc/WebScriptObject.mm:
5986         (-[WebScriptObject _setOriginRootObject:andRootObject:]): New method used to update the the root objects,
5987         so the WebScriptObject can still be used after a page load.
5988         (-[WebScriptObject _isSafeScript]): Call [self _rootObject] instead of accessing the data member directly.
5989         DOMNode has an override for the _rootObject method, and it can return 0 when _private->_rootObject
5990         is non-zero. We would return YES here when it wasn't safe and later crash with my modified layout tests.
5991         Checking _rootObject first prevents other calls sites from needing to check for a valid root object,
5992         this fixed the Dashcode crash.
5993         (-[WebScriptObject _imp]): Ditto.
5995         * bindings/objc/WebScriptObjectPrivate.h: Add _setOriginRootObject:andRootObject:.
5997         * loader/FrameLoader.cpp:
5998         (WebCore::FrameLoader::clear): Call the renamed clearScriptObjects function.
5999         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Some gratuitous code cleanup.
6001         * page/Frame.cpp:
6002         (WebCore::Frame::clearScriptObjects): Renamed cleanupScriptObject to clearScriptObjects.
6003         Call clearPlatformScriptObjects last so m_bindingRootObject is already NULL.
6004         (WebCore::Frame::windowScriptNPObject): Hold a JSLock before accessing the window. This
6005         change is unrelated to the bug, but should be fixed.
6007         * page/mac/FrameMac.mm:
6008         (WebCore::Frame::windowScriptObject): Return a script object even if the interpreter is NULL.
6009         This resotres the Tiger behavior of always being able to access the window object.
6010         (WebCore::Frame::clearPlatformScriptObjects): Keep the window script object around, and update
6011         the root objects for the window script object.
6013         * page/Frame.h: Rename cleanupScriptObject to clearScriptObjects.
6014         * page/FramePrivate.h: Use a RetainPtr for m_windowScriptObject.
6016 2007-09-21  Mike Fenton  <mike@staikos.net>
6018         Reviewed by George Staikos.
6020         Fix styled pen support by not clobbering QPen properties.
6022         * html/CanvasStyle.cpp:
6023         (WebCore::CanvasStyle::applyStrokeColor):
6024         (WebCore::CanvasStyle::applyFillColor):
6026 2007-09-21  Oliver Hunt  <oliver@apple.com>
6028         Reviewed by Tristan and Darin
6030         http://bugs.webkit.org/show_bug.cgi?id=15239
6031         <rdar://problem/5491955> REGRESSION (r25547): With Hanin IME, one cannot input characters into forms (15239)
6032         
6033         This problem was caused by the setComposition method failing to clear
6034         the composition markers in the presence of an empty string.  This would 
6035         result in the caret being locked within the 0 length bounds of the "composition"
6036         and so preventing basic keyboard interaction.
6038         * editing/Editor.cpp:
6039         (WebCore::Editor::setComposition):
6041 2007-09-21  Adele Peterson  <adele@apple.com>
6043         Reviewed by Tristan.
6045         Fix for <rdar://problem/5497346> "Check spelling when I click Send" crashes on stationery messages every time
6047         No test. I wasn't able to find a way to get this to occur with Safari or DumpRenderTree.
6049         * editing/Editor.cpp: (WebCore::Editor::advanceToNextMisspelling): Updated comment.
6050         * editing/htmlediting.cpp:
6051         (WebCore::firstEditablePositionAfterPositionInRoot): Only return the root position if its editable.
6052         (WebCore::maxDeepOffset): Added nil check & assert.
6054 2007-09-21  Anders Carlsson  <andersca@apple.com>
6056         Reviewed by Steve.
6058         <rdar://problem/5404339>
6059         Site redirects continuosly, starving UI thread, causing app to hang.
6060         
6061         Use GetQueueStatus to see if there are input messages in the queue that aren't being processed.
6062         If so, use a low-priority timer instead of PostMessage.
6063         
6064         * platform/win/SharedTimerWin.cpp:
6065         (WebCore::setSharedTimerFireTime):
6067 2007-09-22  Darin Adler  <darin@apple.com>
6069         Reviewed by Anders.
6071         - add QueryInterface capabilities to COMPtr
6073         * platform/win/COMPtr.h:
6074         (COMPtr::COMPtr): Added constructor that takes a Query tag and
6075         does an appropriate QueryInterface.
6076         (COMPtr::query): Added function to do a queryInterface.
6077         (COMPtr::copyQueryInterfaceRef): Added private helper used by
6078         both of the above. Note that when the query fails you get a 0,
6079         which is the same thing you get if a 0 pointer is passed in.
6081         * platform/win/FontCacheWin.cpp:
6082         (WebCore::FontCache::getFontLinkInterface): Convert to using
6083         the new query as a test case. Also eliminate the unnecessary
6084         second global variable and use COMPtr objects rather than just
6085         leaking references.
6087         * platform/win/WCDataObject.h: Removed unneeded include and
6088         using statements.
6090 2007-09-21  Anders Carlsson  <andersca@apple.com>
6092         Reviewed by Adam.
6094         <rdar://problem/5494790>
6095         clicking any link in the Flash regions at bananarepublic.com results in bad page
6097         Don't replace the frame contents, the Mac version doesn't do this.
6098         
6099         * plugins/win/PluginViewWin.cpp:
6100         (WebCore::PluginViewWin::performRequest):
6102 2007-09-21  Anders Carlsson  <andersca@apple.com>
6104         Reviewed by Darin.
6106         <rdar://problem/5496700>
6107         Repro crash loading http://www.tivo.com/whatistivo/tivohd/index.html
6109         Don't continue if the plug-in cancelled the stream.
6110                 
6111         * loader/win/NetscapePlugInStreamLoaderWin.cpp:
6112         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
6114 2007-09-21  Kevin Decker  <kdecker@apple.com>
6116         * platform/mac/SoftLinking.h: Build fix; added necessary #imports. 
6118 2007-09-21  Kevin Decker  <kdecker@apple.com>
6120         Reviewed by Darin Adler.
6122         * WebCore.xcodeproj/project.pbxproj: Added SoftLinking.h to the project.
6123         * platform/mac/SoftLinking.h: Contains a new macro; useful in helping to lazily load frameworks.
6125 2007-09-20  Ada Chan  <adachan@apple.com>
6127         <rdar://problem/5477240> Regression: Footer is too high in print preview
6128         Make computePageRectsForFrame() return the height of the page adjusted for margins.
6130         Reviewed by Steve.
6132         * bridge/win/FrameWin.cpp:
6133         (WebCore::computePageRectsForFrame):
6134         * bridge/win/FrameWin.h:
6136 2007-09-19  Kevin McCullough  <kmccullough@apple.com>
6138         Reviewed by Hyatt.
6140         - <rdar://problem/5101991> Avril Lavigne music player comes up in a window with scrollbars
6141         - Implementing missing scrollbar functionality to allow turning off scrollbars correctly.
6143         * platform/ScrollView.h:
6144         * platform/win/ScrollViewWin.cpp:
6145         (WebCore::ScrollView::ScrollViewPrivate::setAllowsScrolling):
6146         (WebCore::ScrollView::ScrollViewPrivate::allowsScrolling):
6147         (WebCore::ScrollView::updateScrollbars):
6148         (WebCore::ScrollView::setAllowsScrolling):
6149         (WebCore::ScrollView::allowsScrolling):
6151 2007-09-20  Brady Eidson  <beidson@apple.com>
6153         Reviewed by Dave Hyatt
6155         <rdar://problem/5245981> - No favicon shows up for cnet.com
6156         
6157         CNet's favicon has two images in it - a 32x32 white square, and a 16x16 image that is their actual icon
6158         Till now on Windows we've always gone straight for the first image in an icon for the favicon, now we
6159         actually do proper size matching
6161         * platform/graphics/BitmapImage.h:
6163         * platform/graphics/Image.h:
6164         (WebCore::Image::getHBITMAPOfSize): 
6165         (WebCore::Image::drawFrameMatchingSourceSize): Search through the frames of the image for the correct size
6167         * platform/graphics/win/ImageWin.cpp:
6168         (WebCore::BitmapImage::getHBITMAP):
6169         (WebCore::BitmapImage::getHBITMAPOfSize):
6170         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
6172 2007-09-20  Steve Falkenburg  <sfalken@apple.com>
6174         Reviewed by Brady.
6176         Call ascii() instead of utf8() from debug logging code to avoid threading
6177         issues associated w/ converting to UTF8.
6179         * loader/icon/IconDatabase.cpp:
6180         (WebCore::makeAllDirectories):
6181         (WebCore::IconDatabase::retainIconForPageURL):
6182         (WebCore::IconDatabase::releaseIconForPageURL):
6183         (WebCore::IconDatabase::setIconDataForIconURL):
6184         (WebCore::IconDatabase::setIconURLForPageURL):
6185         (WebCore::IconDatabase::loadDecisionForIconURL):
6186         (WebCore::IconDatabase::getOrCreatePageURLRecord):
6187         (WebCore::IconDatabase::iconDatabaseSyncThread):
6188         (WebCore::IconDatabase::performOpenInitialization):
6189         (WebCore::IconDatabase::checkIntegrity):
6190         (WebCore::IconDatabase::performURLImport):
6191         (WebCore::IconDatabase::readFromDatabase):
6192         (WebCore::IconDatabase::writeToDatabase):
6193         (WebCore::readySQLStatement):
6194         (WebCore::IconDatabase::setIconURLForPageURLInSQLDatabase):
6195         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
6196         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
6197         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
6198         (WebCore::IconDatabase::addIconURLToSQLDatabase):
6199         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
6200         (WebCore::IconDatabase::removeIconFromSQLDatabase):
6201         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
6203 2007-09-20  Mike Fenton  <mike@staikos.net>
6205         Reviewed by George Staikos.
6207         Implement gradients and more of canvas for Qt.  Style changes and some
6208         of the stroking fixes by George.
6210         * html/CanvasGradient.cpp:
6211         (WebCore::CanvasGradient::CanvasGradient):
6212         (WebCore::CanvasGradient::~CanvasGradient):
6213         (WebCore::CanvasGradient::addColorStop):
6214         (WebCore::CanvasGradient::platformShading):
6215         * html/CanvasGradient.h:
6216         * html/CanvasRenderingContext2D.cpp:
6217         (WebCore::CanvasRenderingContext2D::fill):
6218         (WebCore::CanvasRenderingContext2D::stroke):
6219         (WebCore::CanvasRenderingContext2D::fillRect):
6220         (WebCore::CanvasRenderingContext2D::applyFillPattern):
6222 2007-09-20  Rob Buis  <buis@kde.org>
6224         Reviewed by Mitz.
6226         http://bugs.webkit.org/show_bug.cgi?id=15235
6227         Options can not be removed from a Select element with OptGroup's using JavaScript
6228         <rdar://problem/5494123>
6230         Remove HTMLOptionElement children against the proper parent node.
6232         * html/HTMLSelectElement.cpp:
6233         (WebCore::HTMLSelectElement::remove):
6235 2007-09-19  John Sullivan  <sullivan@apple.com>
6237         Reviewed by Darin Adler.
6238         
6239         - WebCore part of speculative fix for <rdar://problem/5490627>, about crashes constructing a
6240           String using the values filled in by checkSpellingOfString()
6242         * editing/Editor.cpp:
6243         (WebCore::findFirstMisspellingInRange):
6244         initialize out parameters the way we do elsewhere; add many assertions for improper results
6245         from checkSpellingOfString(); don't create a String at all until we've checked all the ways
6246         that checkSpellingOfString() results could indicate invalid string, even the unexpected ones;
6247         as an optimization, don't construct a String at all when looping through to mark all instances.
6249 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6251         Reviewed by Adam.
6253         There is no need to have FTPDirectoryDocument stubs. We can
6254         compile FTPDirectoryDocument.cpp and FTPDirectoryTokenizer.cpp
6255         instead.
6257         * WebCore.pro:
6258         * platform/gdk/TemporaryLinkStubs.cpp:
6259         * platform/qt/TemporaryLinkStubs.cpp:
6261 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6263         Reviewed by Adam.
6265         Remove includes that are not needed.
6267         * platform/gdk/TemporaryLinkStubs.cpp:
6269 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6271         Reviewed by Adam.
6273         Move the Pasteboard stubs to PasteboardGdk.cpp.
6275         * WebCore.pro:
6276         * platform/gdk/PasteboardGdk.cpp: Added.
6277         (WebCore::Pasteboard::generalPasteboard):
6278         (WebCore::Pasteboard::writeSelection):
6279         (WebCore::Pasteboard::writeURL):
6280         (WebCore::Pasteboard::writeImage):
6281         (WebCore::Pasteboard::clear):
6282         (WebCore::Pasteboard::canSmartReplace):
6283         (WebCore::Pasteboard::documentFragment):
6284         (WebCore::Pasteboard::plainText):
6285         (WebCore::Pasteboard::Pasteboard):
6286         * platform/gdk/TemporaryLinkStubs.cpp:
6288 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6290         Reviewed by Adam.
6292         Move the Icon stubs to IconGdk.cpp
6294         * WebCore.pro:
6295         * platform/gdk/TemporaryLinkStubs.cpp:
6296         * platform/graphics/gdk/IconGdk.cpp: Added.
6297         (WebCore::Icon::Icon):
6298         (WebCore::Icon::~Icon):
6299         (WebCore::Icon::newIconForFile):
6301 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6303         Reviewed by Adam.
6305         Move the Font stubs to FontGdk.cpp
6307         * platform/gdk/FontGdk.cpp:
6308         (WebCore::Font::drawComplexText):
6309         (WebCore::Font::floatWidthForComplexText):
6310         (WebCore::Font::offsetForPositionForComplexText):
6311         (WebCore::Font::selectionRectForComplexText):
6312         * platform/gdk/TemporaryLinkStubs.cpp:
6314 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6316         Reviewed by Adam.
6318         Move the SearchPopupMenu stubs to SearchPopupMenuGdk.cpp
6320         * WebCore.pro:
6321         * platform/gdk/SearchPopupMenuGdk.cpp: Added.
6322         (WebCore::SearchPopupMenu::SearchPopupMenu):
6323         (WebCore::SearchPopupMenu::saveRecentSearches):
6324         (WebCore::SearchPopupMenu::loadRecentSearches):
6325         (WebCore::SearchPopupMenu::enabled):
6326         * platform/gdk/TemporaryLinkStubs.cpp:
6328 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6330         Reviewed by Adam.
6332         Move the ContextMenu and ContextMenuItem stubs to
6333         ContextMenuGdk.cpp and ContextMenuItemGdk.cpp.
6335         * WebCore.pro:
6336         * platform/gdk/ContextMenuGdk.cpp: Added.
6337         (WebCore::ContextMenu::ContextMenu):
6338         (WebCore::ContextMenu::~ContextMenu):
6339         (WebCore::ContextMenu::appendItem):
6340         (WebCore::ContextMenu::setPlatformDescription):
6341         (WebCore::ContextMenu::platformDescription):
6342         (WebCore::ContextMenu::releasePlatformDescription):
6343         * platform/gdk/ContextMenuItemGdk.cpp: Added.
6344         (WebCore::ContextMenuItem::ContextMenuItem):
6345         (WebCore::ContextMenuItem::~ContextMenuItem):
6346         (WebCore::ContextMenuItem::releasePlatformDescription):
6347         (WebCore::ContextMenuItem::type):
6348         (WebCore::ContextMenuItem::setType):
6349         (WebCore::ContextMenuItem::action):
6350         (WebCore::ContextMenuItem::setAction):
6351         (WebCore::ContextMenuItem::title):
6352         (WebCore::ContextMenuItem::setTitle):
6353         (WebCore::ContextMenuItem::platformSubMenu):
6354         (WebCore::ContextMenuItem::setSubMenu):
6355         (WebCore::ContextMenuItem::setChecked):
6356         * platform/gdk/TemporaryLinkStubs.cpp:
6358 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6360         Reviewed by Adam.
6362         Implement the WebCore::fileSize function using g_stat.
6364         * platform/gdk/FileSystemGdk.cpp:
6365         (WebCore::fileSize):
6366         * platform/gdk/TemporaryLinkStubs.cpp:
6368 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6370         Reviewed by Adam.
6372         Move the ResourceHandle stubs from TemporaryLinkStubs
6373         to the ResourceHandleCurl.cpp file. This affects the
6374         Gtk+ and wx port as they share the curl implementation.
6377         * platform/gdk/TemporaryLinkStubs.cpp:
6378         * platform/network/curl/ResourceHandleCurl.cpp:
6379         (WebCore::ResourceHandle::willLoadFromCache):
6380         (WebCore::ResourceHandle::loadsBlocked):
6381         * platform/wx/TemporaryLinkStubs.cpp:
6383 2007-09-17  Holger Hans Peter Freyther  <zecke@selfish.org>
6385         Reviewed by Mark.
6387         Take http://bugs.webkit.org/show_bug.cgi?id=15221 into account
6388         and change the variable names from nameSystem to systemName and
6389         change the name of the function to stringByAdoptingFileSystemRepresentation.
6391         * platform/gdk/FileChooserGdk.cpp:
6392         (WebCore::stringByAdoptingFileSystemRepresentation):
6393         (WebCore::FileChooser::basenameForWidth):
6395 2007-09-19  Sam Weinig  <sam@webkit.org>
6397         Reviewed by Geoff Garen.
6399         Fix <rdar://problem/5492141> Assertion in isdigit() on windows Safari
6401         Test: fast/css/hexColor-isDigit-assert.html
6403         * platform/DeprecatedString.cpp:
6404         (WebCore::isCharacterAllowedInBase): Check that the character is ascii 
6405         to avoid an assertions on Windows.
6407 2007-09-19  Anders Carlsson  <andersca@apple.com>
6409         Reviewed by Geoff.
6411         <rdar://problem/5489879>
6412         Combination of real player with high connection quality in selecting player makes Safari quit.
6413         
6414         Prevent the Real Player plug-in from calling the window proc recursively.
6415         
6416         * plugins/win/PluginViewWin.cpp:
6417         (WebCore::PluginViewWin::wndProc):
6418         (WebCore::PluginViewWin::setNPWindowRect):
6419         (WebCore::PluginViewWin::determineQuirks):
6420         (WebCore::PluginViewWin::PluginViewWin):
6421         * plugins/win/PluginViewWin.h:
6422         (WebCore::):
6424 2007-09-18  Adele Peterson  <adele@apple.com>
6426         Reviewed by Maciej.
6428         Fix for <rdar://problem/5472062> -webkit-user-select: none makes selection difficult
6429         and for <rdar://problem/5472056> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
6431         Tests:
6433         This fix has a few steps:
6434         1) Removes the ignore value for the -webkit-user-select property.  We now decide when to prevent selection from starting by calling canStartSelection on the node.
6435         2) Implements canStartSelection which returns false for all elements that used to have -webkit-user-select:ignore set, true for content editable nodes, 
6436            and walks up the tree to ask the parent before allowing selection to be started on any other nodes.
6437         3) We used to disallow selection from starting within -webkit-user-select:none blocks, but now we only use canStartSelection for that.  This will allow easy selections
6438            in cases like iChat where there's a mix of selectable and non-selectable content.
6439         4) Makes -webkit-user-select inherited.  After removing the "ignore" value, -webkit-user-select would behave like it was inherited anyways since we already allowed the text value to override the none value.
6442         * css/html4.css: Removed all usage of -webkit-user-select: ignore.  This is now handled internally with canStartSelection().
6443           Now -webkit-user-select won't be unintentionally overridden by nodes that don't want to allow selection to be started, but do want to honor the -webkit-user-select to
6444           determine whether or not selection is allowed at all.
6446         * editing/SelectionController.cpp: (WebCore::SelectionController::selectAll):
6447           Don't try to determine whether selection is allowed inside the root node here.  VisiblePosition and Selection creation will keep Selection endpoints out of -webkit-user-select:none regions.
6448         
6449         * dom/Node.h:
6450         * dom/Node.cpp: (WebCore::Node::canStartSelection): Added. Always allows selection to be started in a content editable node.  If there's a parent, ask the parent if starting a selection is allowed.
6451           If there's no parent, default to allowing selection.
6452         * html/HTMLAnchorElement.h:
6453         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::canStartSelection): Added. If its not a link, then calls the base class. Disallows selection for non-editable links.
6454           Allows selection for editable links.
6455           This logic used to be done in CSSStyleSelector by changing the user-select property.
6456         * html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::canStartSelection): Added. Disallows selection from starting in buttons.
6457         * html/HTMLImageElement.h: (WebCore::HTMLImageElement::canStartSelection): Added. Disallows selection from starting in images.
6458         * html/HTMLInputElement.h:
6459         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::canStartSelection): Added. Disallows selection from anything that's not a text field.  Text fields call up to the base class.
6460           When they're editable, text controls will always be selectable because of the case for content editable content. Otherwise, they'll respect their parent element's decision about starting a selection. 
6461         * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::canStartSelection): Added. Disallows selection from starting in popup buttons.
6463         * page/EventHandler.cpp:
6464         (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect instead of the ambiguously named shouldSelect().
6465         (WebCore::EventHandler::handleMousePressEventTripleClick): ditto.
6466         (WebCore::EventHandler::handleMousePressEventSingleClick): ditto.
6467         (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect.
6468         (WebCore::EventHandler::selectCursor): Paint an ibeam in any region that allows you to click to create a selection.
6469         (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and calls canStartSelection instead of checking the user-select property.
6470         (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to canMouseDownStartSelect because of 12823, even though it seems strange that we would fire the selectStart event here.
6471         * page/EventHandler.h:
6472         * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): Calls canStartSelection instead of checking the user-select property to decide when to prevent selection creation. 
6473         * rendering/RenderObject.cpp: (WebCore::RenderObject::draggableNode): ditto.
6474         * rendering/RenderObject.h: Removed helper methods that are no longer needed.
6476         * rendering/RenderStyle.h: Made userSelect inherited.  After removing the "ignore" value, -webkit-user-select would behave like it was inherited 
6477           anyways since we already allowed the text value to override the none value.
6478           Removed the SELECT_AUTO and SELECT_IGNORE values since they're no longer used.
6479         (WebCore::):
6480         (WebCore::RenderStyle::userSelect):
6481         (WebCore::RenderStyle::setUserSelect):
6482         (WebCore::RenderStyle::initialUserSelect):
6483         * rendering/RenderStyle.cpp:
6484         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
6485         (WebCore::StyleRareNonInheritedData::operator==):
6486         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
6487         (WebCore::StyleRareInheritedData::operator==):
6488         (WebCore::RenderStyle::diff):
6490         * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Remove case for SELECT_AUTO and SELECT_IGNORE
6491         * css/CSSStyleSelector.cpp:
6492         (WebCore::CSSStyleSelector::adjustRenderStyle):  Remove adjustment for links.  This is now handled in HTMLAnchorElement::canStartSelection.
6493         (WebCore::CSSStyleSelector::applyProperty): Map CSS_VAL_AUTO to SELECT_TEXT.  Remove CSS_VAL_IGNORE.
6495 2007-09-18  Timothy Hatcher  <timothy@apple.com>
6497         Reviewed by Darin.
6499         <rdar://problem/5478250> REGRESSION: After pasting text copied from Mail subject and typing return, the cursor disappears because of negative left margin
6501         When pasting text from the Mail subject line, the RTF pasteboard contains text that has a first line negative indent along with a
6502         paragraph indent that has a counteracting positive indent. This results in the first line being flush left justified, and the remaining
6503         wrapped lines being indented. When this is converted to a DOM fragment, AppKit makes a block element with a margin-left and a negative
6504         text-indent that matches the RTF. So far this is all correct behavior.
6506         When this content is pasted on the line of an existing paragraph that has content, ReplaceSelectionCommand will decided to merge the paragraphs.
6507         This will convert the block element to a style span that has all inherited style properties. These inherited properties will still contain block
6508         properties that have no affect on inline elements. These block properties will hang around on the style span and will get cloned to new block
6509         elements if the user hit return on that line. The new block elements would then have the text-indent but not the margin-left, so the text would be
6510         hidden off the left edge of the page.
6512         In the end, we should never hang on to block-only properties in our style spans. This cuts out meaningless properties and prevents properties
6513         from magically affecting blocks later if the style is cloned for a new block element during a future editing operation.
6515         * editing/ReplaceSelectionCommand.cpp:
6516         (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Remove any inherited block properties that are now in the span's style.
6517         * editing/markup.cpp:
6518         (WebCore::createMarkup): Ditto.
6520 2007-09-18  Dave Hyatt  <hyatt@apple.com>
6522         Land a UnicodeRange helper class (ported from Mozilla) that we are going to use to prepare for making
6523         language-sensitive fallback choices for fonts.
6525         Reviewed by olliej
6527         * WebCore.vcproj/WebCore.vcproj:
6528         * platform/UnicodeRange.cpp: Added.
6529         (WebCore::):
6530         (WebCore::findCharUnicodeRange):
6531         (WebCore::langGroupFromUnicodeRange):
6532         * platform/UnicodeRange.h: Added.
6534 2007-09-18  Dave Hyatt  <hyatt@apple.com>
6536         Fix a bug in my previous patch.  Make sure to select the old font back into the HDC and to also release the HDC.
6537        
6538         Reviewed by aroben
6540         * platform/win/FontCacheWin.cpp:
6541         (WebCore::FontCache::getFontDataForCharacters):
6543 2007-09-18  Sam Weinig  <sam@webkit.org>
6545         Reviewed by Darin.
6547         Patch for <rdar://problem/5488478> Safari crashes when passing null to Range.insertNode()
6549         Test: fast/dom/Range-insertNode-crash.html
6551         * dom/Range.cpp:
6552         (WebCore::Range::insertNode): Null check the passed in node to insert.
6554 2007-09-18  Mike Fenton  <mike@staikos.net>
6556         Reviewed by George Staikos.
6558         Retain the pen properties when changing one aspect of the pen.
6560         * html/CanvasStyle.cpp:
6561         (WebCore::CanvasStyle::applyStrokeColor):
6563 2007-09-18  Mike Fenton  <mike@staikos.net>
6565         Reviewed by George Staikos.
6567         Make <canvas> work in more cases by restarting the painter after we
6568         finish painting, and restoring the pen and opacity.
6570         * html/HTMLCanvasElement.cpp:
6571         (WebCore::HTMLCanvasElement::paint):
6573 2007-09-18  Mitz Pettel  <mitz@webkit.org>
6575         Reviewed by Darin.
6577         - fix http://bugs.webkit.org/show_bug.cgi?id=15169
6578           Freeze on Google maps using the "Dig a hole" tool
6579           <rdar://problem/5477414>
6581         Test: fast/dom/CSSStyleDeclaration-empty-string-property.html
6583         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
6584         (WebCore::cssPropertyName): Added an early return if the property name
6585         is the empty string, thus avoiding a loop that is not prepared for that
6586         case.
6588 2007-09-19  Darin Adler <darin@apple.com>
6590         Reviewed by Adam.
6592         - fix <rdar://problem/5415734> <select> draws incorrectly if size of menu options
6593           is changed after it pops up once
6595         * platform/win/PopupMenuWin.cpp:
6596         (WebCore::PopupMenu::PopupMenu): Removed unnecessary initialization of IntRect.
6597         (WebCore::PopupMenu::show): Check that the clientRect is empty instead of checking
6598         the entire windowRect -- this fixes a bug where we pop up a tiny 2-pixel high black
6599         box when you click on an empty menu.
6600         (WebCore::PopupMenu::visibleItems): Base the number of items on the client rect
6601         instead of the window rect. Rounding down means this would have worked anyway, but
6602         it's more correct to do it this way.
6603         (WebCore::PopupMenu::paint): Deallocate the bitmap so it gets reallocated if it
6604         has the wrong width or height (or if GetObject returns false, which should not
6605         happen in practice).
6607 2007-09-18  David Harrison  <harrison@apple.com>
6609         Reviewed by Darin.
6611         <rdar://problem/5486974> REGRESSION(r25373): 1/4 second to doubleclick word in GMail when using Kotoeri IM, also slow in other IMs (15163)
6613         Updated tests:
6614         * fast/dom/Window/window-xy-properties-expected.txt:
6615         * fast/dom/plugin-attributes-enumeration-expected.txt:
6616         * fast/events/onerror-bubbling-expected.txt:
6617         * fast/events/related-target-expected.txt:
6618         * fast/forms/select-namedItem-expected.txt:
6619         * fast/table/incomplete-table-in-fragment-2-expected.txt:
6620         * fast/table/incomplete-table-in-fragment-hang-expected.txt:
6621         * fast/table/large-rowspan-crash-expected.txt:
6622         * plugins/embed-attributes-setting-expected.txt:
6624         * editing/TextIterator.cpp:
6625         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
6626         Avoid VisiblePosition check if the current node is a descendant
6627         of the start container and the start offset was 0. In that case
6628         we already had enough context to correctly decide whether to emit
6629         a newline after a preceding block. We chose not to emit
6630         (m_haveEmitted is false), so don't second guess that.
6631             
6632         (WebCore::TextIterator::exitNode):
6633         Changed some comments.
6635 2007-09-17  Geoffrey Garen  <ggaren@apple.com>
6637         Reviewed by Darin Adler.
6639         Speculative fix for <rdar://problem/5479443> REGRESSION: Hang due to 
6640         infinite JS recursion on close @ engadget.com (onunload-based ad)
6641         
6642         If page is NULL, shouldInterruptScript now returns true, so you can't 
6643         get stuck in a state in which a script executes forever without putting 
6644         up a UI to ask if it should stop.
6646         * bindings/js/kjs_binding.cpp:
6647         (KJS::ScriptInterpreter::shouldInterruptScript):
6649 2007-09-17  Dave Hyatt  <hyatt@apple.com>
6651         Fix for bug 14743, missing glyphs on many international sites because of MLang's tiny cache.
6652         
6653         Bypass Mlang's cache entirely.  Get the mapped font from MLang, obtain the font name, and then feed
6654         the name back into our own system so that it gets created and cached again without MLang being involved.
6655         Then free up the font obtained from MLang immediately so that its cache just remains empty.
6656            
6657         Reviewed by aroben
6659         * platform/FontData.h:
6660         (WebCore::FontData::isSystemFont):
6661         * platform/win/FontCacheWin.cpp:
6662         (WebCore::FontCache::getFontDataForCharacters):
6663         * platform/win/FontDataWin.cpp:
6664         (WebCore::FontData::platformInit):
6665         (WebCore::FontData::platformDestroy):
6666         * platform/win/UniscribeController.cpp:
6667         (WebCore::UniscribeController::shapeAndPlaceItem):
6668         
6669 2007-09-17  Adam Roben  <aroben@apple.com>
6671         Fix <rdar://5423441> Should get focus ring color from SafariTheme
6673         Reviewed by Hyatt.
6675         No regression test possible.
6677         * WebCore.vcproj/WebCore.vcproj: Added ColorSafari.cpp.
6678         * platform/graphics/win/ColorSafari.cpp: Added.
6679         (WebCore::makeRGBAFromCGColor): Added.
6680         (WebCore::focusRingColor): Added. Gets the focus ring color from
6681         SafariTheme if SafariTheme has support for it.
6682         (WebCore::setFocusRingColorChangeFunction): Added.
6683         * platform/win/TemporaryLinkStubs.cpp: Removed focus ring color
6684         functions.
6686 2007-09-17  Anders Carlsson  <andersca@apple.com>
6688         Fix Windows build.
6690         * WebCore.vcproj/WebCore.vcproj:
6691         * loader/NetscapePlugInStreamLoader.h:
6693 2007-09-17  Anders Carlsson  <andersca@apple.com>
6695         Fix Mac build.
6696         
6697         * loader/NetscapePlugInStreamLoader.cpp:
6698         * loader/NetscapePlugInStreamLoader.h:
6699         * loader/win/NetscapePlugInStreamLoaderWin.cpp: Copied from loader/NetscapePlugInStreamLoader.cpp.
6701 2007-09-17  Anders Carlsson  <andersca@apple.com>
6703         Reviewed by Adam.
6705         <rdar://problem/5483346>
6706         crash at vw.com WebCore::PluginViewWin::disconnectStream.
6707         
6708         The following events would lead to this crash:
6709         
6710         1. a plug-in stream finishes loading and calls NPP_DestroyStream.
6711         2. the DestroyStream handler calls NPN_Evaluate, submitting a form through JavaScript.
6712         3. A new page is going to be loaded and DocumentLoader::stopLoading is called.
6713         4. DocumentLoader::stopLoading will stop all loader, including the one that is done loading!
6714         
6715         The fix is to port NetscapePluginStreamLoader over from the Mac code and use it instead. This fixes the crash
6716         because it disassociates the stream loader with the document loader _before_ calling NPP_DestroyStream, whereas
6717         SubresourceLoader does this _after_ calling NPP_DestroyStream. 
6718         
6719         * loader/NetscapePlugInStreamLoader.cpp:
6720         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
6721         (WebCore::NetscapePlugInStreamLoader::~NetscapePlugInStreamLoader):
6722         (WebCore::NetscapePlugInStreamLoader::create):
6723         (WebCore::NetscapePlugInStreamLoader::isDone):
6724         (WebCore::NetscapePlugInStreamLoader::releaseResources):
6725         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
6726         (WebCore::NetscapePlugInStreamLoader::didReceiveData):
6727         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
6728         (WebCore::NetscapePlugInStreamLoader::didFail):
6729         (WebCore::NetscapePlugInStreamLoader::didCancel):
6730         * loader/NetscapePlugInStreamLoader.h:
6731         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
6732         * plugins/win/PluginStreamWin.cpp:
6733         (WebCore::PluginStreamWin::start):
6734         (WebCore::PluginStreamWin::didReceiveResponse):
6735         (WebCore::PluginStreamWin::didReceiveData):
6736         (WebCore::PluginStreamWin::didFail):
6737         (WebCore::PluginStreamWin::didFinishLoading):
6738         * plugins/win/PluginStreamWin.h:
6739         * plugins/win/PluginViewWin.cpp:
6740         (WebCore::PluginViewWin::load):
6742 2007-09-17  Anders Carlsson  <andersca@apple.com>
6744         Reviewed by Adam.
6746         <rdar://problem/5483839>
6747         Crash loading http://www.microsoft.com if Silverlight 1.0 is installed.
6748         
6749         Work around a problem in our NPRuntime implementation by never unloading the silverlight plug-in dll.
6750         
6751         * plugins/win/PluginViewWin.cpp:
6752         (WebCore::PluginViewWin::~PluginViewWin):
6753         (WebCore::PluginViewWin::determineQuirks):
6754         * plugins/win/PluginViewWin.h:
6755         (WebCore::):
6757 2007-09-17  Brady Eidson  <beidson@apple.com>
6759         Reviewed by John Sullivan
6761         Fix for http://bugs.webkit.org/show_bug.cgi?id=15178
6762         and
6763         <rdar://problem/5474001>
6765         The stress test proves that this was an overzealous ASSERT.  It is very possible to mark an icon
6766         for addition to the on-disk database and then mark it for removal before it is ever written out.  
6767         This is not an error and was already handled gracefully
6769         * loader/icon/IconDatabase.cpp:
6770         (WebCore::IconDatabase::removeIconFromSQLDatabase): Don't ASSERT of log if the icon wasn't on disk
6772 2007-09-17  Brady Eidson  <beidson@apple.com>
6774         Reviewed by Oliver
6776         <rdar://problem/5487048> - ASSERT in stress test in IconDatabase
6778         If a PageURLRecord went away, it never clears its URL from the IconRecord it retained.
6780         * loader/icon/PageURLRecord.cpp:
6781         (WebCore::PageURLRecord::~PageURLRecord): Set the icon record to 0, clearing the page url
6782         * loader/icon/PageURLRecord.h: Add the destructor
6784 2007-09-17  Antti Koivisto  <antti@apple.com>
6786         Reviewed by Darin.
6787         
6788         Fix <rdar://problem/5480050>
6789         Leopard9A551 with Dashcode 112: Dashcode crash when dragging image into canvas.
6790         
6791         If @import stylesheet was modified through CSS DOM style selector would not get updated. This
6792         could lead to crashes.
6794         Test: fast/css/import-style-update.html
6796         * css/CSSStyleSheet.cpp:
6797         (WebCore::CSSStyleSheet::styleSheetChanged):
6799 2007-09-17  Anders Carlsson  <andersca@apple.com>
6801         Reviewed by Adam.
6803         <rdar://problem/5421997>
6804         http://bugs.webkit.org/show_bug.cgi?id=14247
6805         Display problem with Flash - image does not stop changing
6806         
6807         Port the manual load code over from the Mac version.
6809         * plugins/win/PluginDatabaseWin.cpp:
6810         (WebCore::PluginDatabaseWin::createPluginView):
6811         * plugins/win/PluginDatabaseWin.h:
6812         Add load manually parameter.
6813         
6814         * plugins/win/PluginStreamWin.cpp:
6815         (WebCore::PluginStreamWin::stop):
6816         If we're loading manually, cancel the main resource load.
6817          
6818         (WebCore::PluginStreamWin::destroyStream):
6819         Don't disconnect the stream if we're loading manually.
6820         
6821         * plugins/win/PluginViewWin.cpp:
6822         (WebCore::PluginViewWin::setFrameGeometry):
6823         Always call updateWindow()
6824         
6825         (WebCore::PluginViewWin::PluginViewWin):
6826         Initialize loadManually.
6827         
6828         (WebCore::PluginViewWin::init):
6829         Don't set the width and height of the window here since it will make the plug-in HWND show briefly
6830         before it's been positioned.
6831         
6832         (WebCore::PluginViewWin::didReceiveResponse):
6833         Create the manual stream.
6834         
6835         (WebCore::PluginViewWin::didReceiveData):
6836         (WebCore::PluginViewWin::didFinishLoading):
6837         (WebCore::PluginViewWin::didFail):
6838         Call through to the manual stream.
6839         
6840         * plugins/win/PluginViewWin.h:
6842 2007-09-16  Sam Weinig  <sam@webkit.org>
6844         Reviewed by Maciej.
6846         Fix for http://bugs.webkit.org/show_bug.cgi?id=14693
6847         document.width/height doesn't force layout
6849         Test: fast/dom/document-width-height-force-layout.html
6851         * html/HTMLDocument.cpp:
6852         (WebCore::HTMLDocument::width): Force layout.
6853         (WebCore::HTMLDocument::height): ditto.
6854         * html/HTMLDocument.h:
6856 2007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6858         Reviewed by Mark.
6860         Convert the filenames from WebCore::String to the filesystem encoding
6861         and vice versa using g_filename_{from,to}_utf8 functions. Also add the needed NULL
6862         checks for the return values where glib and gtk+ can return NULL.
6864         * platform/gdk/FileChooserGdk.cpp:
6865         (WebCore::convertToStringByAdoptingTheFilesystemRepresentation):
6866         (WebCore::FileChooser::openFileChooser):
6867         (WebCore::FileChooser::basenameForWidth):
6869 2007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6871         Reviewed by Mark.
6873         Use the new WebCore::String::fromUTF8 function to create
6874         the labels.
6876         * platform/gdk/LocalizedStringsGdk.cpp:
6877         (WebCore::submitButtonDefaultLabel):
6878         (WebCore::inputElementAltText):
6879         (WebCore::resetButtonDefaultLabel):
6880         (WebCore::searchableIndexIntroduction):
6881         (WebCore::fileButtonChooseFileLabel):
6882         (WebCore::fileButtonNoFileSelectedLabel):
6883         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
6884         (WebCore::contextMenuItemTagDownloadLinkToDisk):
6885         (WebCore::contextMenuItemTagCopyLinkToClipboard):
6886         (WebCore::contextMenuItemTagOpenImageInNewWindow):
6887         (WebCore::contextMenuItemTagDownloadImageToDisk):
6888         (WebCore::contextMenuItemTagCopyImageToClipboard):
6889         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
6890         (WebCore::contextMenuItemTagCopy):
6891         (WebCore::contextMenuItemTagGoBack):
6892         (WebCore::contextMenuItemTagGoForward):
6893         (WebCore::contextMenuItemTagStop):
6894         (WebCore::contextMenuItemTagReload):
6895         (WebCore::contextMenuItemTagCut):
6896         (WebCore::contextMenuItemTagPaste):
6897         (WebCore::contextMenuItemTagNoGuessesFound):
6898         (WebCore::contextMenuItemTagIgnoreSpelling):
6899         (WebCore::contextMenuItemTagLearnSpelling):
6900         (WebCore::contextMenuItemTagSearchWeb):
6901         (WebCore::contextMenuItemTagLookUpInDictionary):
6902         (WebCore::contextMenuItemTagOpenLink):
6903         (WebCore::contextMenuItemTagIgnoreGrammar):
6904         (WebCore::contextMenuItemTagSpellingMenu):
6905         (WebCore::contextMenuItemTagShowSpellingPanel):
6906         (WebCore::contextMenuItemTagCheckSpelling):
6907         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
6908         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
6909         (WebCore::contextMenuItemTagFontMenu):
6910         (WebCore::contextMenuItemTagBold):
6911         (WebCore::contextMenuItemTagItalic):
6912         (WebCore::contextMenuItemTagUnderline):
6913         (WebCore::contextMenuItemTagOutline):
6914         (WebCore::contextMenuItemTagWritingDirectionMenu):
6915         (WebCore::contextMenuItemTagDefaultDirection):
6916         (WebCore::contextMenuItemTagLeftToRight):
6917         (WebCore::contextMenuItemTagRightToLeft):
6918         (WebCore::contextMenuItemTagInspectElement):
6919         (WebCore::searchMenuNoRecentSearchesText):
6920         (WebCore::searchMenuRecentSearchesText):
6921         (WebCore::searchMenuClearRecentSearchesText):
6923 2007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6925         Reviewed by Mark.
6927         Add WebCore::String::fromUTF8 to convert from UTF-8
6928         to a WebCore::String. This is meant to be used by
6929         the Gtk+ port and the signature and implementation
6930         is similiar to the one of DeprecatedString.
6932         * platform/PlatformString.h:
6933         * platform/String.cpp:
6934         (WebCore::String::fromUTF8):
6936 2007-09-13  Holger Hans Peter Freyther  <zecke@selfish.org>
6938         Reviewed by Anders.
6940         Implement the fileExists and deleteFile functions
6941         using glib.
6943         * WebCore.pro:
6944         * platform/gdk/FileSystemGdk.cpp: Added.
6945         (WebCore::fileExists):
6946         * platform/gdk/TemporaryLinkStubs.cpp:
6948 2007-09-16  David Harrison  <harrison@apple.com>
6950         Reviewed by Darin.
6952         <rdar://problem/5472125> REGRESSION (9A535-9A548): No VO cursor shown when navigating in a mail message body
6954         The problem was that the visible units code was mishandling non-editable content, generating null
6955         VisiblePositions instead of the actual boundary VisiblePositions.
6956         
6957         Updated tests:
6958         * fast/dom/Window/window-xy-properties-expected.txt:
6959         * fast/dom/plugin-attributes-enumeration-expected.txt:
6960         * fast/events/onerror-bubbling-expected.txt:
6961         * fast/events/related-target-expected.txt:
6962         * fast/forms/select-namedItem-expected.txt:
6963         * fast/table/incomplete-table-in-fragment-2-expected.txt:
6964         * fast/table/incomplete-table-in-fragment-hang-expected.txt:
6965         * fast/table/large-rowspan-crash-expected.txt:
6966         * plugins/embed-attributes-setting-expected.txt:
6967        
6968         Source Changes:
6969         * editing/VisiblePosition.cpp:
6970         (WebCore::VisiblePosition::next):
6971         (WebCore::VisiblePosition::previous):
6972         (WebCore::VisiblePosition::honorEditableBoundaryAtOrBefore):
6973         (WebCore::VisiblePosition::honorEditableBoundaryAtOrAfter):
6974         Rename firstEditablePositionAtOrAfter to honorEditableBoundaryAtOrAfter.
6975         Rename firstEditablePositionAtOrBefore to honorEditableBoundaryAtOrBefore.
6976         Changed these two functions to handle non-editable positions.
6977         
6978         * editing/VisiblePosition.h:
6979         * editing/visible_units.cpp:
6980         (WebCore::previousWordPosition):
6981         (WebCore::nextWordPosition):
6982         (WebCore::positionAvoidingFirstPositionInTable):
6983         (WebCore::startPositionForLine):
6984         (WebCore::startOfLine):
6985         (WebCore::endOfLine):
6986         (WebCore::previousSentencePosition):
6987         (WebCore::nextSentencePosition):
6988         Rename firstEditablePositionAtOrAfter to honorEditableBoundaryAtOrAfter.
6989         Rename firstEditablePositionAtOrBefore to honorEditableBoundaryAtOrBefore.
6990         Also, startOfLine() now calls positionAvoidingFirstPositionInTable() in the empty block early return case.
6991         positionAvoidingFirstPositionInTable() was the logic startOfLine() used in the normal case. Now in a reusable function.
6993 2007-09-14  Oliver Hunt  <oliver@apple.com>
6995         Reviewed by Adam.
6997         Mac doesn't have any kind of not implemented macro, so we'll actually implement
6998         fileSize.
7000         * platform/mac/FileSystemMac.mm:
7001         (WebCore::fileSize):
7003 2007-09-14  Timothy Hatcher  <timothy@apple.com>
7005         Initialize m_dialogArguments to 0. Fixes the newly crashing layout tests.
7007         * bindings/js/kjs_window.cpp:
7008         (KJS::WindowPrivate::WindowPrivate):
7010 2007-09-14  Oliver Hunt  <oliver@apple.com>
7012         Reviewed by Brady, John H.
7014         <rdar://problem/5483632> File system operation wrappers are unimplemented on windows
7015         
7016         Implement Windows versions of fileExists and deleteFile. 
7017         Also corrects fileSize to use a 64-bit version of stat.
7019         * platform/win/FileSystemWin.cpp:
7020         (WebCore::fileSize):  
7021           Renamed argument to be more consistent with others.
7022           And converted to _stat32i64 to allow 64-bit filesizes
7023         (WebCore::fileExists):
7024         (WebCore::deleteFile):
7025         * platform/win/TemporaryLinkStubs.cpp:
7027 2007-09-14  Oliver Hunt  <oliver@apple.com>
7029         Reviewed by Sam and Geoff.
7031         <rdar://problem/5333272> Cannot upload files when path contains 
7032         non-ascii/multibyte characters
7034         We can't use _stat to determine file size on Windows as it may not 
7035         correctly handle multibyte characters, so we have to use _wstat.
7036         
7037         In deference to the fact that we may one day use the FormDataStreamCFNet.cpp
7038         on Mac i've wrapped the call to _wstat with a generic fileSize
7039         method in FileSystem.h
7041         * WebCore.vcproj/WebCore.vcproj:
7042         * platform/FileSystem.h:
7043         * platform/network/cf/FormDataStreamCFNet.cpp:
7044         * platform/win/FileSystemWin.cpp: Added.
7045         (WebCore::setHTTPBody):
7046         * platform/gdk/TemporaryLinkStubs.cpp:
7047         * platform/mac/FileSystemMac.mm:
7048         (WebCore::fileSize):
7049         * platform/qt/TemporaryLinkStubs.cpp:
7051 2007-09-14  Timothy Hatcher  <timothy@apple.com>
7053         Reviewed by Sam.
7055         <rdar://problem/5472970> REGRESSION (r24276): TinyMCE popups show an empty window with no content
7057         Accessing the document of a window before the load finished would cause the window
7058         object to hold onto the initial empty document, and never switch over to the real document
7059         once the load finished. This regression was caused by r24276 which added a check to prevent
7060         clearing the window object when the load finished. The absence of this clear allowed the
7061         dialogArguments set with showModalDialog to persist on the window after the load. However,
7062         not clearing the window would keep other properties (and the empty document object) around.
7064         So the fix is to store away the dialog arguments that were passed to showModalDialog and
7065         put them back on the window object in the dialogArguments property each time
7066         the window is cleared.
7068         * bindings/js/kjs_window.cpp:
7069         (KJS::createWindow): No longer put dialogArguments on the window here.
7070         (KJS::showModalDialog): Put dialogArguments on the window and call
7071         setDialogArgumentsAndReturnValueSlot to remember the arguments.
7072         (KJS::Window::clear): Put m_dialogArguments back on the window as dialogArguments.
7073         (KJS::WindowFunc::callAsFunction): Call the new setDialogArgumentsAndReturnValue.
7074         (KJS::Window::setDialogArgumentsAndReturnValue): Store the arguments in m_dialogArguments.
7075         * bindings/js/kjs_window.h: Rename setReturnValueSlot to setDialogArgumentsAndReturnValueSlot.
7076         * manual-tests/modal-dialog-arguments.html: Confirmed that this test still passes.
7078         Reverted r24276 which was all the changes in FrameLoader.cpp and FrameLoader.h.
7080         * loader/FrameLoader.cpp:
7081         (WebCore::FrameLoader::FrameLoader): Remove m_shouldClearWindowProperties.
7082         (WebCore::FrameLoader::createWindow): Remove the call to setShouldClearWindowProperties.
7083         (WebCore::FrameLoader::clear): No longer check m_shouldClearWindowProperties, clear the
7084         window whenever clearWindowProperties is set.
7085         (WebCore::FrameLoader::begin): Remove m_shouldClearWindowProperties.
7086         (WebCore::FrameLoader::open): Ditto.
7087         * loader/FrameLoader.h: Remove m_shouldClearWindowProperties.
7089 2007-09-14  Brady Eidson  <beidson@apple.com>
7091         How about a build fix that works on *all* platforms?
7093         * platform/Threading.h:
7094         (WebCore::initializeThreading):
7096 2007-09-14  Brady Eidson  <beidson@apple.com>
7098         Roll out my previous build fix and just make the stupid thing inline
7099         (I knew there was something easier but oh boy, no coffee yet... weinig?)
7101 2007-09-14  Brady Eidson  <beidson@apple.com>
7103         Rubberstamped by Mark Rowe
7105         Add the logging channel I just created to the initialize list on Mac
7107         * platform/mac/LoggingMac.mm:
7108         (WebCore::InitializeLoggingChannelsIfNecessary):
7110 2007-09-14  Brady Eidson  <beidson@apple.com>
7112         Build fix
7114         That method can't go in the header, apparently
7116         * platform/Threading.h:
7117         * platform/gdk/TemporaryLinkStubs.cpp:
7118         (WebCore::initializeThreading):
7119         * platform/mac/Threading.mm:
7120         (WebCore::initializeThreading):
7121         * platform/qt/TemporaryLinkStubs.cpp:
7122         (WebCore::initializeThreading):
7124 2007-09-14  Brady Eidson  <beidson@apple.com>
7126         Reviewed by Darin
7128         -Add callOnMainThread() implementation to Windows
7130         * WebCore.vcproj/WebCore.vcproj:
7131         
7132         * loader/icon/IconDatabase.cpp:
7133         (WebCore::IconDatabase::open): Call initializeThreading() from the main thread before kicking off the secondary thread
7134         
7135         * platform/Logging.cpp: Added Threading logging channel
7136         (WebCore::):
7137         * platform/Logging.h: Ditto
7138         
7139         * platform/Threading.h:
7140         (WebCore::initializeThreading): Added - only needs Windows impl for now
7141         * platform/win/ThreadingWin.cpp: Added.
7142         (WebCore::callFunctionsOnMainThread): Calls each function currently in the main-thread queue
7143         (WebCore::ThreadingWindowWndProc):
7144         (WebCore::initializeThreading): Creates a message-only window to use for callOnMainThread()
7145         (WebCore::callOnMainThread): Queues the function to be called and posts a message to the threading
7146           window such that the function-call-queue can be addressed
7147         
7148         * platform/win/TemporaryLinkStubs.cpp:
7149         (WebCore::signedPublicKeyAndChallengeString):
7150         
7151 2007-09-14  Anders Carlsson  <andersca@apple.com>
7153         Reviewed by Adam.
7155         <rdar://problem/5316743>
7156         Safari does not handle filename parameter of content-disposition
7157         
7158         Use CFURLResponseCopySuggestedFilename instead of our own hand-rolled implementation. 
7159         
7160         While we do return the correct filename in all cases I've tried, using CFNetwork is better because
7161         it might handle corner cases that we don't.
7162         
7163         * platform/network/cf/ResourceResponseCFNet.cpp:
7164         (WebCore::ResourceResponse::doUpdateResourceResponse):
7165         
7166 2007-09-14  Geoffrey Garen  <ggaren@apple.com>
7168         Reviewed by Adam Roben.
7170         Fixed http://bugs.webkit.org/show_bug.cgi?id=15209
7171         Sometimes removing an iframe from the DOM does not remove its frame 
7172         from the page
7174         * loader/FrameLoader.cpp:
7175         (WebCore::FrameLoader::requestFrame): Use the contentFrame pointer
7176         directly instead of searching for a frame by the frame element's name, 
7177         because the frame element's name may have changed. (Another reason to do
7178         this is that it's just plain more straight-forward and efficient.)
7180 2007-09-14  Darin Adler  <darin@apple.com>
7182         Reviewed by Mitz and Kevin Decker.
7184         - fix http://bugs.webkit.org/show_bug.cgi?id=15197
7185           <rdar://problem/5478271> REGRESSION: Some Yahoo text entry fields
7186           render as lines rather than text entry boxes
7188         Test: fast/forms/textarea-rows-cols.html
7190         * html/HTMLTextAreaElement.cpp:
7191         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Use constants for the default number
7192         of rows and columns.
7193         (WebCore::HTMLTextAreaElement::parseMappedAttribute): If rows/cols attribute has a value
7194         that's missing, non-numeric, or zero, then use the default value. Also check for the
7195         case where the effective value of the attribute isn't changing.
7197 2007-09-14  Sven Herzberg  <sven@imendio.com>
7199         Reviewed by George.
7201         Don't maintain obsolete code, fixes:
7202         http://bugs.webkit.org/show_bug.cgi?id=15215
7204         * platform/gdk/FontPlatformData.cpp: remove static
7205         FontPlatformData::list() (isn't used at any place)
7207 2007-09-14  Sven Herzberg  <sven@imendio.com>
7209         Reviewed by Adam Roben.
7211         Don't use fontconfig types if necessary, fixes:
7212         http://bugs.webkit.org/show_bug.cgi?id=15203
7214         * platform/gdk/FontPlatformData.cpp: don't use an FcBool to store the
7215         initialized state, use a plain c++ bool instead
7217 2007-09-13  Brady Eidson  <beidson@apple.com>
7219         Reviewed by Maciej
7221         <rdar://problem/5480437> - No site icon at launch and related error messages
7223         The error message was actually indicative of a larger bug that might've resulted in icons getting
7224         improperly pruned because they were never added to the set of retained page URLs.
7226         To solve the no-icon-at-launch problem, we send the "didReceiveIcon:" delegate call for every page 
7227         load that has an icon, whether the icon comes in from network, from disk, or was already in ram
7229         * loader/FrameLoader.cpp:
7230         (WebCore::FrameLoader::startIconLoader): Always send the didReceiveIcon delegate call when an icon's 
7231           image data is known
7233         * loader/icon/IconDatabase.cpp:
7234         (WebCore::IconDatabase::retainIconForPageURL): Much more accurately track the set of retained pages by
7235           adding them when their retain count moves from 0 to 1
7237         * loader/icon/PageURLRecord.h:
7238         (WebCore::PageURLRecord::retain): Correctly distinguish the "retain count just went from 0 to 1" case
7239           in the return value
7241 2007-09-13  Brady Eidson  <beidson@apple.com>
7243         Rubberstamped by Geoff and Maciej
7245         Fix MSVC build warning due to out of range data in a char array
7247         * loader/icon/IconDatabase.cpp:
7248         (WebCore::IconDatabase::defaultIcon): The buffer is now unsigned data
7250         * platform/SharedBuffer.cpp:
7251         (WebCore::SharedBuffer::SharedBuffer): Add the "unsigned char*" c'tor
7252         * platform/SharedBuffer.h:
7254 2007-09-13  Darin Adler  <darin@apple.com>
7256         Reviewed by Oliver.
7258         - fix <rdar://problem/5470457> REGRESSION: Input method inline hole is mishandled in text
7259           <input> elements with maxlength limit
7261         * editing/Editor.h: Moved MarkedTextUnderline here and renamed it CompositionUnderline.
7262         Moved the rest of the marked text API here and used the term that will be more familiar
7263         to those on platforms other than Macintosh, "composition". This helps prevent confusion
7264         with the other kinds of mark -- the emacs "mark" and spelling/grammar marks. Also
7265         cleaned up the conditionals a bit for the Macintosh-specific parts of this header.
7267         * editing/Editor.cpp:
7268         (WebCore::Editor::Editor): Updated for name change.
7269         (WebCore::Editor::clear): Added. To be called by FrameLoader::clear().
7270         (WebCore::Editor::insertTextWithoutSendingTextEvent): Removed code to make inserted
7271         text replace the marked text range -- we now deal with this explicitly by not
7272         calling this function to replace marked text. Also removed unneeded code that was
7273         specific to the use of this to replace the marked text.
7274         (WebCore::Editor::selectComposition): Renamed from selectMarkedText. Updated since
7275         the composition range is not stored as a Range.
7276         (WebCore::Editor::confirmComposition): Added. To be called when changing a composition
7277         into actual text. Unlike the old code path, deletes the composition first, then inserts
7278         the text, triggering the normal insertion code path and events. This is helpful because
7279         it means the inserted text will be truncated by the <input> element, for example.
7280         (WebCore::Editor::confirmCompositionWithoutDisturbingSelection): Added.
7281         (WebCore::Editor::setComposition): Added. To be called when changing the composition.
7282         Takes parameters for the underlines and selection. Unlike the old code path, this passes
7283         a flag down that indicates the inserted text is part of a composition. This is helpful
7284         because we don't send the event that will cause the <input> element to do truncation.
7285         It's also a better API for future improvements to our input method handling.
7286         (WebCore::Editor::revealSelectionAfterEditingOperation): Updated for name change.
7287         (WebCore::Editor::setIgnoreCompositionSelectionChange): Ditto.
7288         (WebCore::Editor::compositionRange): Added. Needed now that the composition is not
7289         stored as a Range.
7290         (WebCore::Editor::getCompositionSelection): Added.
7292         * editing/TypingCommand.h:
7293         * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText):
7294         Added an insertedTextIsComposition parameter, and don't send the BeforeTextInsertedEvent
7295         if it's true.
7297         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Replaced the Macintosh-specific
7298         call to setMarkedTextRange with a call to the new Editor::clear().
7300         * page/Frame.h:
7301         * page/Frame.cpp:
7302         * page/FramePrivate.h:
7303         * page/mac/FrameMac.mm:
7304         Removed the marked text code. It was streamlined and moved to Editor, except for the
7305         Mac-specific code, which was moved into WebKit.
7307         * page/mac/WebCoreFrameBridge.h:
7308         * page/mac/WebCoreFrameBridge.mm: Removed some now-unneeded marked text code.
7309         (-[WebCoreFrameBridge markedTextNSRange]): Updated for name/API change.
7311         * rendering/InlineTextBox.h:
7312         * rendering/InlineTextBox.cpp:
7313         (WebCore::InlineTextBox::paint): Updated marked text code for name changes, and also
7314         streamlined the code a bit for the case where there is no composition.
7315         (WebCore::InlineTextBox::paintCompositionBackground): Name change.
7316         (WebCore::InlineTextBox::paintCompositionUnderline): Ditto.
7318         * rendering/RenderTextControl.h:
7319         * rendering/RenderTextControl.cpp:
7320         (WebCore::RenderTextControl::finishText): Added. Helper function shared by the
7321         (WebCore::RenderTextControl::text):
7322         (WebCore::getNextSoftBreak):
7323         (WebCore::RenderTextControl::textWithHardLineBreaks):
7325         * platform/CharacterNames.h: Added newlineCharacter.
7327         * dom/Range.h: Remove the now-unneeded version of toString that converts <br>
7328         elements into newlines.
7329         * dom/Range.cpp:
7330         (WebCore::Range::toString): Changed this to use a Vector<UChar> instead of
7331         a String so it will not have pathological reallocation performance, and removed
7332         the <br> feature.
7333         (WebCore::Range::pastEndNode): Made this return 0 when there is no start node.
7334         This bit of extra robustness guarantees you can't do a null dereference if the
7335         start node is 0 and the end node is not. Not sure this case really exists.
7337         * page/ContextMenuController.cpp: (ContextMenuController::contextMenuItemSelected):
7338         Removed a semi-bogus use of Range::toString(true). The right function to use here
7339         is plainText().
7341         * bridge/EditorClient.h: Removed obsolete markedTextAbandoned function.
7343         * WebCore.exp: Updated for above changes. 
7345 2007-09-13  Anders Carlsson  <andersca@apple.com>
7347         Reviewed by Adam and Geoff.
7349         <rdar://problem/5304000>
7350         Windows Safari doesn't always call NPP_SetWindow() for NPAPI plugins.
7351         
7352         This does two things:
7353         
7354         1. Makes sure that the plug-in get the correct initial size.
7355         
7356         2. Always updates the size of the HWND, even if the widget size didn't change. This is because
7357         the widget size can be different before the HWND has been created.
7358         
7359         * plugins/win/PluginDatabaseWin.cpp:
7360         (WebCore::PluginDatabaseWin::createPluginView):
7361         * plugins/win/PluginDatabaseWin.h:
7362         * plugins/win/PluginViewWin.cpp:
7363         (WebCore::PluginViewWin::setFrameGeometry):
7364         (WebCore::PluginViewWin::PluginViewWin):
7365         * plugins/win/PluginViewWin.h:
7367 2007-09-13  Kevin McCullough  <kmccullough@apple.com>
7369         Reviewed by Geof, Sam, Adam, Hyatt, Darin.
7371         - <rdar://problem/5480234> JS setTimeout function requires a second argument
7372         - Removed check for number of arguments in setTimeout to behave like other browsers.
7373         - Added layoutTest setTimeout-no-arguments.html
7375         * bindings/js/kjs_window.cpp:
7376         (KJS::WindowFunc::callAsFunction):
7378 2007-09-13   Dave Hyatt  <hyatt@apple.com>
7380         Some minor Windows font improvements before I make the larger changes.
7381         
7382         Reviewed by aroben, weinig
7384         * platform/win/FontCacheWin.cpp:
7385         (WebCore::FontCache::getFontDataForCharacters):
7386         Don't use the currently selected font in the HDC when passing priority code pages to MLANG.  Make
7387         sure to use ACP code pages instead so that there won't be any confusion regarding traditional vs.
7388         simplified chinese, etc.
7390         * platform/win/FontDataWin.cpp:
7391         (WebCore::FontData::containsCharacters):
7392         Rewrite containsCharacters so that it isn't glyph-dependent (since CG doesn't shape, this call is
7393         rejecting fonts that it shouldn't).  Re-implement this method in terms of MLang and use code page
7394         testing.
7395         
7396         * platform/win/UniscribeController.cpp:
7397         (WebCore::UniscribeController::itemizeShapeAndPlace):
7398         Add some comments to explain the additional item in the items array.
7399        
7400         (WebCore::UniscribeController::shape):
7401         Fix up the missing glyph check when doing uniscribe shaping.  Only wgDefault matters as far as doing
7402         font fallback.
7403         
7404 2007-09-13  kuchhal  <kuchhal@yahoo.com>
7406         Reviewed, tweaked and landed by Anders.
7408         <rdar://problem/5461153> 
7409         http://bugs.webkit.org/show_bug.cgi?id=15143
7410         Crash seen on Windows
7411         
7412         Null check frame before calling Frame::settings.
7413         
7414         * loader/PluginDocument.cpp:
7415         (WebCore::PluginTokenizer::writeRawData):
7417 2007-09-12  Holger Hans Peter Freyther  <zecke@selfish.org>
7419         Reviewed by Mark.
7421         Implement the FileChooser for the WebKit/Gtk+ port by using
7422         the GtkFileChooserDialog and g_path_get_basename to get the
7423         basename for the current filename.
7426         * WebCore.pro:
7427         * platform/gdk/FileChooserGdk.cpp: Added.
7428         (WebCore::FileChooser::FileChooser):
7429         (WebCore::FileChooser::~FileChooser):
7430         (WebCore::FileChooser::openFileChooser):
7431         (WebCore::FileChooser::basenameForWidth):
7432         * platform/gdk/TemporaryLinkStubs.cpp:
7434 2007-09-12  Holger Hans Peter Freyther  <zecke@selfish.org>
7436         Reviewed by Mark.
7438         Move the "string" functions from the TemporaryLinkStubs.cpp
7439         to LocalizedStringsGdk.cpp and implement them using the text
7440         from the win port and glib-i18n (gettext).
7442         * platform/gdk/LocalizedStringsGdk.cpp: Added.
7443         (WebCore::submitButtonDefaultLabel):
7444         (WebCore::inputElementAltText):
7445         (WebCore::resetButtonDefaultLabel):
7446         (WebCore::searchableIndexIntroduction):
7447         (WebCore::fileButtonChooseFileLabel):
7448         (WebCore::fileButtonNoFileSelectedLabel):
7449         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
7450         (WebCore::contextMenuItemTagDownloadLinkToDisk):
7451         (WebCore::contextMenuItemTagCopyLinkToClipboard):
7452         (WebCore::contextMenuItemTagOpenImageInNewWindow):
7453         (WebCore::contextMenuItemTagDownloadImageToDisk):
7454         (WebCore::contextMenuItemTagCopyImageToClipboard):
7455         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
7456         (WebCore::contextMenuItemTagCopy):
7457         (WebCore::contextMenuItemTagGoBack):
7458         (WebCore::contextMenuItemTagGoForward):
7459         (WebCore::contextMenuItemTagStop):
7460         (WebCore::contextMenuItemTagReload):
7461         (WebCore::contextMenuItemTagCut):
7462         (WebCore::contextMenuItemTagPaste):
7463         (WebCore::contextMenuItemTagNoGuessesFound):
7464         (WebCore::contextMenuItemTagIgnoreSpelling):
7465         (WebCore::contextMenuItemTagLearnSpelling):
7466         (WebCore::contextMenuItemTagSearchWeb):
7467         (WebCore::contextMenuItemTagLookUpInDictionary):
7468         (WebCore::contextMenuItemTagOpenLink):
7469         (WebCore::contextMenuItemTagIgnoreGrammar):
7470         (WebCore::contextMenuItemTagSpellingMenu):
7471         (WebCore::contextMenuItemTagShowSpellingPanel):
7472         (WebCore::contextMenuItemTagCheckSpelling):
7473         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
7474         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
7475         (WebCore::contextMenuItemTagFontMenu):
7476         (WebCore::contextMenuItemTagBold):
7477         (WebCore::contextMenuItemTagItalic):
7478         (WebCore::contextMenuItemTagUnderline):
7479         (WebCore::contextMenuItemTagOutline):
7480         (WebCore::contextMenuItemTagWritingDirectionMenu):
7481         (WebCore::contextMenuItemTagDefaultDirection):
7482         (WebCore::contextMenuItemTagLeftToRight):
7483         (WebCore::contextMenuItemTagRightToLeft):
7484         (WebCore::contextMenuItemTagInspectElement):
7485         (WebCore::searchMenuNoRecentSearchesText):
7486         (WebCore::searchMenuRecentSearchesText):
7487         (WebCore::searchMenuClearRecentSearchesText):
7488         (WebCore::unknownFileSizeText):
7489         * platform/gdk/TemporaryLinkStubs.cpp:
7491 2007-09-10  Holger Hans Peter Freyther  <zecke@selfish.org>
7493         Reviewed by Mark.
7495         EventHandlerGdk::createDraggingClipboard must succeed otherwise an
7496         ASSERT is hit. Add Clipboard stubs for the Gdk/Gtk+ port and
7497         instantiate ClipboardGdk from the EventHandlerGdk to make the ASSERT
7498         go away. In contrast to the Windows and Mac port this clipboard is not
7499         inheriting CachedResourceClient. This was proposed by Oliver.
7501         * WebCore.pro:
7502         * page/gdk/EventHandlerGdk.cpp:
7503         * platform/gdk/ClipboardGdk.cpp: Added.
7504         (WebCore::ClipboardGdk::ClipboardGdk):
7505         (WebCore::ClipboardGdk::~ClipboardGdk):
7506         (WebCore::ClipboardGdk::clearData):
7507         (WebCore::ClipboardGdk::clearAllData):
7508         (WebCore::ClipboardGdk::getData):
7509         (WebCore::ClipboardGdk::setData):
7510         (WebCore::ClipboardGdk::types):
7511         (WebCore::ClipboardGdk::dragLocation):
7512         (WebCore::ClipboardGdk::dragImage):
7513         (WebCore::ClipboardGdk::setDragImage):
7514         (WebCore::ClipboardGdk::dragImageElement):
7515         (WebCore::ClipboardGdk::setDragImageElement):
7516         (WebCore::ClipboardGdk::createDragImage):
7517         (WebCore::ClipboardGdk::declareAndWriteDragImage):
7518         (WebCore::ClipboardGdk::writeURL):
7519         (WebCore::ClipboardGdk::writeRange):
7520         (WebCore::ClipboardGdk::hasData):
7521         * platform/gdk/ClipboardGdk.h: Added.
7523 2007-09-12  Oliver Hunt  <oliver@apple.com>
7525         Reviewed by Adam.
7527         Corrections missed in previous revision
7529         * platform/Cursor.h:
7530         * platform/win/CursorWin.cpp:
7531         (WebCore::loadCursorByName):
7533 2007-09-12  Oliver Hunt  <oliver@apple.com>
7535         Reviewed by Adam.
7537         Fixing 
7538             <rdar://problem/5018591> Windows doesn't have a standard vertical text cursor
7539             <rdar://problem/5224996> Add zoom in and zoom out cursors
7541         Added SharedCursor for CursorWin so we can correctly track lifetime of custom/image
7542         based cursors, such as the vertical text and zooming cursors.
7544         * platform/Cursor.h:
7545         (WebCore::SharedCursor::SharedCursor):
7546         (WebCore::SharedCursor::~SharedCursor):
7547         (WebCore::SharedCursor::nativeCursor):
7548         * platform/win/CursorWin.cpp:
7549         (WebCore::Cursor::Cursor):
7550         (WebCore::loadCursorByName):
7551         (WebCore::loadSharedCursor):
7552         (WebCore::pointerCursor):
7553         (WebCore::crossCursor):
7554         (WebCore::handCursor):
7555         (WebCore::iBeamCursor):
7556         (WebCore::waitCursor):
7557         (WebCore::helpCursor):
7558         (WebCore::eastResizeCursor):
7559         (WebCore::northResizeCursor):
7560         (WebCore::northEastResizeCursor):
7561         (WebCore::northWestResizeCursor):
7562         (WebCore::southResizeCursor):
7563         (WebCore::southEastResizeCursor):
7564         (WebCore::southWestResizeCursor):
7565         (WebCore::westResizeCursor):
7566         (WebCore::northSouthResizeCursor):
7567         (WebCore::eastWestResizeCursor):
7568         (WebCore::northEastSouthWestResizeCursor):
7569         (WebCore::northWestSouthEastResizeCursor):
7570         (WebCore::columnResizeCursor):
7571         (WebCore::rowResizeCursor):
7572         (WebCore::moveCursor):
7573         (WebCore::verticalTextCursor):
7574         (WebCore::progressCursor):
7575         (WebCore::notAllowedCursor):
7576         (WebCore::zoomInCursor):
7577         (WebCore::zoomOutCursor):
7578         * platform/win/WidgetWin.cpp:
7579         (WebCore::Widget::setCursor):
7581 2007-09-12  Brady Eidson  <beidson@apple.com>
7583         Reviewed by Geoff Garen
7585         <rdar://problem/5478577> - Further improve cold launch time with Icon Database changes
7587         * loader/icon/IconDatabase.cpp:
7588         (WebCore::IconDatabase::open): Store the directory and full path for later usage and access in the API, respectively
7589           Move the makeAllDirectories() call to the background thread.
7590         (WebCore::IconDatabase::IconDatabase): Don't set up the timer here...
7591         (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Create the timer on demand
7592         (WebCore::IconDatabase::iconDatabaseSyncThread): makeAllDirectories() here where it's not as expensive
7593         (WebCore::IconDatabase::cleanupSyncThread): Cleanup the directory as well as full path
7595         * loader/icon/IconDatabase.h: m_syncTimer becomes an OwnPtr, and we add the database directory
7596           as a member to set it on the main thread and act with it on the background thread
7598 2007-09-12  Justin Garcia  <justin.garcia@apple.com>
7600         Reviewed by Tristan.
7602         <rdar://problem/5469868> 
7603         GoogleDocs: A hang occurs when applying list styling to a selection in a <table>
7604         
7605         When list insertion moves selected paragraphs into list items, it relies on 
7606         the selection preservation code inside moveParagraphs to iterate over the 
7607         selected paragraphs.  If a selection is ever restored incorrectly (before
7608         the original, or inside the original) list insertion will go into an infinite loop.
7609         
7610         In this hang, a table was selected and the selection preservation code incorrectly
7611         restored a selection, placing it inside the table.
7612         
7613         The bug was that a TextIterator, when being used for selection preservation, must
7614         emit a character between every VisiblePosition in the Range used to create the
7615         iterator.
7616         
7617         * editing/TextIterator.cpp:
7618         (WebCore::TextIterator::TextIterator): Renamed the boolean that we use for 
7619         selection preservation.  It used to be m_emitForReplacedElements because
7620         we believed that replaced elements were the only case where TextIterators
7621         should have emitted differently when used for selection preservation.
7622         (WebCore::TextIterator::handleReplacedElement): Ditto.
7623         (WebCore::TextIterator::shouldRepresentNodeOffsetZero): Represent the 
7624         position before block tables, but only if we are emitting for selection 
7625         preservation.
7626         (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): We should emit 
7627         a space before and after block tables if we are emitting for selection 
7628         preservation (because we have VisiblePositions before and after them).
7629         (WebCore::TextIterator::handleNonTextNode): Use a renamed variable.
7630         * editing/TextIterator.h: Made shouldEmitSpaceBeforeAndAfterNode a member
7631         function, because whether or not we emit spaces before and after a block
7632         table depends we're emitting for selection preservation.
7634 2007-09-12  Beth Dakin  <bdakin@apple.com>
7636         Reviewed by Hyatt.
7638         Fix for <rdar://problem/5464998> REGRESSION (9A543): Using Sort 
7639         options takes you back to search screen on zappos.com
7641         The current mechanism for preserving form elements across removes 
7642         did not work in the case where the input was moved by the parser to 
7643         be out of scope of the form. This fixes that problem by having the 
7644         parser keep track of the preserve boolean rather than the current 
7645         form element.
7647         * dom/Tokenizer.h:
7648         (WebCore::Tokenizer::isHTMLTokenizer): New function.
7649         * html/HTMLFormElement.cpp:
7650         (WebCore::HTMLFormElement::HTMLFormElement): Get rid of 
7651         m_preserveAcrossRemove.
7652         * html/HTMLFormElement.h:
7653         (WebCore::HTMLFormElement::isMalformed): Get rid of 
7654         m_preserveAcrossRemove.
7655         * html/HTMLGenericFormElement.cpp:
7656         (WebCore::HTMLGenericFormElement::removedFromTree): Ask the parser 
7657         if it is currently handling residual style rather than asking the 
7658         form if it wants to preserveAcrossRemove.
7659         * html/HTMLParser.cpp:
7660         (WebCore::HTMLParser::HTMLParser): New boolean to initialize.
7661         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Set 
7662         m_handlingResidualStyleAcrossBlocks to true at the beginning and 
7663         false at the end.
7664         * html/HTMLParser.h:
7665         (WebCore::HTMLParser::isHandlingResidualStyleAcrossBlocks):
7666         * html/HTMLTokenizer.h:
7667         (WebCore::HTMLTokenizer::isHTMLTokenizer):
7668         (WebCore::HTMLTokenizer::htmlParser):
7670 2007-09-12  George Staikos  <staikos@kde.org>
7672         Fix compilation in some configurations for patch I reviewed and missed
7673         this option on.
7675         * platform/qt/CursorQt.cpp:
7676         (WebCore::Cursor::Cursor):
7678 2007-09-12  Brady Eidson  <beidson@apple.com>
7680         Reviewed by Tim Hatcher and Kevin Decker
7682         <rdar://problem/5367045> - Launch time regression due to accessing resource from a different bundle
7684         When the default icon was moved from WebKit to WebCore, we had to access an entirely new bundle on launch which
7685         measurably increased time during launch accessing the disk.
7687         Instead of moving it back to the WebKit bundle, lets make launch time even faster by compiling in the icon.
7689         * Resources/urlIcon.tiff: Removed.
7691         * WebCore.xcodeproj/project.pbxproj: Removed urlIcon.tiff
7693         * loader/icon/IconDatabase.cpp:
7694         (WebCore::IconDatabase::defaultIcon): Compile in the icon data here.
7696 2007-09-12  Adam Roben  <aroben@apple.com>
7698         Always specify that slider thumbs are small when painting with SafariTheme
7700         This is the only size we support.
7702         Reviewed by Sam.
7704         * rendering/RenderThemeSafari.cpp:
7705         (WebCore::RenderThemeSafari::paintSliderThumb):
7707 2007-09-12  Brady Eidson  <beidson@apple.com>
7709         Reviewed by Darin
7711         <rdar://problem/5474753> - ASSERT in IconDatabase ReadySQLStatement
7713         * loader/icon/IconDatabase.cpp:
7714         (WebCore::readySQLStatement): This is a LOG_ERROR situation, not really an ASSERT situation
7716 2007-09-12  Adam Roben  <aroben@apple.com>
7718         Don't ask SafariTheme to draw focus rings around text controls
7720         We do this ourselves.
7722         Reviewed by Oliver.
7724         * rendering/RenderThemeSafari.cpp:
7726 2007-09-11  Brady Eidson  <beidson@apple.com>
7728         Reviewed by Darin
7730         <rdar://problem/5475639> and http://bugs.webkit.org/show_bug.cgi?id=15185 -
7731         Prevent two WebKits from fighting over the database schema in the future in case it ever changes again
7733         By telling the "older schema" WebKit to simply close itself and not bother to do any icon related stuff
7734         if the database schema is newer, we prevent the possibility of an older webkit run side-by-side with a newer
7735         WebKit causing icon database issues.
7737         * loader/icon/IconDatabase.cpp:
7738         (WebCore::IconDatabase::defaultDatabaseFilename): Rev the icon database filename to be "WebpageIcons.db"  The name is
7739           more appropriate for what is actually stored in the file, and since we're already not converting v5 to v6 icons, 
7740           making this leap now makes sense and gives us a good "future-proof" baseline
7741         (WebCore::isValidDatabase): Change the validity check to be "less then" instead of "not equal to" - the
7742           "greater than" case is now handled in performOpenInitialization()
7743         (WebCore::IconDatabase::performOpenInitialization): If the schema version is greater than the current, then
7744           close the database as to not conflict with the newer version.  Also noted that the integrity check failure 
7745           should actually close the sql database, not the icondatabase
7746         (WebCore::IconDatabase::syncThreadMainLoop): If termination has already been requested, skip straight to cleanup
7747         (WebCore::IconDatabase::cleanupSyncThread): More correctly set the "sync thread running" flag to false here,
7748           as the thread can now decide to exit on its own
7750 2007-09-12  Mike Fenton <mike@staikos.net>
7752         Reviewed by George Staikos.
7754         Patch from Mike Fenton to allow custom cursors.
7756         * platform/qt/CursorQt.cpp:
7758 2007-09-11  Kevin Decker <kdecker@apple.com>
7760         Reviewed by Oliver Hunt.
7762         Fixed: <rdar://problem/5472402> crash due to infinite recursion in expandUseElementsInShadowTree on SVG from wikipedia
7764         * ksvg2/svg/SVGUseElement.cpp: Added SVG_EXPERIMENTAL #ifdef for expandUseElementsInShadowTree().
7765         (WebCore::SVGUseElement::buildPendingResource): Ditto.
7766         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements): Tweaked an ASSERT to not fire on non-experimental builds.
7767         * ksvg2/svg/SVGUseElement.h: Added SVG_EXPERIMENTAL #ifdef for expandUseElementsInShadowTree().
7769 2007-09-11  Brady Eidson  <beidson@apple.com>
7771         Reviewed by Maciej
7773         Fix for <rdar://problem/5473046> - Crash when resetting all icons
7775         Originally I'd written the "reset all icons" to be synchronous on the main thread, but it
7776         was decided that it should be async since it involved I/O.  Turns out it needs to be... both!
7777         Synchronous removal of all in-memory records of icons, and then continue and clean up the 
7778         on-disk database on the background thread.
7780         Also, it turns out that resetting all the page url retain counts should *not* be part of 
7781         "reset all icons" because it breaks various contracts the API makes about maintaining retain counts.
7783         The problem that occured here was removing all the icons, then all the history items that were 
7784         removed as part of "Reset Safari..." would try to release their icon, but their icon doesn't exist
7785         anymore.
7787         We get around this by simply leaving the in-memory page url records and retain counts alone - they
7788         are still wiped from disk.
7790         * loader/icon/IconDatabase.cpp:
7791         (WebCore::IconDatabase::removeAllIcons): Clear in-memory records of all icons then tell the thread to
7792           wipe the on-disk tables
7793         (WebCore::IconDatabase::removeAllIconsOnThread): Only do the disk cleanup - in-memory maintenance is
7794           handled on the main thread
7795         (WebCore::IconDatabase::cleanupSyncThread): Now that it's possible for new "icons to be written to disk"
7796           to appear while on-disk deleting is occuring, let the cleanup procedure perform 1 final write *after*
7797           it does the remove all icons
7798         * loader/icon/IconDatabase.h: Removed unused lock and condition
7800         * loader/icon/PageURLRecord.cpp:
7801         (WebCore::PageURLRecord::setIconRecord): Allow setting a NULL icon record, so a PageURLRecord can be
7802           cleared as part of removeAllIcons()
7804 2007-09-11  Tristan O'Tierney  <tristan@apple.com>
7806         Reviewed by David Harrison.
7807         
7808         <rdar://problem/5467203> CrashTracer: [USER] 1 crash in Mail at <unknown binary>: WebCore::Range::startContainer const
7810         * editing/SelectionController.cpp:
7811         (WebCore::SelectionController::addRange):
7812         (WebCore::SelectionController::setSelectedRange):
7813         Added a check to make sure the passed in Range* value is not null
7814         before performing operations on it.
7816 2007-09-11  Justin Garcia  <justin.garcia@apple.com>
7818         Reviewed by Maciej.
7819         
7820         <rdar://problem/5458246> 
7821         GoogleDocs: A hang occurs when applying list styling to selection that contains a <HR>
7822         
7823         List insertion moves selected paragraphs into list items, and relies on the selection
7824         preservation code inside moveParagraphs to iterate over the selected paragraphs.
7825         When list insertion would try to listify a paragraph that came after a list item 
7826         containing an <hr>, the selection preservation code would set an incorrect ending 
7827         selection because of a TextIterator bug, and we would try to listify the same 
7828         paragraph over and over.
7829         
7830         * editing/CompositeEditCommand.cpp:
7831         (WebCore::CompositeEditCommand::moveParagraphs): Pass range compliant equivalents to
7832         the Range constructor here.  The position [hr, 0] is not a valid DOM Range endpoint 
7833         for example.
7834         * editing/TextIterator.cpp:
7835         (WebCore::shouldEmitSpaceForNode): Added.
7836         (WebCore::TextIterator::handleNonTextNode): Emit a space to represent a horizontal rule,
7837         since it has VisiblePositions before and after it, but only for TextIterators used for
7838         selection preservation, so innerText will be unaffected.
7840 2007-09-11  Ada Chan  <adachan@apple.com>
7842         <rdar://problem/5472130> Support NTLM authentication via CFNetwork.
7844         Reviewed by Darin.
7846         * platform/network/ProtectionSpace.h:
7847         (WebCore::):
7848         * platform/network/cf/AuthenticationCF.cpp:
7849         (WebCore::createCF):
7850         (WebCore::core):
7852 2007-09-11  Darin Adler  <darin@apple.com>
7854         Rubber-stamped by Dave Harrison.
7856         - fixed pasteboard types here to match WebKit and use constants instead of
7857           WebKitSystemInterface
7859         * platform/mac/PasteboardMac.mm: Use constants for all pasteboard type strings.
7861         * platform/mac/WebCoreSystemInterface.h: Removed wkCreateURLPasteboardFlavorTypeName
7862         and wkCreateURLNPasteboardFlavorTypeName.
7864 2007-09-11  Sven Herzberg  <sven@imendio.com>
7866         Reviewed by Mark.
7868         Remove unnecessary fields in FontPlatformData
7869         http://bugs.webkit.org/show_bug.cgi?id=15177
7871         * platform/gdk/FontDataGdk.cpp: removed the destroy code of the fields
7872         that have been removed
7873         * platform/gdk/FontPlatformData.h: removed m_fontFace, m_fontMatrix
7874         and m_options; hask on m_scaledFont
7875         * platform/gdk/FontPlatformDataGdk.cpp: simplified setFont() by using
7876         m_scaledFont only; turned the former struct members into local
7877         variables
7879 2007-09-11  George Staikos  <staikos@kde.org>
7881         Reviewed by Anders.
7883         Work around gcc bug with some old gcc versions.
7885         * platform/qt/WidgetQt.cpp:
7886         (WebCore::Widget::convertToContainingWindow):
7887         (WebCore::Widget::convertFromContainingWindow):
7889 2007-09-10  Mitz Pettel  <mitz@webkit.org>
7891         Reviewed by Maciej Stachowiak.
7893         - fix http://bugs.webkit.org/show_bug.cgi?id=15157
7894           Image defined in background-position: top center gets unexpectedly truncated
7895           <rdar://problem/5469095>
7897         Test: fast/repaint/body-background-image.html
7899         * rendering/RenderBox.cpp:
7900         (WebCore::RenderBox::imageChanged): Refined the logic for when the root takes
7901         over painting the background, to match paintBoxDecorations(). In particular,
7902         if the root has defined a background, the body should paint its own background.
7904 2007-09-10  David Harrison  <harrison@apple.com>
7906         Reviewed by Kevin and Tristan.
7908         Tests added:
7909         * editing/pasteboard/paste-into-anchor-text.html: Added.
7910         * editing/pasteboard/paste-table-cells.html: Added.
7912         Source changes:
7913         * editing/CompositeEditCommand.cpp:
7914         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
7915         Nil check enclosingAnchor.
7916         
7917         * editing/ReplaceSelectionCommand.cpp:
7918         (WebCore::ReplaceSelectionCommand::removeNodeAndPruneAncestors):
7919         New. Keeps m_firstNodeInserted and m_lastLeafInserted updated.
7920         
7921         (WebCore::ReplaceSelectionCommand::negateStyleRulesThatAffectAppearance):
7922         Added a comment.
7923         
7924         (WebCore::ReplaceSelectionCommand::removeRedundantStyles):
7925         Let ReplaceSelectionCommand::removeNodeAndPruneAncestors() update the nodes.
7926          
7927         (WebCore::ReplaceSelectionCommand::doApply):
7928         Pass originalVisPosBeforeEndBR to shouldRemoveEndBR()
7929         
7930         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR):
7931         Don't remove the br if nothing was inserted.
7932         
7933         * editing/ReplaceSelectionCommand.h:
7934         Add VisiblePosition parameter to shouldRemoveEndBR()
7935         
7936         * editing/markup.cpp:
7937         (WebCore::createMarkup):
7938         Wrap orphan tr element with a table element, just like we were doing
7939         for tobody elements.
7941 2007-09-10  David Kilzer  <ddkilzer@apple.com>
7943         Rubberstamped by Kevin Decker.
7945         No test required since there is no change in functionality.
7947         * history/BackForwardList.cpp:
7948         (WebCore::BackForwardList::BackForwardList): Fix misspelling of DefaultCapacitiy to DefaultCapacity.
7950 2007-09-10  Mitz Pettel  <mitz@webkit.org>
7952         Reviewed by Adele Peterson.
7954         - fix http://bugs.webkit.org/show_bug.cgi?id=15156
7955           REGRESSION (r24594-r24668): The bottom of styled <select> button text is clipped out
7956           <rdar://problem/5464301>
7958         Test: fast/forms/menulist-clip.html
7960         * rendering/RenderMenuList.cpp:
7961         (WebCore::RenderMenuList::controlClipRect): Use correct coordinates for
7962         the inner block's content rect.
7964 2007-09-10  Brady Eidson  <beidson@apple.com>
7966         Reviewed by Darin, Sam, Oliver, Geoff, probably others - what a fun one to review!
7968         <rdar://problem/5471641> - URLs get the wrong icon
7970         Turns out sqlite3_reset() doesn't clear bindings, so previously bound icons were being
7971         written out for pages without icons.  Easy fix!
7973         * loader/icon/IconDatabase.cpp:
7974         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase): For null icons, manually
7975           bind NULL - otherwise, the previously bound icon will be written out to disk
7977         * loader/icon/SQLStatement.cpp:
7978         (WebCore::SQLStatement::bindNull): Access to sqlite3_bind_null
7979         * loader/icon/SQLStatement.h:
7981 2007-09-10  Anders Carlsson  <andersca@apple.com>
7983         Reviewed by Oliver and Darin.
7985         <rdar://problem/5468613>
7986         Using shockwave pages first time after plugin install crashed safari in PluginPing.
7987         
7988         Only restore the window proc if the plugin didn't override it.
7989         
7990         * plugins/win/PluginViewWin.cpp:
7991         (WebCore::PluginViewWin::stop):
7993 2007-09-10  Justin Garcia  <justin.garcia@apple.com>
7995         Reviewed by Darin.
7997         <rdar://problem/5467405> 
7998         Revert back behavior of -webkit-user-select to fix widget selection problems
7999         
8000         Rolled out r25086 and r25057.  I will be re-opening:
8001         <rdar://problem/5333725> -webkit-user-select: none makes selection difficult
8002         Which we will either to defer or fix by introducing a new value of -webkit-user-select.
8003         <rdar://problem/5370059> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
8004         Which we will either defer or fix with Adele's patch that doesn't involve making 
8005         -webkit-user-select inherited.
8007         * css/CSSComputedStyleDeclaration.cpp:
8008         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
8009         * css/CSSStyleSelector.cpp:
8010         (WebCore::CSSStyleSelector::adjustRenderStyle):
8011         (WebCore::CSSStyleSelector::applyProperty):
8012         * editing/SelectionController.cpp:
8013         (WebCore::SelectionController::selectAll):
8014         * page/EventHandler.cpp:
8015         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
8016         (WebCore::EventHandler::handleMousePressEventTripleClick):
8017         (WebCore::EventHandler::handleMousePressEventSingleClick):
8018         (WebCore::EventHandler::updateSelectionForMouseDrag):
8019         (WebCore::EventHandler::selectCursor):
8020         (WebCore::EventHandler::canMouseDownStartSelect):
8021         * page/EventHandler.h:
8022         * rendering/RenderObject.cpp:
8023         (WebCore::selectStartNode):
8024         (WebCore::RenderObject::canSelect):
8025         (WebCore::RenderObject::shouldSelect):
8026         (WebCore::RenderObject::draggableNode):
8027         * rendering/RenderObject.h:
8028         * rendering/RenderStyle.cpp:
8029         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
8030         (WebCore::StyleRareNonInheritedData::operator==):
8031         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
8032         (WebCore::StyleRareInheritedData::operator==):
8033         (WebCore::RenderStyle::diff):
8034         * rendering/RenderStyle.h:
8035         (WebCore::):
8036         (WebCore::RenderStyle::userSelect):
8037         (WebCore::RenderStyle::setUserSelect):
8038         (WebCore::RenderStyle::initialUserSelect):
8040 2007-09-10  Antti Koivisto  <antti@apple.com>
8042         Reviewed by Kevin.
8044         Fix <rdar://problem/5444866>
8045         REGRESSION: missing text in Acrobat "Getting Started" screen due to change in load ordering of large resources
8046         
8047         Make external scripts loaded using file: wait until all style sheet loads have completed before executing. 
8048         Fixes a class of problems where there is a dependency between script and stylesheet and results would effectively 
8049         get randomized based on which order the resources arrived. In Tiger file loads were effectively serialized by
8050         lower level components, which is why this regressed. 
8052         Test: http/tests/local/stylesheet-and-script-load-order.html
8054         * dom/Document.cpp:
8055         (WebCore::Document::removePendingSheet):
8056         * dom/Tokenizer.h:
8057         (WebCore::Tokenizer::executeScriptsWaitingForStylesheets):
8058         * html/HTMLTokenizer.cpp:
8059         (WebCore::HTMLTokenizer::HTMLTokenizer):
8060         (WebCore::HTMLTokenizer::begin):
8061         (WebCore::HTMLTokenizer::executeScriptsWaitingForStylesheets):
8062         (WebCore::HTMLTokenizer::notifyFinished):
8063         * html/HTMLTokenizer.h:
8065 2007-09-08  David Smith  <catfish.man@gmail.com>
8067         Reviewed by Maciej Stachowiak.
8068         
8069         http://bugs.webkit.org/show_bug.cgi?id=15148
8070         Bug 15148: Poor performance on crazy DOM raytracer
8071         
8072         Switch data structures to avoid quadratic behavior.
8074         * rendering/RenderBlock.cpp:
8075         (WebCore::RenderBlock::layoutPositionedObjects): Update for ListHashSet
8076         (WebCore::RenderBlock::markPositionedObjectsForLayout): Update for ListHashSet
8077         (WebCore::RenderBlock::insertPositionedObject): Use ListHashSet to avoid expensive uniqueing
8078         (WebCore::RenderBlock::removePositionedObject): Update for ListHashSet
8079         (WebCore::RenderBlock::removePositionedObjects): Update for ListHashSet
8080         (WebCore::RenderBlock::lowestPosition): Update for ListHashSet
8081         (WebCore::RenderBlock::rightmostPosition): Update for ListHashSet
8082         (WebCore::RenderBlock::leftmostPosition): Update for ListHashSet
8083         (WebCore::RenderBlock::rightBottom): Update for ListHashSet
8084         * rendering/RenderBlock.h: Change m_positionedObjects from DeprecatedPtrList to ListHashSet
8086 2007-09-09  Brady Eidson <beidson@apple.com>
8088         Rubberstamped by Darin
8090         pthread_main_np() is a Darwin thing, not a Mac thing
8092         * loader/icon/IconDatabase.cpp:
8093         (WebCore::IconDatabase::IconDatabase):
8095 2007-09-09  Holger Hans Peter Freyther  <zecke@selfish.org>
8097         Build fix for Gtk+ by adding WebCore::callOnMainThread to the TemporaryLinkStubs.
8099         * platform/gdk/TemporaryLinkStubs.cpp:
8100         (WebCore::callOnMainThread):
8102 2007-09-08  George Staikos  <staikos@kde.org>
8104         Reviewed by Olliej.
8106         Separate out and implement FileSystem functions,  and stub out the
8107         icondatabase function for future implementation.
8109         * WebCore.pro:
8110         * platform/qt/FileSystemQt.cpp: Added.
8111         (WebCore::fileExists):
8112         (WebCore::deleteFile):
8113         * platform/qt/TemporaryLinkStubs.cpp:
8114         * platform/qt/ThreadingQt.cpp: Added.
8115         (WebCore::callOnMainThread):
8117 2007-09-08  Mark Rowe  <mrowe@apple.com>
8119         Build fix for when ENABLE(ICONDATABASE) is not set.
8121         * loader/icon/IconDatabaseNone.cpp:
8122         (WebCore::IconDatabase::~IconDatabase):
8124 2007-09-08  Mark Rowe  <mrowe@apple.com>
8126         More fixes for the Qt and Gtk builds.
8128         * WebCore.pro: Update for file changes.
8129         * loader/icon/IconDatabase.cpp: Include errno.h for EDEADLK.
8130         * loader/icon/PageURLRecord.h:
8132 2007-09-08  Justin Garcia  <justin.garcia@apple.com>
8134         Backing my change back in without the changes to VisiblePosition::next 
8135         and previous that weren't necessary to fix the bug and were causing some
8136         layout test failures.  Most of the failures appeared to be fixes but I
8137         want more time to investigate and have to move to on to another task.
8139         * editing/Selection.cpp:
8140         (WebCore::Selection::validate):
8141         * editing/visible_units.cpp:
8142         (WebCore::endOfWord):
8144 2007-09-08  Brady Eidson  <beidson@apple.com>
8146         Reviewed by Mark Rowe
8148         Fix the _NSAutoreleaseNoPool() errors on launch - We were using NSFileManager on the secondary
8149         thread with no NSAutoreleasePool in place
8151         * loader/icon/IconDatabase.cpp:
8152         (WebCore::IconDatabase::iconDatabaseSyncThread):
8154 2007-09-08  Sam Weinig  <sam@webkit.org>
8156         Add fix to the correct file.
8158         * loader/icon/SQLDatabase.h:
8159         * loader/icon/SQLStatement.h:
8161 2007-09-08  Sam Weinig  <sam@webkit.org>
8163         Fix Windows build.
8165         * loader/icon/SQLStatement.h: Disable boolean conversion warning.
8167 2007-09-08  Brady Eidson  <beidson@apple.com>
8169         Build fix for non-Mac platforms that use Icon Database
8171         * loader/icon/IconDatabase.cpp:
8172         (WebCore::IconDatabase::IconDatabase): Apparently only Mac has the beauty that is pthread_main_np()
8174 2007-09-08  Mark Rowe  <mrowe@apple.com>
8176         Build fix.
8178         * WebCore.xcodeproj/project.pbxproj: Headers used up in WebKit need to be be "private" rather than "project".
8180 2007-09-08  Brady Eidson  <beidson@apple.com>
8182         Reviewed by Darin
8184         <rdar://problem/5434431> - Asynchronous Icon Database
8186         The IconDatabase API was originally designed to be fully asynchronous - if an icon wasn't read in from disk
8187         when you asked for it, you would be notified when it was.
8189         Safari 2 did writes on a background thread, but reads blocked the main thread.
8191         The current WebCore implementation using SQLite attempted to get rid of the background thread by defering expensive 
8192         writes via timers, but falls short in moderate to extreme usage cases
8194         Time to make the IconDatabase live up to it's fully asynchronous destiny.
8196         This should -
8197         - Make the browser instantly usable while converting Safari 2 icons in the background occurs
8198         - Remedy any UI slowness/blocking when on slow network home directories
8199         - Remedy random UI slowness, pauses, and stutters do to random I/O occurring at the exact wrong time or under heavy
8200           disk usage from swapping or other apps on the system
8201         - Allow certain long-running procedures to be interruptible (Safari 2 import, reading icons in from disk when trying to quit, etc)
8203         This will have a noticeable effect on current Safari 2 and Safari 3 beta browsers, including icons not appearing in bookmarks, history,
8204         or the location field the first time they're asked for, as current released Safari's don't properly listen for these async notifations.  
8205         The second time such a menu or view is brought up, the icon should be there.
8207         Additionally this includes a SQLite schema change which will be a lot more efficient but will result in the loss of current SQLite icons.
8208         Converting from Safari 2 style icons will still work.
8210         WebCore, welcome to multi-threadedness
8212         * WebCore.exp:
8213         * WebCore.xcodeproj/project.pbxproj:
8214         * WebCore.vcproj/WebCore.vcproj:
8216         * loader/DocumentLoader.cpp:
8217         (WebCore::DocumentLoader::iconLoadDecisionAvailable): Called when an Icon becomes available that was requested by this 
8218           DocumentLoader (to support the webView:didReceiveIcon: delegate call in WebKit)
8219         * loader/DocumentLoader.h:
8221         * loader/FrameLoader.cpp:
8222         (WebCore::FrameLoader::iconLoadDecisionAvailable): Called from the DocumentLoaders who get notified - if the FrameLoader 
8223           ends up not caring because the WebView has transitioned to a new page, nothing occurs.  Otherwise, the FrameLoader possibly
8224           starts it Icon Loader and possibly sends the webView:didReceiveIcon: delegate call
8225         (WebCore::FrameLoader::startIconLoader): Instead of "Yes, load the icon now" or "No, don't load it" there is a third possibility -
8226           "You might be asked to load your icon later."  Add supporting logic for receiving this state, and being called a second time
8227           when the load decision is finally available.
8228         * loader/FrameLoader.h:
8230         * loader/FrameLoaderClient.h: Added "registerForIconNotification" which is a way to tell WebViews "The icon you are interested in might
8231           become available via the generic WebIconDatabaseDidAddIconNotification instead of a targeted delegate call"
8232           A WebView can then receive the generic notification and pass on it's own targeted delegate call.
8234         * loader/icon/IconDataCache.cpp: Removed.
8235         * loader/icon/IconDataCache.h: Removed.
8237         * loader/icon/IconDatabase.cpp:
8238         (WebCore::urlForLogging): Cut a URL down in length for sane logging and debugging
8239         (WebCore::defaultClient): Return the default, empty IconDatabaseClient incase the API doesn't set one.
8241         Following block of methods are for the Main thread's usage -
8242         (WebCore::IconDatabase::setClient):
8243         (WebCore::makeAllDirectories): Small optimization that checks to see if the entire path exists already, and doesn't try to loop
8244           through each patch component if the full path is already present
8245         (WebCore::IconDatabase::open): Makes all directories to the target path and kicks off the background thread - nothing more.
8246         (WebCore::IconDatabase::close): Signals the thread to quit and waits for it to do so
8247         (WebCore::IconDatabase::removeAllIcons): Purge the icon database
8248         (WebCore::IconDatabase::iconForPageURL):
8249         (WebCore::IconDatabase::readIconForPageURLFromDisk):
8250         (WebCore::IconDatabase::iconURLForPageURL):
8251         (WebCore::IconDatabase::defaultIcon):
8252         (WebCore::IconDatabase::retainIconForPageURL):
8253         (WebCore::IconDatabase::releaseIconForPageURL):
8254         (WebCore::IconDatabase::setIconDataForIconURL):
8255         (WebCore::IconDatabase::setIconURLForPageURL):
8256         (WebCore::IconDatabase::loadDecisionForIconURL): Determine if an icon loader should load now.  If the decision is "maybe later", then
8257           mark the DocumentLoader to be notified later when the final decision is available.
8258         (WebCore::IconDatabase::iconDataKnownForIconURL): Determine if the actual image data has been read from disk (or set from the loader) for 
8259           icon URL in question
8260         (WebCore::IconDatabase::setEnabled):
8261         (WebCore::IconDatabase::isEnabled):
8262         (WebCore::IconDatabase::setPrivateBrowsingEnabled):
8263         (WebCore::IconDatabase::isPrivateBrowsingEnabled):
8264         (WebCore::IconDatabase::delayDatabaseCleanup): Restore this method from a year ago, as asynchronous pruning of icons can now occur on a 
8265           background thread.
8266         (WebCore::IconDatabase::allowDatabaseCleanup):
8267         (WebCore::IconDatabase::checkIntegrityBeforeOpening):
8268         (WebCore::IconDatabase::pageURLMappingCount):
8269         (WebCore::IconDatabase::retainedPageURLCount):
8270         (WebCore::IconDatabase::iconRecordCount):
8271         (WebCore::IconDatabase::iconRecordCountWithData):
8272         (WebCore::IconDatabase::IconDatabase):
8273         (WebCore::IconDatabase::~IconDatabase):
8274         (WebCore::IconDatabase::notifyPendingLoadDecisions): Tell all the registered DocumentLoaders "Hey, we've read in all URL mappings from disk,
8275           so check to see if you are interested in any of them"
8276         (WebCore::IconDatabase::notifyPendingLoadDecisionsInternal):
8277         (WebCore::IconDatabase::wakeSyncThread): Wake the sync thread, if it is idle
8278         (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Even though we're on a background thread, we still defer writing out to disk during
8279           periods of high activity
8280         (WebCore::IconDatabase::syncTimerFired): Call wakeSyncThread()
8282         Following block of methods may be used by either thread -
8283         (WebCore::IconDatabase::isOpen):
8284         (WebCore::IconDatabase::databasePath):
8285         (WebCore::IconDatabase::defaultDatabaseFilename):
8286         (WebCore::IconDatabase::getOrCreateIconRecord):
8287         (WebCore::IconDatabase::getOrCreatePageURLRecord):
8289         Following block of methods are used by the secondary thread only -
8290         (WebCore::IconDatabase::importIconURLForPageURL): For the Safari 2 import procedure - write a URL mapping directly out to disk
8291         (WebCore::IconDatabase::importIconDataForIconURL): For the Safari 2 import procedure - write an Icon directly out to disk
8292         (WebCore::IconDatabase::shouldStopThreadActivity): To check and see if the thread should stop what it is doing now to do something
8293           more important (such as quit, or delete all icons)
8294         (WebCore::IconDatabase::iconDatabaseSyncThreadStart):
8295         (WebCore::IconDatabase::iconDatabaseSyncThread): Entry point for the background thread
8296         (WebCore::databaseVersionNumber):
8297         (WebCore::isValidDatabase):
8298         (WebCore::createDatabaseTables):
8299         (WebCore::IconDatabase::performOpenInitialization): Open and validate the SQLite database, making sure it's schema jives with what
8300           is expected
8301         (WebCore::IconDatabase::checkIntegrity):
8302         (WebCore::IconDatabase::performURLImport): Import all the Page URL -> Icon URL mappings from the database.  Done "1st thing" on startup,
8303           this is necessary to be able to give the loader decisions about whether or not it should load icons from the network
8304         (WebCore::IconDatabase::syncThreadMainLoop): Main loop - sleeps until woken up, then does a read cycle and a write cycle until both cycles
8305           do no work - then it goes back to sleep.
8306         (WebCore::IconDatabase::readFromDatabase): Reads icons from the database that clients are waiting on
8307         (WebCore::IconDatabase::writeToDatabase): Writes any changes page -> icon url mappings to disk, as well as any new image data that has 
8308           been received from the loader
8309         (WebCore::IconDatabase::pruneUnretainedIcons): Done only once, and only after the first write to the database, this procedure removes all
8310           icons and page URLs from disk that haven't been retained by any client.  Note that the prune can be delayed by utilizing delayDatabaseCleanup()
8311         (WebCore::IconDatabase::checkForDanglingPageURLs): Usually part of the prune procedure, prunes any pages who point to icons that no longer exist 
8312           in the database
8313         (WebCore::IconDatabase::removeAllIconsOnThread): Completely purge both the on-disk and in memory records of all icons
8314         (WebCore::IconDatabase::deleteAllPreparedStatements): Part of removeAllIcons and the thread cleanup procedure
8315         (WebCore::IconDatabase::cleanupSyncThread): Write out any last remaining writes to disk, close the database, and then end the thread
8316         (WebCore::IconDatabase::imported): Checks the DB to see if the Safari 2 import has occured
8317         (WebCore::IconDatabase::setImported): Sets the "Safari 2 imported" flag
8318         (WebCore::readySQLStatement):
8319         (WebCore::IconDatabase::setIconURLForPageURLInSQLDatabase): This and the following "SQLDatabase" suffixed methods are pretty self explanatory
8320         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
8321         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
8322         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
8323         (WebCore::IconDatabase::addIconURLToSQLDatabase):
8324         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
8325         (WebCore::IconDatabase::removeIconFromSQLDatabase):
8326         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
8327         * loader/icon/IconDatabase.h:
8329         * loader/icon/IconDatabaseClient.h: Added.
8330         (WebCore::IconDatabaseClient::~IconDatabaseClient):
8331         (WebCore::IconDatabaseClient::performImport): Perform the Safari 2 import, implemented by WebKit
8332         (WebCore::IconDatabaseClient::dispatchDidRemoveAllIcons): Send the API notification
8333         (WebCore::IconDatabaseClient::dispatchDidAddIconForPageURL): Ditto
8335         * loader/icon/IconDatabaseNone.cpp: Best attempt to keep non icon-DB platforms building
8336         (WebCore::IconDatabase::defaultDatabaseFilename):
8337         (WebCore::IconDatabase::readIconForPageURLFromDisk):
8338         (WebCore::IconDatabase::loadDecisionForIconURL):
8339         (WebCore::IconDatabase::iconDataKnownForIconURL):
8340         (WebCore::IconDatabase::setIconURLForPageURL):
8341         (WebCore::IconDatabase::isEnabled):
8342         (WebCore::IconDatabase::delayDatabaseCleanup):
8343         (WebCore::IconDatabase::allowDatabaseCleanup):
8344         (WebCore::IconDatabase::setClient):
8346         * loader/icon/IconRecord.cpp: Added.
8347         (WebCore::IconRecord::IconRecord): IconRecord used to be "IconDataCache" - it is merely a container for the url, timestamp, and image for a site icon.
8348           It is Shared, and therefore ref counted - PageURLRecords are the owning containers.  This is a tricky way to track how many page urls are retaining 
8349           an IconRecord and therefore tracking when we should try to get rid of one.
8350         (WebCore::IconRecord::~IconRecord):
8351         (WebCore::IconRecord::image):
8352         (WebCore::IconRecord::setImageData):
8353         (WebCore::IconRecord::loadImageFromResource):
8354         (WebCore::IconRecord::imageDataStatus): Return whether the image data hasn't been read yet, exists in memory, or is absent (site with no icon)
8355         (WebCore::IconRecord::snapshot): Returns a snapshot of the icon's data - url, timestamp, and image data - to be written to disk
8356         * loader/icon/IconRecord.h: Added.
8357         (WebCore::IconSnapshot::IconSnapshot):
8358         (WebCore::IconRecord::getTimestamp):
8359         (WebCore::IconRecord::setTimestamp):
8360         (WebCore::IconRecord::iconURL):
8361         (WebCore::IconRecord::retainingPageURLs):
8363         * loader/icon/PageURLRecord.cpp: Added.
8364         (WebCore::PageURLRecord::PageURLRecord): PageURLRecord is fundamentally a pairing of a Page URL to an Icon.  It has manual ref counting for the sake
8365           of "retainIconForPageURL" and "releaseIconForPageURL", and can provide a quick snapshot of it's Page URL -> Icon URL mapping for writing to
8366           the database
8367         (WebCore::PageURLRecord::setIconRecord):
8368         (WebCore::PageURLRecord::snapshot):
8369         * loader/icon/PageURLRecord.h: Added.
8370         (WebCore::PageURLSnapshot::PageURLSnapshot):
8371         (WebCore::PageURLRecord::url):
8372         (WebCore::PageURLRecord::PageURLRecord::iconRecord):
8373         (WebCore::PageURLRecord::retain):
8374         (WebCore::PageURLRecord::release):
8375         (WebCore::PageURLRecord::retainCount):
8377         * platform/SharedBuffer.cpp:
8378         (WebCore::SharedBuffer::copy): Added a deep copy method for the purposes of handing icon data across the thread boundary into the icon database
8379         * platform/SharedBuffer.h:
8381         * platform/graphics/svg/SVGImageEmptyClients.h:
8382         (WebCore::SVGEmptyFrameLoaderClient::registerForIconNotification):
8384         * platform/win/TemporaryLinkStubs.cpp:
8385         (WebCore::callOnMainThread): Only other IconDatabase utilizing platform - keep their build going
8387 2007-09-07  David Kilzer  <ddkilzer@apple.com>
8389         Reviewed by Timothy Hatcher.
8391         Housekeeping.  No test required.
8393         * bindings/objc/WebScriptObjectInternal.h: Removed unused file.
8394         * bindings/objc/WebScriptObjectPrivate.h: Updated copyright statement.
8396 2007-09-07  Justin Garcia  <justin.garcia@apple.com>
8397         
8398         Rolling out my changes from r25421 while I investigate the layout test failures
8399         they caused.
8400         
8401         * editing/Selection.cpp:
8402         (WebCore::Selection::validate):
8403         * editing/VisiblePosition.cpp:
8404         (WebCore::VisiblePosition::next):
8405         (WebCore::VisiblePosition::previous):
8406         (WebCore::VisiblePosition::lastEditablePositionAtOrBefore):
8407         (WebCore::VisiblePosition::firstEditablePositionAtOrAfter):
8408         * editing/VisiblePosition.h:
8409         * editing/visible_units.cpp:
8410         (WebCore::endOfWord):
8411         (WebCore::previousWordPosition):
8412         (WebCore::nextWordPosition):
8413         (WebCore::startOfLine):
8414         (WebCore::endOfLine):
8415         (WebCore::previousSentencePosition):
8416         (WebCore::nextSentencePosition):
8418 2007-09-05  Geoffrey Garen  <ggaren@apple.com>
8420         Reviewed by Darin Adler, Maciej Stachowiak, Mark Rowe, Tim Hatcher.
8421         
8422         Fixed <rdar://problem/5326009> Make non-browser WebKit clients have no 
8423         memory cache, or a very tiny one
8425         Added a client callback to notify WebKit when the first navigation has
8426         taken place. "Navigation" here means a transition from one page to 
8427         another that ends up in the back/forward list.
8428         
8429         WebKit Mac uses this notification to grow its cache model under certain
8430         circumstances.
8431         
8432         * loader/FrameLoader.cpp:
8433         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
8434         * loader/FrameLoaderClient.h:
8436         * platform/graphics/svg/SVGImageEmptyClients.h:
8437         (WebCore::SVGEmptyFrameLoaderClient::didPerformFirstNavigation): Ah, 
8438         SVGEmptyFrameLoaderClient, my old friend. 
8440 2007-09-07  Adele Peterson  <adele@apple.com>
8442         Reviewed by Dave Harrison.
8444         Fix for <rdar://problem/5428427> Wrong characters are re-converted after doing reconversion with Kotoeri
8446         Revert change for<rdar://problem/5279521> and add nil checks for the result of TextIterator::rangeFromLocationAndLength
8447         TextIterator::exitNode shouldn't require the m_lastTextNode to be true, but we can't change that without making the logic in _web_attributedStringFromRange match.
8448         We'll get that for free when we switch to use TextIterator in _web_attributedStringFromRange.
8450         * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyBlockStyle): Added nil checks.
8451         * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::indentRegion): ditto.
8452         * editing/TextIterator.cpp: (WebCore::TextIterator::exitNode): Re-added check for m_lastTextNode before emitting newline.
8454 2007-09-07  Ada Chan  <adachan@apple.com>
8456         <rdar://problem/5395928> Need to be able to handle context menu item selection by index
8457         
8458         Reviewed by Beth.
8460         * platform/ContextMenu.h: Added method to retrieve context menu item by index
8461         * platform/win/ContextMenuWin.cpp:
8462         (WebCore::ContextMenu::ContextMenu): call setPlatformDescription() since that will handle
8463         adding the MNS_NOTIFYBYPOS style to the context menu.
8464         (WebCore::contextMenuItemByIdOrPosition): helper method so we don't have to duplicate code
8465         between itemWithAction() and itemAtIndex().
8466         (WebCore::ContextMenu::itemWithAction):
8467         (WebCore::ContextMenu::itemAtIndex):
8468         (WebCore::ContextMenu::setPlatformDescription): add MNS_NOTIFYBYPOS style to the context menu
8469         so we will get notified by menu position through WM_MENUCOMMAND when the item is selected.
8471 2007-09-07  Justin Garcia  <justin.garcia@apple.com>
8473         Reviewed by Darin.
8474         
8475         <rdar://problem/5057506> Double-clicking after ToDo content doesn't select the paragraph break
8476         
8477         * editing/Selection.cpp:
8478         (WebCore::Selection::validate):
8479         Moved the code that moves across a paragraph boundary
8480         when expanding selections by word granularity from
8481         endOfWord to here.
8482         In the word and paragraph granularity cases, if the 
8483         end of the selection is at the end of the last paragraph 
8484         in the last cell of a block table, expand it so that 
8485         it ends at the start of the paragraph after the table, 
8486         instead of just after the table, so that ToDo content 
8487         gets the same double/tripled click behavior that normal 
8488         paragraphs get (added two testcases).
8489         When expanding the selection to include paragraph
8490         breaks, pass VisiblePosition::next true so that it
8491         doesn't change editability.
8492         * editing/VisiblePosition.cpp:
8493         (WebCore::VisiblePosition::next): Renamed the bool because it's now also
8494         used to keep non-editable positions non-editable.
8495         (WebCore::VisiblePosition::previous): Ditto.
8496         (WebCore::VisiblePosition::lastPositionWithSameEditabilityAtOrBefore):
8497         Renamed this function and made it also work with non-editable positions.
8498         (WebCore::VisiblePosition::firstPositionWithSameEditabilityAtOrAfter):
8499         Ditto.
8500         * editing/VisiblePosition.h:
8501         * editing/visible_units.cpp:
8502         (WebCore::endOfWord): Called the renamed function.
8503         (WebCore::previousWordPosition): Ditto.
8504         (WebCore::nextWordPosition): Ditto.
8505         (WebCore::startOfLine): Ditto.
8506         (WebCore::endOfLine): Ditto.
8507         (WebCore::previousSentencePosition): Ditto.
8508         (WebCore::nextSentencePosition): Ditto.
8510 2007-09-07  Brady Eidson  <beidson@apple.com>
8512         Reviewed by Sam
8514         <rdar://problem/5089241> - ASSERT and other funky effects in IconLoader with large 404 pages
8516         There were two problems:
8517         1 - I originally didn't expect SubresourceLoader to keep pulling in data after it received a 404 response,
8518             but if the server sends back a complex 404 page, the loader did just that.  That could result in the 
8519             IconLoader "finishing" twice
8520         2 - In this case, the long messy 404 page would be committed to the database as image data.  This would 
8521             result in wasted space on disk, wasted space in RAM, and wasting processor time trying to parse 50k+
8522             of HTML as image data
8524         Fix is two parts - 1, monitor the "m_loadIsInProgress" flag and 2, make ::finishLoading() take an actual 
8525         SharedBuffer argument that is what should be committed to the database so the ResourceHandle is unnecessary
8527         * loader/icon/IconLoader.cpp:
8528         (WebCore::IconLoader::didReceiveResponse): If the response is not valid, commit null data 
8529         (WebCore::IconLoader::didFail): If we've already finished loading once (the 404 response), don't
8530           finish again!
8531         (WebCore::IconLoader::didFinishLoading): Ditto
8532         (WebCore::IconLoader::finishLoading): Take a SharedBuffer argumnt as the actual data to commit
8533         * loader/icon/IconLoader.h: Add a SharedBuffer arg to ::finishLoading()
8535 2007-09-07  Brady Eidson  <beidson@apple.com>
8537         Reviewed by Darin
8539         Inline the in-header definitions for non-Mac platforms
8541         * platform/AutodrainedPool.h:
8542         (WebCore::AutodrainedPool::AutodrainedPool):
8543         (WebCore::AutodrainedPool::~AutodrainedPool):
8544         (WebCore::AutodrainedPool::cycle):
8546 2007-09-07  Brady Eidson  <beidson@apple.com>
8548         Reviewed by Darin
8550         Add some AutoreleasePool and Threading utilities in preparation for the multi-threaded
8551         fix for <rdar://problem/5434431>
8553         AutodrainedPool wraps an NSAutoreleasePool and tracks a "cycle" count.  This allows clients
8554         in WebCore to simply call ::cycle() and after a preset number of iterations the pool will drain
8555         and recreate the underlying NSAutoreleasePool
8556    
8557         Threading utilities include C++ wrappers for pthread mutexes and conditions, as well as a generic
8558         "callOnMainThread()" function for any non-main thread to use.
8560         * platform/AutodrainedPool.h: Added.  
8561         (WebCore::AutodrainedPool::AutodrainedPool): Empty implementations for all non-mac platforms
8562         (WebCore::AutodrainedPool::~AutodrainedPool): ditto
8563         (WebCore::AutodrainedPool::cycle): ditto
8564         * platform/mac/AutodrainedPool.mm: Added.
8565         (WebCore::AutodrainedPool::AutodrainedPool): 
8566         (WebCore::AutodrainedPool::~AutodrainedPool):
8567         (WebCore::AutodrainedPool::cycle): Keep track of number of cycles, and drain/recreate the pool if the
8568           cycle limit is hit
8570         * platform/Threading.h: Added.
8571         (WebCore::Mutex::Mutex): C++ wrapper for pthread_mutex
8572         (WebCore::Mutex::~Mutex):
8573         (WebCore::Mutex::lock):
8574         (WebCore::Mutex::tryLock):
8575         (WebCore::Mutex::unlock):
8576         (WebCore::MutexLocker::MutexLocker): Handles automatically locking/unlocking a Mutex (for early returns
8577           from a function, for example)
8578         (WebCore::MutexLocker::~MutexLocker):
8579         (WebCore::ThreadCondition::ThreadCondition): C++ wrapper for pthread_condition
8580         (WebCore::ThreadCondition::~ThreadCondition):
8581         (WebCore::ThreadCondition::wait):
8582         (WebCore::ThreadCondition::signal):
8583         (WebCore::ThreadCondition::broadcast):
8584         * platform/mac/Threading.mm: Added.
8585         (-[WebCoreFunctionWrapper initWithFunction:]): Obj-C implementation of "callOnMainThread"
8586         (-[WebCoreFunctionWrapper _call]):
8587         (WebCore::callOnMainThread):
8589 2007-09-07  George Staikos  <staikos@kde.org>
8591         Fix typo.
8593         * loader/ProgressTracker.h:
8594         (WebCore::ProgressTracker::totalPageAndResourceBytesToLoad):
8596 2007-09-07  Qing Zhao  <qing@staikos.net>
8598         Reviewed by Anders and George.
8600         Add accessors for these two variables.
8602         * loader/ProgressTracker.h:
8603         (WebCore::ProgressTracker::totalPageAndResourseBytesToLoad):
8604         (WebCore::ProgressTracker::totalBytesReceived):
8606 2007-09-06  Tristan O'Tierney  <tristan@apple.com>
8608         Reviewed by Maciej Stachowiak.
8609         
8610         <rdar://problem/5333496> Back button stopped working on sfgate.com (14957)
8611         
8612         This fix is specifically targted to address sfgate.com and reuters.com with minimal
8613         impact to other areas of the frameloader.  It does not cause any regression tests to fail.
8614         I've added two layout tests: One to detect this particular bug, and one to address
8615         a secondary issue: if an iframe navigation occurs during onload by a timeout an
8616         additional history item is added, similarly to firefox.  We tried to match firefox
8617         more than IE with this fix but did gain a little bit of IE compatability.
8619         Tests: http/tests/navigation/onload-navigation-iframe-timeout.html
8620                http/tests/navigation/onload-navigation-iframe.html
8622         * dom/Document.h:
8623         (WebCore::Document::processingLoadEvent):
8624         Return the m_processingLoadEvent boolean so FrameLoader knows
8625         that the document is in the middle of calling <body onload>
8626         
8627         * html/HTMLFrameOwnerElement.cpp:
8628         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
8629         * html/HTMLFrameOwnerElement.h:
8630         (WebCore::HTMLFrameOwnerElement::createdByParser):
8631         (WebCore::HTMLFrameOwnerElement::setCreatedByParser):
8632         Added support for a new member variable of frame elements: m_createdByParser.
8633         This lets us specifically target the fix to only iframes created via JS
8634         and not in-document.
8635         
8636         * loader/FrameLoader.cpp:
8637         (WebCore::FrameLoader::FrameLoader):
8638         Initialize m_navigationDuringLoad to false
8639         
8640         (WebCore::FrameLoader::provisionalLoadStarted):
8641         Determine if the load we're about to start is occuring during
8642         an onload.
8643         
8644         (WebCore::FrameLoader::updateHistoryForStandardLoad):
8645         If the current frameloader is for a child frame, and the navigation is occuring
8646         during an onload update the current history item rather than adding a new one.
8647         
8648         * loader/FrameLoader.h:
8649         Added a new member variable, m_navigationDuringLoad to track
8650         the navigation status during the on load, rather than trying to determine
8651         the status after (which is nearly impossible due to a new runloop spin).
8653 2007-09-06  David Kilzer  <ddkilzer@apple.com>
8655         Reviewed by Darin.
8657         The implementation of BackForwardList::clearPageCache() was removed in r21793.
8658         It's now safe to remove it from the header.
8660         * history/BackForwardList.h: Removed clearPageCache().
8662 2007-09-06  Anders Carlsson  <andersca@apple.com>
8664         Reviewed by Ada.
8666         <rdar://problem/5457844>
8667         Crash when using mouse wheel with plug-ins disabled.
8669         Null check the widget.
8671         * page/EventHandler.cpp:
8672         (WebCore::EventHandler::handleWheelEvent):
8674 2007-09-06  Anders Carlsson  <andersca@apple.com>
8676         Reviewed by Mitz.
8678         Small tweak.
8679         
8680         * plugins/win/PluginStreamWin.cpp:
8681         (WebCore::PluginStreamWin::startStream):
8683 2007-09-06  Anders Carlsson  <andersca@apple.com>
8685         Reviewed by Adam and Steve.
8687         <rdar://problem/5459321>
8688         ADOBE: Safari 3 on Windows is passing bogus values in stream->headers in NPP_NewStream, causing Flash Player to crash.
8689         
8690         Serialize the headers into a stream and pass it to NPP_NewStream in stream->headers.
8691         
8692         * plugins/win/PluginStreamWin.cpp:
8693         (WebCore::PluginStreamWin::startStream):
8694         * plugins/win/PluginStreamWin.h:
8696 2007-09-06  Darin Adler  <darin@apple.com>
8698         Reviewed by Hyatt.
8700         - fix http://bugs.webkit.org/show_bug.cgi?id=15153
8701           REGRESSION: Assertion failure in FrameView::scheduleRelayout() (m_frame->view() == this)
8703         Back out the willRemove() part of the previous patch.
8704         It was incorrect and not needed to fix the bug anyway.
8706         * dom/Document.cpp: (WebCore::Document::detach): Remove willRemove().
8708         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Put the willRemove() call
8709         back here where it was originally before the previous fix.
8711         * history/CachedPage.cpp: (WebCore::CachedPage::clear):
8712         * page/Frame.cpp:
8713         (WebCore::Frame::setView):
8714         (WebCore::Frame::setDocument):
8715         Added FIXMEs about the fact that we call detach() on the document but not willRemove().
8717 2007-09-05  Timothy Hatcher  <timothy@apple.com>
8719         Reviewed by Darin.
8721         Changed the blocked exception log message to match AppKit's blocked exception message.
8723         * platform/mac/BlockExceptions.mm:
8724         (ReportBlockedObjCException):
8726 2007-09-06  Darin Adler  <darin@apple.com>
8728         Reviewed by Hyatt.
8730         - <rdar://problem/5457865> REGRESSION (9A527): Safari crashes when opening a page
8731           that immediately redirects to a PDF
8733         I don't know how to make an automated test that trips over this.
8735         The immediate cause of this regression was making a back/forward list entry in
8736         this case. Earlier, the quick redirect would not results in a separate entry.
8737         That's possibly a bug too, but it's better to fix the crash first.
8739         The page cache was putting the document into a strange state: Still attached but
8740         with the renderer set to 0. There was no good reason to do this, so got rid of it.
8741         Moved the responsibility to the caller of not calling detach() when moving into
8742         the page cache. This is more of a frame loader thing than a document thing.
8744         * dom/Document.cpp: (WebCore::Document::detach): Added assertions that this is
8745         only called on a document that's attached and not in the page cache. Also moved
8746         the call to willRemove in here, so that callers can't make the mistake of not
8747         calling that function. Removed the incorrectly-positioned code that made this
8748         function do less if it was called on a document in the page cache.
8750         * history/CachedPage.cpp: (WebCore::CachedPage::clear): Removed the code to handle
8751         a document with a renderer of 0. There was no need to put the document into this
8752         state. Any document in the page cache will always be "attached".
8754         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Added a check to prevent
8755         from calling an unnecessary cancelParsing() on a document that's in the page cache
8756         and guard the call to detach() with a check of attached(), like all other calls to
8757         detach() on DOM objects.
8759         * page/Frame.cpp:
8760         (WebCore::Frame::setView): Added a missing check of attached(), like all other
8761         calls to detach() on DOM objects. Also added code to not call detach() on the
8762         document when it's in the page cache.
8763         (WebCore::Frame::setDocument): This call site already had the attached() check,
8764         but was missing the page cache check.
8766 2007-09-05  David Harrison  <harrison@apple.com>
8768         Reviewed by Darin.
8770         Follow up on my fix for <rdar://problem/5306171>.
8771         My first patch (r25373) broke svg/custom/stroke-width-click.svg.
8773         * editing/TextIterator.cpp:
8774         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
8775         Add currPos.isNotNull() check because positions in non-html content (like svg)
8776         do not have visible positions, and we don't want to emit for them either.
8778 2007-09-06  Mitz Pettel  <mitz@webkit.org>
8780         Reviewed by Adam Roben.
8782         - fix http://bugs.webkit.org/show_bug.cgi?id=14685
8783           <rdar://problem/5349755> text-align affects <select> button but not its drop-down menu
8785         * platform/PlatformString.h:
8786         (WebCore::String::defaultWritingDirection):
8787         * platform/StringImpl.cpp:
8788         (WebCore::StringImpl::defaultWritingDirection): Moved textDirectionForParagraph()
8789         from RenderMenuList.cpp here.
8790         * platform/StringImpl.h:
8791         * platform/win/PopupMenuWin.cpp:
8792         (WebCore::PopupMenu::itemWritingDirectionIsNatural): Changed to return 'true'.
8793         (WebCore::PopupMenu::paint): Changed to use natural directionality for menu
8794         items.
8795         * rendering/RenderMenuList.cpp:
8796         (WebCore::RenderMenuList::adjustInnerStyle): Use defaultWritingDirection.
8798 2007-09-06  Maciej Stachowiak  <mjs@apple.com>
8800         Reviewed by Oliver Hunt.
8802         - fixed <rdar://problem/5455457> REGRESSION (9A527-9A535): Colloquy crash on launch in WebCoreScriptDebugger initWithDelegate (with announce.js plug-in installed)
8804         * page/mac/FrameMac.mm:
8805         (WebCore::Frame::windowScriptObject): Ensure that -[WebView
8806         windowScriptObject] and -[WebFrame windowObject] return null until
8807         the windowScriptObjectAvailable: delegate method is sent.
8809 2007-09-05  David Harrison  <harrison@apple.com>
8811         Reviewed by Kevin Decker.
8813         <rdar://problem/5306171> Mail: The first return after an attachment in multipart/mixed message is lost
8815         Test added: editing/selection/toString-1.html
8816         
8817         Source changes:
8818         * editing/TextIterator.cpp:
8819         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
8820         - Remove outdated and erroneous check for m_lastTextNode.
8821         - Fix VisiblePosition check to look for line diff. Simple position diff gives the
8822         wrong answer when the start is table/0 and the current is the first position
8823         inside the content of the table.
8825 2007-09-04  Brett Wilson  <brettw@chromium.org>
8827         Reviewed by Maciej Stachowiak.
8829         http://bugs.webkit.org/show_bug.cgi?id=15072
8830         Bug 15072: Fix ImageDecoder.cpp to not copy incoming data
8832         Change ImageDecoder::setData to take a SharedBuffer*.
8834         * platform/graphics/cairo/ImageSourceCairo.cpp:
8835         (WebCore::ImageSource::setData):
8836         * platform/image-decoders/ImageDecoder.h:
8837         (WebCore::RGBA32Buffer::bytes):
8838         (WebCore::RGBA32Buffer::height):
8839         (WebCore::ImageDecoder::setData):
8840         * platform/image-decoders/gif/GIFImageDecoder.cpp:
8841         (WebCore::GIFImageDecoder::setData):
8842         (WebCore::GIFImageDecoder::frameCount):
8843         (WebCore::GIFImageDecoder::decode):
8844         (WebCore::GIFImageDecoder::decodingHalted):
8845         (WebCore::GIFImageDecoder::initFrameBuffer):
8846         * platform/image-decoders/gif/GIFImageDecoder.h:
8847         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
8848         (WebCore::JPEGImageDecoder::setData):
8849         (WebCore::JPEGImageDecoder::decode):
8850         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
8851         * platform/image-decoders/png/PNGImageDecoder.cpp:
8852         (WebCore::PNGImageDecoder::setData):
8853         (WebCore::PNGImageDecoder::decode):
8854         (WebCore::PNGImageDecoder::headerAvailable):
8855         (WebCore::PNGImageDecoder::rowAvailable):
8856         * platform/image-decoders/png/PNGImageDecoder.h:
8858 2007-09-04  David Hyatt  <hyatt@apple.com>
8860         Fix for <rdar://problem/5271213>, resizing iChat window is slower than in
8861         Tiger. This patch implements a fast scaling mode that can be used by
8862         WebViews, e.g., during window resizing.
8864         Reviewed by John Sullivan
8866         * WebCore.exp:
8867         * WebCore.xcodeproj/project.pbxproj:
8868         * page/Frame.cpp:
8869         (WebCore::FramePrivate::FramePrivate):
8870         * page/Page.cpp:
8871         (WebCore::Page::Page):
8872         (WebCore::Page::inLowQualityImageInterpolationMode):
8873         (WebCore::Page::setInLowQualityImageInterpolationMode):
8874         * page/Page.h:
8875         * platform/graphics/GraphicsContext.cpp:
8876         (WebCore::GraphicsContext::drawImage):
8877         * platform/graphics/GraphicsContext.h:
8878         (WebCore::GraphicsContext::setUseLowQualityImageInterpolation):
8879         (WebCore::GraphicsContext::useLowQualityImageInterpolation):
8880         * platform/graphics/cg/GraphicsContextCG.cpp:
8881         (WebCore::GraphicsContext::setUseLowQualityImageInterpolation):
8882         (WebCore::GraphicsContext::useLowQualityImageInterpolation):
8883         * rendering/RenderImage.cpp:
8884         (WebCore::RenderImage::paint):
8886 2007-09-04  Brady Eidson  <beidson@apple.com>
8888         Reviewed by Adam
8890         Some SQLite tweaks for debugging
8891         -In debug builds, track the thread that opened the database and enforce that any statements
8892          that operate on the SQLDatabase do so from the thread that opened it
8893         -Track whether or not a transaction is in progress for the SQLDatabase to find cases where
8894          someone opens a new transaction while there is still one outstanding (a SQLite logic error)
8896         * loader/icon/SQLDatabase.cpp:
8897         (WebCore::SQLDatabase::SQLDatabase): 
8898         (WebCore::SQLDatabase::open): Track the opening thread.  Also, return false if the DB failed to
8899           open instead of trying to run a PRAGMA on it!
8900         (WebCore::SQLDatabase::close): Reset the opening thread
8901         * loader/icon/SQLDatabase.h:
8902         (WebCore::SQLDatabase::transactionInProgress): 
8903         (WebCore::SQLDatabase::sqlite3Handle): For access to the raw sqlite3* handle to do a thread
8904           safety check
8906         * loader/icon/SQLStatement.cpp:
8907         (WebCore::SQLStatement::prepare): Use the new sqlite3Handle accessor
8908         (WebCore::SQLStatement::step): Ditto
8910         * loader/icon/SQLTransaction.cpp:
8911         (WebCore::SQLTransaction::SQLTransaction): Removed the c'tor form that could automatically
8912           begin the transaction - never used and shouldn't be in practice!
8913         (WebCore::SQLTransaction::begin): Maintain the transaction-in-progress flag on the DB
8914         (WebCore::SQLTransaction::commit): Ditto
8915         (WebCore::SQLTransaction::rollback): Ditto
8916         * loader/icon/SQLTransaction.h:
8918 2007-09-04  David Harrison  <harrison@apple.com>
8920         Reviewed by Maciej and John.
8922         <rdar://problem/5452675> CrashTracer: [USER] 10 crashes in Mail at com.apple.WebCore: WebCore::Node::nodeIndex const + 6
8924         * editing/InsertParagraphSeparatorCommand.cpp:
8925         (WebCore::InsertParagraphSeparatorCommand::doApply):
8926         Adjust pos to pos.downstream() after the refNode is calculated, but before the insertion. Doing it earlier
8927         undid the logic of positionAvoidingSpecialElementBoundary(). The downstream is still needed just to set the
8928         ending selection.
8930 2007-09-04  Antti Koivisto  <antti@apple.com>
8932         Reviewed by Maciej.
8933         
8934         Fix <rdar://problem/5452112>
8935         REGRESSION: Initially focused textfield on www.mac.com login page has no insertion point, and doesn't accept typed characters
8936         
8937         Use updateLayoutIgnorePendingStylesheets() instead of updateLayout(). We need to have rendering to set input focus.
8939         Test: fast/forms/focus-style-pending.html
8941         * dom/Element.cpp:
8942         (WebCore::Element::focus):
8944 2007-09-04  Girish Ramakrishnan  <girish@trolltech.com>
8946         Reviewed by Simon.
8948         Fixed Qt build on Windows
8950         * html/HTMLFormElement.cpp:
8951         (WebCore::pathGetFilename):
8953 2007-09-03  David Harrison  <harrison@apple.com>
8955         Reviewed by Kevin Decker.
8957         <rdar://problem/5456785> REGRESSION (r15963-r15970): Heading text not placed in VoiceOver Item Chooser (15132)
8959         * bridge/mac/WebCoreAXObject.mm:
8960         (-[WebCoreAXObject title]):
8961         For headings, return the text under the element instead of nil.
8963 2007-08-20  Oleg Sukhodolsky <son.two@gmail.com>
8965         Reviewed by Mark.
8967         WebKitQt/WebCoreSupport should not be added to INCLUDEPATH for gdk-port
8969         * WebCore.pro:
8971 2007-09-03  Mark Rowe  <mrowe@apple.com>
8973         Reviewed by Tim Hatcher.
8975         <rdar://problem/5452164> Production build with in symbols directory has no debug info
8977         Enable debug symbol generation on all build configurations.  Production builds are stripped
8978         of symbols by Xcode during deployment post-processing.
8980         * Configurations/Base.xcconfig:
8981         * WebCore.xcodeproj/project.pbxproj:
8983 2007-09-02  Brady Eidson  <beidson@apple.com>
8985         Reviewed by John Sullivan and Mark Rowe
8987         Groundwork for support for monitoring IconDatabase in-memory statistics
8989         * WebCore.exp:
8990         * loader/icon/IconDatabase.cpp:
8991         (WebCore::IconDatabase::pageURLMappingCount): Stub for now
8992         (WebCore::IconDatabase::retainedPageURLCount): Ditto
8993         (WebCore::IconDatabase::iconRecordCount): Ditto
8994         (WebCore::IconDatabase::iconRecordCountWithData): Ditto
8995         * loader/icon/IconDatabase.h:
8997 2007-09-02  Mark Rowe  <mrowe@apple.com>
8999         Reviewed by Antti.
9001         <rdar://problem/5454704> WebKit seems to get too-narrow widths for "Monotype Corsiva", so lays out incorrectly
9003         * platform/mac/FontDataMac.mm:
9004         (WebCore::FontData::determinePitch): Work around NSFont incorrectly reporting Monotype Corsiva as fixed pitch.
9006 2007-09-01  Darin Adler  <darin@apple.com>
9008         - rolled out fix for bug 12988 because it broke getElementById in a layout test
9009           I'm working on a new fix.
9011         * dom/Document.cpp: Rolled out.
9013 2007-09-01  Oliver Hunt  <oliver@apple.com>
9015         Reviewed by Sam.
9017         <rdar://problem/5344848> IME is incorrectly used for key events when on non-editable regions
9019         Adding a new EditorClient method so it is possible to inform WebKit of focus changes.
9020         Also added new virtual method Node::shouldUseInputMethod to allow us to trivially check
9021         whether an input method should be used when processing input for the currently focused
9022         Node.
9024         * bridge/EditorClient.h:
9025         * dom/Node.cpp:
9026         (WebCore::Node::shouldUseInputMethod):
9027         * dom/Node.h:
9028         * html/HTMLInputElement.cpp:
9029         (WebCore::HTMLInputElement::shouldUseInputMethod):
9030         * html/HTMLInputElement.h:
9031         * html/HTMLTextAreaElement.cpp:
9032         (WebCore::HTMLTextAreaElement::shouldUseInputMethod):
9033         * html/HTMLTextAreaElement.h:
9034         * page/FocusController.cpp:
9035         (WebCore::FocusController::setFocusedNode):
9036         * platform/graphics/svg/SVGImageEmptyClients.h:
9037         (WebCore::SVGEmptyEditorClient::setInputMethodState):
9039 2007-09-01  Rob Buis  <buis@kde.org>
9041         Reviewed by Darin.
9043         http://bugs.webkit.org/show_bug.cgi?id=12988
9044         First element (in document order) is not returned when other duplicate ID-ed elements were created first
9046         Reset the element id cache when id's are added or removed and there
9047         are duplicates for that id.
9049         Tests: fast/dom/duplicate-ids-document-order.html
9051         * dom/Document.cpp:
9052         (WebCore::Document::getElementById):
9053         (WebCore::Document::addElementById):
9054         (WebCore::Document::removeElementById):
9056 2007-09-01  Rob Buis  <buis@kde.org>
9058         Reviewed by Darin.
9060         http://bugs.webkit.org/show_bug.cgi?id=15083
9061         Some symbols in WebKit do not need to be exported
9063         Do not export these symbols.
9065         * dom/QualifiedName.cpp:
9066         (WebCore::hashComponents):
9067         * dom/XMLTokenizer.cpp:
9068         (WebCore::toString):
9069         (WebCore::getTokenizer):
9070         * history/HistoryItem.cpp:
9071         (WebCore::defaultNotifyHistoryItemChanged):
9072         * platform/Arena.cpp:
9073         (WebCore::CeilingLog2):
9074         * platform/graphics/Color.cpp:
9075         (WebCore::calcHue):
9076         * platform/graphics/Path.cpp:
9077         (WebCore::pathLengthApplierFunction):
9078         * platform/graphics/cg/PathCG.cpp:
9079         (WebCore::CGPathToCFStringApplierFunction):
9080         (WebCore::CFStringFromCGPath):
9081         * rendering/RenderText.cpp:
9082         (WebCore::isSpaceAccordingToStyle):
9084 2007-08-31  Alice Liu  <alice.liu@apple.com>
9086         Reviewed by Tim Hatcher.
9088         Fixed <rdar://problem/5420682> Mail crashes at WebCore::InsertLineBreakCommand::doApply() after dropping a selected image over container's close box
9090         * editing/DeleteButtonController.cpp:
9091         (WebCore::DeleteButtonController::show):
9092         Factored out the code in ::show() that created and styled the elements of the Deletion UI
9094         (WebCore::DeleteButtonController::createDeletionUI):
9095         Neglecting to move the append of the deletionUI elements into the same clause that handles the creation
9096         of them ended up creating multiple elements at were repeatedly appended to the target, resulting in a 
9097         bloated table deletion UI which was slow to show and hide. 
9099         * editing/DeleteButtonController.h:
9100         (WebCore::DeleteButtonController::enabled):
9101         Restore this function to how it used to be pre-r25305, sans asserts
9103         * editing/EditCommand.cpp:
9104         Add disable/enable sandwich when undoing/redoing commands too
9105         (WebCore::EditCommand::unapply):
9106         (WebCore::EditCommand::reapply):
9108 2007-08-31  Antti Koivisto  <antti@apple.com>
9110         Reviewed by Anders.
9112         Fix <rdar://problem/5452943>
9113         REGRESSION (r25283): Reproducible crash in HTMLObjectElement::getInstance under guard malloc
9114         
9115         Calling updateLayoutIgnorePendingStylesheets() may do arbitrary things to render tree so
9116         no RenderObjects can be cached over it.
9118         * html/HTMLEmbedElement.cpp:
9119         (WebCore::findWidgetRenderer):
9120         (WebCore::HTMLEmbedElement::getInstance):
9121         * html/HTMLObjectElement.cpp:
9122         (WebCore::HTMLObjectElement::getInstance):
9124 2007-08-31  Anders Carlsson  <andersca@apple.com>
9126         Reviewed by Mitz.
9128         <rdar://problem/5443936>
9129         Crash after QT movie completes playback at apple.com/imac
9130         
9131         If the plug-in or one of its children have focus, set it to NULL to prevent the web view window from getting the focus, 
9132         which can cause a layout to happen while in HTMLObjectElement::detach. (This is what we do on the Mac).
9133         
9134         * plugins/win/PluginViewWin.cpp:
9135         (WebCore::PluginViewWin::setParent):
9137 2007-08-30  Adele Peterson  <adele@apple.com>
9139         Reviewed by Justin.
9141         Fix for <rdar://problem/5450600> REGRESSION: can't paste in textfield if its in a body that has user-select:none set (affects widgets)
9143         Test: editing/pasteboard/paste-plaintext-user-select-none.html
9145         * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::insertFragmentForTestRendering):
9146           Copy the user-select style from the current selection node and apply it so it is considered during the test rendering.
9147           This is important since we recently changed user-select to be inherited.  When we consider valid VisiblePositions for the test rendering,
9148           we need to have the correct user-select value that will actually be used for the real insertion.
9150 2007-08-31  Anders Carlsson  <andersca@apple.com>
9152         Reviewed by Oliver.
9154         <rdar://problem/5423939>
9155         http://bugs.webkit.org/show_bug.cgi?id=15013
9156         ASSERTION FAILED !m_inDestructor in WebCore::Shared<WebCore::PluginStreamWin>::ref() on Windows
9157         
9158         Protect the stream in case it's destroyed by the plug-in.
9159         
9160         * plugins/win/PluginStreamWin.cpp:
9161         (WebCore::PluginStreamWin::didReceiveData):
9163 a2007-08-31  Darin Adler  <darin@apple.com>
9165         Reviewed by Anders.
9167         - http://bugs.webkit.org/show_bug.cgi?id=15122
9169         * editing/htmlediting.cpp: (WebCore::avoidIntersectionWithNode):
9170         Change assertion so that it only fires when actually modifying the selection.
9171         This isn't nearly as helpful, because the old assertion could catch potential
9172         problems in more cases, but it's not obvious how to do better.
9174 2007-08-30  Oliver Hunt  <oliver@apple.com>
9176         Reviewed by Adam.
9177         
9178         <rdar://problem/5430772> REGRESSION(303-310A5) list items do not show with mouse over on istweb.apple.com/quack.apple.com
9179         
9180         VC++ treats bitfields as signed members, so Node::m_styleChange would be
9181         sign extended if it was assigned the value FullStyleChange.  This caused
9182         style recalculation to stop propagating.  
9183         
9184         We work around this VC++ oddity by storing the enum as an unsigned, and
9185         casting back to StyleChangeType in the getter.
9186                 
9187         Test: fast/css/hover-affects-child.html
9189         * dom/Node.h:
9190         (WebCore::Node::styleChangeType):
9192 2007-08-29  Justin Garcia  <justin.garcia@apple.com>
9194         Reviewed by Darin.
9196         <rdar://problem/5368833> 
9197         REGRESSION: Pasting a triple-clicked line of quoted text at the top of a message adds an extra, quoted line
9199         * editing/CompositeEditCommand.cpp:
9200         (WebCore::CompositeEditCommand::insertParagraphSeparator): Added an option for
9201         using a plain div to hold the new paragraph, instead of a clone of the previous
9202         block.
9203         * editing/CompositeEditCommand.h:
9204         * editing/InsertParagraphSeparatorCommand.cpp: Ditto.
9205         (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Ditto.
9206         (WebCore::InsertParagraphSeparatorCommand::doApply): Ditto.
9207         * editing/InsertParagraphSeparatorCommand.h:
9208         * editing/ReplaceSelectionCommand.cpp:
9209         (WebCore::ReplaceSelectionCommand::doApply): Use a default block element when creating
9210         new paragraphs, so that empty paragraphs don't contain the block style of the previous
9211         one.
9212         Don't expand collapsed brs at the end of inserted content, this was the root of the bug.
9213         We'd copy <blockquote>hello<br></blockquote><br class="Apple-interchange-newline">
9214         and get an extra paragraph.  The removed code used to make sure that if the copied 
9215         selection ends with a paragraph break that is represented in the copied markup by a 
9216         regular br (not an interchange newline br), that that paragraph break appears in the 
9217         pasted content, but shouldMergeEnd, which was introduced after this code was written, 
9218         now takes care of that.
9219         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Inserted content should always
9220         displace placeholder brs, even if that inserted content ends with a br.
9221         * editing/markup.cpp:
9222         (WebCore::needInterchangeNewlineAfter): This code failed to add an interchange newline
9223         if the user copied <div>hello</div><br>, only don't add an interchange newline when
9224         copying ^hello<br>^<br>, because then the copied paragraph break will already be 
9225         represented in the copied markup by a br.
9226         (WebCore::createMarkup):
9228 2007-08-30  David Harrison  <harrison@apple.com>
9230         Reviewed by Darin.
9232         <rdar://problem/5423900> Seed: safari crashes on submit feedback page in -[WebCoreAXObject isAttachment]
9234         * bridge/mac/WebCoreAXObject.mm:
9235         (-[WebCoreAXObject isAttachment]):
9236         Add nil check since element could be detached.
9238 2007-08-30  Mitz Pettel  <mitz@webkit.org>
9240         Reviewed by Dave Hyatt.
9242         - fix http://bugs.webkit.org/show_bug.cgi?id=13282
9243           <rdar://problem/5126392> REGRESSION (NativePopUp): Rightmost character cut off in pop-up menu
9245         * rendering/RenderMenuList.cpp:
9246         (WebCore::RenderMenuList::updateOptionsWidth): When measuring option text, use
9247         the same WebCore run rounding behavior that is used to draw it in the popup button.
9249 2007-08-30  Riku Voipio  <riku.voipio@iki.fi>
9251         Reviewed by Dave Kilzer.
9253         Better ARM defines.
9255         * platform/DeprecatedString.h: Update comments to reflect the
9256         change and update test to fit changes to Platform.h.
9258 2007-08-30  Darin Adler  <darin@apple.com>
9260         Reviewed by Tim Hatcher.
9262         - fix http://bugs.webkig.org/show_bug.cgi?id=14981
9263           DEBUG builds of WebKit hang videwing Yahoo! Mail messages
9264           with ~5 MB text attachment
9266         * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::checkConsistency):
9267         * rendering/RenderFlow.cpp: (WebCore::RenderFlow::checkConsistency):
9268         * rendering/RenderText.cpp: (WebCore::RenderText::checkConsistency):
9269         Put the actual consistency check inside an ifdef. If you need it you can
9270         turn it on. There's still some function call overhead in builds that don't
9271         have NDEBUG defined, but that's worth it so we can turn this on and off
9272         without recompiling the world.
9274         - small code style improvement to recently changed function
9276         * editing/TextIterator.cpp: (WebCore::plainTextToMallocAllocatedBuffer):
9277         Use a typedef and make_pair to make the code dealing with the pair simpler to read.
9279 2007-08-30  Simon Hausmann  <hausmann@kde.org>
9281         Reviewed by Zack.
9283         Fix Qt/Gdk build. gcc on Linux at least doesn't like initializing
9284         variables between jumps with goto ("jump to label foo crosses
9285         initialization of bar").
9287         * editing/TextIterator.cpp:
9288         (WebCore::plainTextToMallocAllocatedBuffer):
9290 2007-08-30  Darin Adler  <darin@apple.com>
9292         Reviewed by Antti.
9294         - fix <rdar://problem/5423270> CrashTracer: [USER] 1 crash in Safari at com.apple.WebCore:
9295           WebCore::plainTextToMallocAllocatedBuffer + 762
9297         * editing/TextIterator.cpp: (WebCore::plainTextToMallocAllocatedBuffer):
9298         Check for a malloc failure and exit the function if it failed.
9300 2007-08-29  Anders Carlsson  <andersca@apple.com>
9302         Reviewed by Oliver.
9304         <rdar://problem/5404329>
9305         Plugin content starves WM_TIMER events on UI thread (affects idle behavior of app) on http://www.vincent-vella.com/, http://www.sagmeister.com/
9306         
9307         Add a tiny delay to invalidation timer to prevent it from starving other timers.
9308         
9309         * plugins/win/PluginViewWin.cpp:
9310         (WebCore::PluginViewWin::invalidateRect):
9312 2007-08-29  Darin Adler  <darin@apple.com>
9314         Reviewed by Adele.
9316         * editing/htmlediting.cpp: (WebCore::avoidIntersectionWithNode):
9317         Fix an assert that was firing for me all the time when doing editing operations.
9319 2007-08-29  Anders Carlsson <andersca@apple.com>
9321         Reviewed by Adam.
9323         <rdar://problem/5386098>
9324         Repro hang with some Flash plugin content (http://dougmccune.com/blog/2007/07/25/coming-to-flexcamp-at-adobe/)
9325         
9326         In some cases, Flash ends up starving the main loop by sending a lot of WM_USER + 1 messages. Throttle these
9327         messages so they won't end up hanging the web browser.
9328         
9329         * plugins/win/PluginViewWin.cpp:
9330         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
9331         (WebCore::PluginMessageThrottlerWin::~PluginMessageThrottlerWin):
9332         (WebCore::PluginMessageThrottlerWin::appendMessage):
9333         (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
9334         (WebCore::PluginMessageThrottlerWin::allocateMessage):
9335         (WebCore::PluginMessageThrottlerWin::isInlineMessage):
9336         (WebCore::PluginMessageThrottlerWin::freeMessage):
9337         (WebCore::PluginViewWndProc):
9338         (WebCore::PluginViewWin::wndProc):
9339         (WebCore::PluginViewWin::determineQuirks):
9340         * plugins/win/PluginViewWin.h:
9341         (WebCore::):
9342         (WebCore::PluginViewWin::pluginWndProc):
9344 2007-08-29  Beth Dakin  <bdakin@apple.com>
9346         Reviewed by Hyatt.
9348         Fix for <rdar://problem/5436800> REGRESSION: PLT is 1.5% slower due 
9349         to r24593 and r25098
9351         In r25098, we only called setCreatedByParser for XML! This patch 
9352         calls it for HTML too, and takes care of the performance 
9353         regression.
9355         * html/HTMLElementFactory.cpp:
9356         (WebCore::styleConstructor):
9358 2007-08-29  Antti Koivisto  <antti@apple.com>
9360         Reviewed by Mitz.
9361         
9362         Fix <rdar://problem/5425951>
9363         REGRESSION: change to updateLayoutIgnorePendingStylesheets causes SAP Portal page to render wrong
9364         
9365         If new nodes have been added or style recalc has been done with style sheets still pending, some nodes 
9366         may not have had their real style calculated yet. Normally this state gets cleaned when style sheets arrive 
9367         but in updateLayoutIgnorePendingStylesheets() we need to do full style recalc to get up-to-date style immediatly.
9368         
9369         Added a document flag to track if there are any nodes that did not have their real style calculated due to
9370         pending stylesheets.
9372         Test: fast/dynamic/style-access-late-stylesheet-load.html
9374         * css/CSSStyleSelector.cpp:
9375         (WebCore::CSSStyleSelector::styleForElement):
9376         * dom/Document.cpp:
9377         (WebCore::Document::Document):
9378         (WebCore::Document::recalcStyle):
9379         (WebCore::Document::updateLayoutIgnorePendingStylesheets):
9380         * dom/Document.h:
9381         (WebCore::Document::setHasNodesWithPlaceholderStyle):
9383 2007-08-29  Alice Liu  <alice.liu@apple.com>
9385         Reviewed by Maciej.
9387         We disable the DeleteButton UI before applying any editing commands.
9388         This patch simply moves those disable/enable calls to a more correct place, closer to the actual application of the editing command. 
9390         * editing/EditCommand.cpp:
9391         (WebCore::EditCommand::apply):
9392         (WebCore::applyCommand):
9394 2007-08-28  Alice Liu  <alice.liu@apple.com>
9396         fixed <rdar://problem/5420682> Mail crashes at WebCore::InsertLineBreakCommand::doApply() 
9397                                        after dropping a selected image over container's close box
9399         Reviewed by Darin and Maciej.
9401         * editing/DeleteButtonController.cpp:
9402         (WebCore::DeleteButtonController::show):
9403         (WebCore::DeleteButtonController::hide):
9404         * editing/DeleteButtonController.h:
9405         (WebCore::DeleteButtonController::enabled):
9406         General changes made to DeleteButtonController: when hiding, it's not necessary to clear out 
9407         the m_containerElement and m_target, especially since to fix this bug we need to keep 
9408         their values around.  It's sufficient to just detach the container from target.
9410         * editing/EditCommand.cpp:
9411         (WebCore::EditCommand::EditCommand):
9412         Move the selection out of the deletion UI since we don't want to expose the deletion UI to any editing.
9414         * editing/Editor.cpp:
9415         (WebCore::Editor::rangeForPoint):
9416         Move the range out of the deletion UI since we don't want to expose the deletion UI to any editing.
9418         * editing/htmlediting.cpp:
9419         * editing/htmlediting.h:
9420         (WebCore::avoidIntersectionWithNode):
9421         Moved function that operates on Range from markup.cpp to here
9422         Added new implementation for function that operates on Selection
9424         * editing/markup.cpp:
9425         (WebCore::createMarkup):
9426         Moved function out of this file to htmlediting.cpp, and renamed to avoidIntersectionWithNode
9428 2007-08-29  David Hyatt  <hyatt@apple.com>
9430         Fix for 5441281, remove our dependency on cursor rects and drag margins
9431         in AppKit for a large performance boost on the PLT and iBench.
9433         Reviewed by darin
9435         * platform/mac/WidgetMac.mm:
9436         (WebCore::safeRemoveFromSuperview):
9437         (WebCore::Widget::addToSuperview):
9438         Suppress the resetting of drag margins when views are added and removed.
9440         (WebCore::Widget::setCursor):
9441         Just use NSCursor's set method to immediately set the cursor.  We no longer
9442         rely on NSScrollView/NSClipView setDocumentCursor, since that is implemented
9443         using cursor rects.
9445 2007-08-29  Rick  <rick@writhe.org.uk>
9447         Reviewed by Tim Hatcher.
9449         Fix http://bugs.webkit.org/show_bug.cgi?id=14853
9450         Bug 14853: Incorrect implementation of ArrayImpl's equality operator
9452         * platform/ArrayImpl.cpp:
9453         (WebCore::ArrayImpl::operator==):
9454         Fixed typo so that correct variable is used in equality comparison.
9456 2007-08-29  Peter Kasting  <zerodpx@gmail.com>
9458         Reviewed by Maciej.
9460         - fix http://bugs.webkit.org/show_bug.cgi?id=15096
9461         Move the GIF frame duration minimum check into the various
9462         ImageSource*.cpp backends and use the same values as
9463         ImageSourceCG.cpp.
9465         * platform/graphics/cairo/ImageSourceCairo.cpp:
9466         (WebCore::ImageSource::frameDurationAtIndex):
9467         * platform/graphics/qt/ImageSourceQt.cpp:
9468         (WebCore::ImageSource::frameDurationAtIndex):
9469         * platform/image-decoders/gif/GIFImageReader.cpp:
9470         (GIFImageReader::read):
9472 2007-08-29  Peter Kasting  <zerodpx@gmail.com>
9474         Reviewed by Maciej.
9476         - fix http://bugs.webkit.org/show_bug.cgi?id=15097
9477         Make PNGImageDecoder.cpp size its frame buffer vector in its
9478         constructor, so it never throws decoded image data away no matter
9479         what order its functions are called in.
9481         * platform/image-decoders/png/PNGImageDecoder.cpp:
9482         (WebCore::PNGImageDecoder::PNGImageDecoder):
9483         (WebCore::PNGImageDecoder::frameBufferAtIndex):
9484         (WebCore::PNGImageDecoder::decode):
9485         (WebCore::PNGImageDecoder::rowAvailable):
9486         (WebCore::PNGImageDecoder::pngComplete):
9488 2007-08-29  Peter Kasting  <zerodpx@gmail.com>
9490         Reviewed by Maciej.
9492         - fix http://bugs.webkit.org/show_bug.cgi?id=15104
9493         Don't double-compensate for sizeof(unsigned) when making a buffer
9494         overflow check in the GIF decoder.  Now interlaced GIFs don't
9495         sometimes get nothing/garbage in some of the bottom rows.
9497         * platform/image-decoders/gif/GIFImageDecoder.cpp:
9498         (WebCore::GIFImageDecoder::haveDecodedRow):
9500 2007-08-28  Sam Weinig  <sam@webkit.org>
9502         Reviewed by Darin.
9504         Update fix landed in r25249 to account for XMLHttpRequest, which can also be EventTargets.
9506         Tests: http/tests/security/listener/xss-XMLHttpRequest-addEventListener.html
9507                http/tests/security/listener/xss-XMLHttpRequest-shortcut.html
9509         * bindings/js/JSXMLHttpRequest.cpp:
9510         (KJS::JSXMLHttpRequest::putValueProperty): Use the Window object associated with document's frame, not the active Window.
9511         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction): ditto
9512         * xml/XMLHttpRequest.h:
9513         (WebCore::XMLHttpRequest::document): Expose Document member so bindings can access the correct frame.
9515 2007-08-28  Anders Carlsson  <andersca@apple.com>
9517         Reviewed by Darin.
9519         <rdar://problem/5424866> Bottom portion of any Web Clip widget appears transparent
9521         Restore the previous behavior, creating plug-ins on attach, for WebKit plug-ins. Netscape plug-ins
9522         are still created during the first layout.
9523         
9524         * html/HTMLEmbedElement.cpp:
9525         (WebCore::HTMLEmbedElement::getInstance):
9526         Only call layout if the renderer doesn't have a widget.
9527         
9528         * html/HTMLObjectElement.cpp:
9529         (WebCore::HTMLObjectElement::getInstance):
9530         Likewise.
9531         
9532         * loader/FrameLoader.cpp:
9533         (WebCore::FrameLoader::shouldUsePlugin):
9534         Update for enum change.
9535         
9536         * loader/FrameLoaderTypes.h:
9537         Add ObjectContentNetscapePlugin and ObjectContentOtherPlugin.
9538         
9539         * page/mac/WebCoreFrameBridge.h:
9540         Get rid of the enum here, we can use the one in FrameLoaderTypes.h
9541         
9542         * rendering/RenderPartObject.cpp:
9543         (WebCore::RenderPartObject::updateWidget):
9544         Only create the plug-in if it's not a Netscape plug-in.
9545         
9546         (WebCore::RenderPartObject::layout):
9547         Fix indentation.
9548         
9549 2007-08-28  David Harrison  <harrison@apple.com>
9551         Reviewed by Darin.
9553         <rdar://problem/5415006> Command Left in a To Do causes caret to disappear
9555         The selection was ending up inside non-editable content at the To Do Options
9556         arrow image, rather then at the editable position just to the left of that image.
9557         The problem was that startPositionForLine looked only at line boxes, and there
9558         is no linebox for the editable position at the far left of a To Do, which is
9559         a table. Addressed by having startPositionForLine use table offset 0 instead
9560         of the first VisiblePosition inside the table.
9561         
9562         Found and fixed the similar case with option-left (move by word position).
9563         
9564         Test cases:
9565         * editing/selection/mixed-editability-8.html: Added.
9566         * editing/selection/mixed-editability-9.html: Added.
9568         Source changes:
9569         * editing/SelectionController.cpp:
9570         (WebCore::SelectionController::modifyMovingLeftBackward):
9571         
9572         * editing/VisiblePosition.cpp:
9573         (WebCore::VisiblePosition::next):
9574         (WebCore::VisiblePosition::previous):
9575         (WebCore::VisiblePosition::stayInEditableContentLeft):
9576         (WebCore::VisiblePosition::stayInEditableContentRight):
9577         Factored stayInEditableContentLeft() and stayInEditableContentRight()
9578         out of previous() and next().
9579         
9580         * editing/VisiblePosition.h:
9581         Declare stayInEditableContentLeft() and stayInEditableContentRight().
9583         * editing/visible_units.cpp:
9584         (WebCore::previousWordPosition):
9585         (WebCore::nextWordPosition):
9586         (WebCore::startOfLine):
9587         (WebCore::endOfLine):
9588         (WebCore::previousSentencePosition):
9589         (WebCore::nextSentencePosition):
9590         Call stayInEditableContentLeft() or stayInEditableContentRight(), as 
9591         appropriate, so prevent crossing from editable content into
9592         uneditable content.
9593         
9594         (WebCore::startPositionForLine):
9595         Use table offset 0 instead of the first VisiblePosition in the table.
9596         
9597 2007-08-28  Mark Rowe  <mrowe@apple.com>
9599         Reviewed by Darin Adler.
9601         <rdar://problem/5443453> Decreasing history expiration time from 1 year to 1 week can lead to long hang while icon database syncs
9603         Perform the sync inside a SQLite transaction.  This drops the time taken for the sync from over 90s to under half a second in the
9604         extreme case of over 90,000 URLs being pruned.
9606         * loader/icon/IconDatabase.cpp:
9607         (WebCore::IconDatabase::syncDatabase):
9609 2007-08-28  Mark Rowe  <mrowe@apple.com>
9611         Reviewed by Darin Adler.
9613         <rdar://problem/5437983> Loading history containing 100,000 entries adds 20s to Safari's startup
9615         Add a new constructor for HistoryItem that initializes the alternate title.  This prevents WebHistoryItem
9616         in WebKit from having explicitly set the display title, which triggers a history item changed notification
9617         to be posted, for each history item loaded.
9619         * WebCore.exp:
9620         * history/HistoryItem.cpp:
9621         (WebCore::HistoryItem::HistoryItem):
9622         * history/HistoryItem.h:
9624 2007-08-28  Anders Carlsson  <andersca@apple.com>
9626         Reviewed by Darin.
9628         <rdar://problem/5298296> XMLHttpRequest readyState 3 & responseText buffer issues
9629         
9630         Add a shouldContentSniff flag to ResourceLoader and ResourceHandle and have XMLHttpRequest 
9631         pass in false when creating its subresource loader.
9632         
9633         * WebCore.exp:
9634         * loader/MainResourceLoader.cpp:
9635         (WebCore::MainResourceLoader::MainResourceLoader):
9636         (WebCore::MainResourceLoader::loadNow):
9637         * loader/ResourceLoader.cpp:
9638         (WebCore::ResourceLoader::ResourceLoader):
9639         (WebCore::ResourceLoader::load):
9640         * loader/ResourceLoader.h:
9641         * loader/SubresourceLoader.cpp:
9642         (WebCore::SubresourceLoader::SubresourceLoader):
9643         (WebCore::SubresourceLoader::create):
9644         * loader/SubresourceLoader.h:
9645         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
9646         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
9647         * platform/mac/WebCoreSystemInterface.h:
9648         * platform/mac/WebCoreSystemInterface.mm:
9649         * platform/network/ResourceHandle.cpp:
9650         (WebCore::ResourceHandle::ResourceHandle):
9651         (WebCore::ResourceHandle::create):
9652         * platform/network/ResourceHandle.h:
9653         * platform/network/ResourceHandleInternal.h:
9654         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
9655         * platform/network/mac/ResourceHandleMac.mm:
9656         (WebCore::ResourceHandle::start):
9657         * xml/XMLHttpRequest.cpp:
9658         (WebCore::XMLHttpRequest::send):
9660 2007-08-27  Steve Falkenburg  <sfalken@apple.com>
9662         Added getter for committedFirstRealDocumentLoad.
9663         
9664         Reviewed by Maciej.
9666         * loader/FrameLoader.h: Added committedFirstRealDocumentLoad.
9667         (WebCore::FrameLoader::committedFirstRealDocumentLoad): Added.
9669 2007-08-27  Antti Koivisto  <antti@apple.com>
9671         Reviewed by Maciej.
9672         
9673         Fix <rdar://problem/5433144>
9674         REGRESSION: Unable to click "Select" link at Expedia for car rentals
9675         
9676         javascript: URLs need special handling when serializing. Escaping them like
9677         normal attribute values can do bad things. Try hard to not escape anything,
9678         escape quote characters only if really necessary. Try to match Firefox.
9680         Test: fast/innerHTML/javascript-url.html
9682         * editing/markup.cpp:
9683         (WebCore::urlAttributeToQuotedString):
9684         (WebCore::startMarkup):
9686 2007-08-27  David Hyatt  <hyatt@apple.com>
9688         Fix for 5441224, micro-optimizations to improve the PLT by 1%.
9690         Reviewed by Darin
9692         * css/CSSStyleSelector.cpp:
9693         (WebCore::CSSStyleSelector::canShareStyleWithElement):
9694         * platform/mac/FontMac.mm:
9695         (WebCore::Font::drawGlyphs):
9696         * rendering/RenderInline.cpp:
9697         (WebCore::RenderInline::requiresLayer):
9698         * rendering/RenderObject.cpp:
9699         (WebCore::RenderObject::isBody):
9700         * rendering/RenderObject.h:
9701         (WebCore::RenderObject::renderArena):
9702         (WebCore::RenderObject::isRoot):
9704 2007-08-27  Mitz Pettel  <mitz@webkit.org>
9706         Reviewed by Darin.
9708         - fix http://bugs.webkit.org/show_bug.cgi?id=15091
9709           Crash in RenderBlock::skipWhitespace during layout <rdar://problem/5439631> 
9711         Test: fast/replaced/applet-disabled-positioned.html
9713         * html/HTMLAppletElement.cpp:
9714         (WebCore::HTMLAppletElement::createRenderer): Changed to call
9715         RenderObject::createObject(), which accounts for style.
9717 2007-08-26  Antti Koivisto  <antti@apple.com>
9719         Reviewed by Darin.
9720         
9721         Fix for <rdar://problem/5433726>
9722         Mail crash at WebCore::Frame::styleForSelectionStart() when deleting a selection in a HTML message (http://www.yahoo.com/)
9724         Test: editing/style/temporary-span-crash.html
9726         * page/Frame.cpp:
9727         (WebCore::Frame::styleForSelectionStart):
9728         Temporary span created here might not have renderer if document has style sheet that makes it display:none.
9729         Set display:inline explicitly in spans style attribute. This temporary span does not need to get its display 
9730         value from actual document style sheets. Null check the renderer too to be sure.
9733 2007-08-24  Sam Weinig  <sam@webkit.org>
9735         Reviewed by Adele.
9737         Fix for <rdar://problem/5426142>
9739         Use the EventTarget's frame when creating the EventListener.
9741         Tests: http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener.html
9742                http/tests/security/listener/xss-JSTargetNode-onclick-shortcut.html
9743                http/tests/security/listener/xss-window-onclick-addEventListener.html
9744                http/tests/security/listener/xss-window-onclick-shortcut.html
9746         * bindings/js/JSEventTargetNode.cpp:
9747         (WebCore::JSEventTargetNode::setListener):
9748         (WebCore::JSEventTargetNodePrototypeFunction::callAsFunction):
9749         * bindings/js/kjs_window.cpp:
9750         (KJS::WindowFunc::callAsFunction):
9752 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9754         Reviewed by Sam Weinig.
9756         - fix http://bugs.webkit.org/show_bug.cgi?id=15077
9757           REGRESSION: Cannot drag selected text out of a background window
9759         * manual-tests/drag-out-of-background-window.html: Added.
9760         * page/EventHandler.cpp:
9761         (WebCore::EventHandler::eventMayStartDrag): Added missing coordinate
9762         conversion.
9764 2007-08-25  Rob Buis  <buis@kde.org>
9766         Reviewed by Darin.
9768         http://bugs.webkit.org/show_bug.cgi?id=14848
9769         DOM table rules are not updated when changed
9771         On a dynamic rules attr change, mark the table cells and
9772         their ancestors (up to and including the table tag) as
9773         changed.
9775         Tests: fast/table/rules-attr-dynchange1.html
9776                fast/table/rules-attr-dynchange2.html
9778         * html/HTMLTableElement.cpp:
9779         (WebCore::isTableCellAncestor):
9780         (WebCore::setTableCellsChanged):
9781         (WebCore::HTMLTableElement::parseMappedAttribute):
9783 2007-08-25  Adele Peterson  <adele@apple.com>
9785         Reviewed by Mitz.
9787         Fix for http://bugs.webkit.org/show_bug.cgi?id=15073
9788         <rdar://problem/5426557> REGRESSION: Can no longer drag text from textareas
9789         
9790         Test: fast/forms/drag-out-of-textarea.html
9792         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
9793           Only restricts hit testing if the placeholder text is visible.
9794         * rendering/RenderTextControl.h: (WebCore::RenderTextControl::placeholderIsVisible): Added. 
9796 2007-08-25  Peter Kasting <zerodpx@gmail.org>
9798         Reviewed by Sam Weinig.
9800         Part 2 of http://bugs.webkit.org/show_bug.cgi?id=14967.
9801         Eliminate all remaining implicit conversions of wtf::Vector<T> to T*.  Where code was
9802         previously checking that the Vector's data pointer was non-NULL, check !Vector::isEmpty()
9803         instead.
9805         * bindings/js/kjs_navigator.cpp:
9806         (KJS::PluginBase::cachePluginDataIfNecessary):
9807         * loader/mac/LoaderNSURLExtras.m:
9808         (suggestedFilenameWithMIMEType):
9809         * page/FrameView.cpp:
9810         (WebCore::FrameView::~FrameView):
9811         (WebCore::FrameView::pauseScheduledEvents):
9812         (WebCore::FrameView::resumeScheduledEvents):
9813         (WebCore::FrameView::dispatchScheduledEvents):
9814         * platform/mac/PlugInInfoStoreMac.mm:
9815         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
9817 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9819         Rubber-stamped by Adam Roben
9821         - remove unused file
9823         * platform/win/MouseEventWin.cpp: Removed.
9825 2007-08-25  Jasper Bryant-Greene  <m@ni.ac.nz>
9827         Reviewed by Oliver Hunt.
9829         Set paintingDisabled to true in Cairo's GraphicsContext constructor
9830         when passed a null PlatformGraphicsContext.
9832         * platform/graphics/cairo/GraphicsContextCairo.cpp:
9833         (WebCore::GraphicsContext::GraphicsContext):
9835 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9837         Reviewed by Dave Hyatt.
9839         - fix http://bugs.webkit.org/show_bug.cgi?id=15056
9840           REGRESSION (r21472): Digg Podcasts Episodes Render "Digg" counter incorrectly
9842         Covered by fast/parser/residual-style-close-across-n-blocks.html
9844         * html/HTMLParser.cpp:
9845         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): If the
9846         residual style was closed before anything else in the block (so it does
9847         not apply to anything inside the block) avoid creating an empty element for
9848         it inside the block.
9850 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9852         Reviewed by Dave Hyatt.
9854         - fix http://bugs.webkit.org/show_bug.cgi?id=14972
9855           Moving cursor down in contentEditable section fails if styled line-height:1em
9857         Test: editing/selection/move-by-line-003.html
9859         * rendering/RenderText.cpp:
9860         (WebCore::RenderText::positionForCoordinates): Changed hit testing so that each
9861         line is tested for hits between its overflow top and the next line's overflow top.
9862         This matches RenderBlock::positionForCoordinates.
9864 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9866         Reviewed by Justin.
9868         - fix http://bugs.webkit.org/show_bug.cgi?id=14792
9869           <rdar://problem/5367763> REGRESSION: Copy inserts carriage return in middle of selection
9871         Test: editing/pasteboard/newlines-around-floating-or-positioned.html
9873         * editing/TextIterator.cpp:
9874         (WebCore::shouldEmitNewlinesBeforeAndAfterNode): Do not emit newlines around
9875         floating or positioned blocks. This behavior seems to match WinIE's.
9877 2007-08-23  Justin Garcia  <justin.garcia@apple.com>
9879         Reviewed by Darin.
9880         
9881         <rdar://problem/5432254> GoogleDocs: A hang occurs when applying list style to selected table
9882         
9883         * editing/DeleteSelectionCommand.cpp:
9884         (WebCore::DeleteSelectionCommand::handleGeneralDelete): If the position
9885         that marked the start of the range to delete has been removed from the
9886         document, and it was inside the node that holds the position that marks
9887         the end of the range to delete, don't remove any children of that node,
9888         because we don't know how many to remove.  For example, if the end is
9889         [a, 5] and the start was in some descendant of a and was removed, don't
9890         remove any of the children of a.  We will now refuse to remove some content
9891         incorrectly, but that's less dangerous than removing content incorrectly.
9892         Long term we need to update these positions as we remove content from the 
9893         document, but that seems like a more risky change.  Added a testcase.
9894         * editing/InsertListCommand.cpp:
9895         (WebCore::InsertListCommand::modifyRange): If the end of the selection to 
9896         modify is just after a table, and if the start of the selection is inside 
9897         that table, the last paragraph that we'll want modify is the last one inside 
9898         the table, not the paragraph that contains the table itself. Adjust 
9899         startOfLastParagraph here to avoid infinite recursion.
9901 2007-08-24  Anders Carlsson  <andersca@apple.com>
9903         Reviewed by Geoff.
9905         <rdar://problem/5430165>
9906         REGRESSION: Dynamically loaded images fail to load
9908         * html/HTMLImageLoader.cpp:
9909         (WebCore::HTMLImageLoader::HTMLImageLoader):
9910         Initialize the m_elementIsProtected member.
9912         (WebCore::HTMLImageLoader::~HTMLImageLoader):
9913         Assert that the element is not protected.
9914         
9915         (WebCore::HTMLImageLoader::setLoadingImage):
9916         If the image is not null, protect the element. Otherwise, unprotect it.
9917         
9918         (WebCore::HTMLImageLoader::dispatchLoadEvent):
9919         Unprotect the element here.
9921         (WebCore::HTMLImageLoader::protectElement):
9922         (WebCore::HTMLImageLoader::unprotectElement):
9923         New methods which protect and unprotect the element.
9924         
9925         * html/HTMLImageLoader.h:
9927 2007-08-24  Kevin McCullough  <kmccullough@apple.com>
9929         - Updated ChangeLog
9931 2007-08-24  Beth Dakin  <bdakin@apple.com>
9933         Reviewed by Hyatt and Adele.
9935         Fix for <rdar://problem/5417203> Google Gmail 1.0 widget - unread 
9936         count is missing
9938         * rendering/FixedTableLayout.cpp:
9939         (WebCore::FixedTableLayout::calcWidthArray): Calc pref widths for 
9940         our cells, if needed.
9942 2007-08-24  Kevin McCullough  <kmccullough@apple.com>
9944         Reviewed by Darin.
9946         <rdar://problem/5437038> 1 credential object leaked for each call to credentialWithUser:password:persistence
9947         - Use initWithUser instead of credentialWithUser because credentialWithUser leaks.
9949         * platform/network/mac/AuthenticationMac.mm:
9950         (WebCore::mac):
9951         * platform/network/mac/ResourceHandleMac.mm:
9952         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
9953         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]):
9955 2007-08-24  Jon Honeycutt  <jhoneycutt@apple.com>
9957         Reviewed by Darin.
9959         <rdar://problem/5433236> Print preview of empty txt file crashes Safari
9960         Fix: Adjust computePageRectsForFrame to always return at least one 
9961         page rect, even if document height is zero.
9963         * WebCore.vcproj/WebCore.vcproj:
9964         * bridge/win/FrameWin.h: Added Vector& parameter to 
9965         computePagesRectsForFrame; changed its return type to void.
9966         * bridge/win/FrameWin.cpp:
9967         (WebCore::computePageRectsForFrame): Reordered the loop that inserts
9968         rects into the vector.
9970 2007-08-24  Antti Koivisto  <antti@apple.com>
9972         Reviewed by Oliver
9974         Fix <rdar://problem/5393758>
9975         Crash in WebCore::FontData::platformInit
9976         
9977         Null check glyph page. 
9978         
9979         If font has somehow failed to initialize it is possible to have null glyph page. Based on
9980         crash dumps this seems to occasionally happen when running Mail under guard malloc. 
9981         
9982         No test case, I don't know how to get to this state.
9984         * platform/FontData.cpp:
9985         (WebCore::FontData::FontData):
9986         * platform/mac/FontDataMac.mm:
9987         (WebCore::FontData::platformInit):
9989 2007-08-24  George Wright  <george.wright@collabora.co.uk>
9991         Reviewed by Oliver.
9993         http://bugs.webkit.org/show_bug.cgi?id=15071
9994         [cairo] SVG skews are incorrect
9996         Fix Cairo implementation of AffineTransform::shear so that shearing is
9997         done in the correct direction.
9999         * platform/graphics/cairo/AffineTransformCairo.cpp:
10000         (WebCore::AffineTransform::shear):
10002 2007-08-23  Anders Carlsson  <andersca@apple.com>
10004         Reviewed by Steve.
10006         If necessary, re-set the window proc after each call to NPP_SetWindow. This is to ensure that
10007         our window proc is always run even if a plug-in subclasses the window and replaces the window proc.
10008         
10009         Also, make sure that the default window proc is of type ASCII so we can eliminate the 
10010         * plugins/win/PluginViewWin.cpp:
10011         (WebCore::registerPluginView):
10012         (WebCore::PluginViewWndProc):
10013         (WebCore::PluginViewWin::setNPWindowRect):
10014         (WebCore::PluginViewWin::stop):
10015         (WebCore::PluginViewWin::determineQuirks):
10016         (WebCore::PluginViewWin::PluginViewWin):
10017         (WebCore::PluginViewWin::init):
10018         * plugins/win/PluginViewWin.h:
10019         (WebCore::):
10020         (WebCore::PluginViewWin::pluginWndProc):
10022 2007-08-23  Justin Garcia  <justin.garcia@apple.com>
10024         Reviewed by Adele.
10026         <rdar://problem/5156801> REGRESSION: Crash at DeleteSelectionCommand::doApply() when deleting table content
10028         * editing/DeleteSelectionCommand.cpp:
10029         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Use a RefPtr
10030         for node.  If the node to be removed contains the selection, and if
10031         the next node to be removed (nextNode) is inside the deletion UI,
10032         removing node will remove nextNode from the document.  nextNode is
10033         a RefPtr, but node isn't and when nextNode falls out of scope the node
10034         that node points to will be destroyed and we'll end up using a stale pointer.
10035         Long term we should probably just disable the deletion UI before editing 
10036         operations because the undo of the removal of node in the situation 
10037         described above relies on the presence of the deletion UI, but it isn't 
10038         present because its added and removed in a non-undoable way.
10040 2007-08-23  Mitz Pettel  <mitz@webkit.org>
10042         Reviewed by Darin.
10044         - fix http://bugs.webkit.org/show_bug.cgi?id=14899
10045           !d->m_view->needsLayout() in Frame::paint() (Causes assert)
10047         WebKit copies the width and height attributes of an <embed> to its
10048         nearest <object> ancestor. This used to be done in updateWidget(), but
10049         that could lead to the document being dirty right after layout and
10050         before painting. The patch moves the copying of the attributes to when
10051         the <embed> is inserted into the document or its attributes change.
10053         * html/HTMLEmbedElement.cpp:
10054         (WebCore::HTMLEmbedElement::insertedIntoDocument):
10055         (WebCore::HTMLEmbedElement::attributeChanged):
10056         * html/HTMLEmbedElement.h:
10057         * manual-tests/bugzilla-14899.html: Added.
10058         * rendering/RenderPartObject.cpp:
10059         (WebCore::RenderPartObject::updateWidget):
10061 2007-08-22  Anders Carlsson  <andersca@apple.com>
10063         Reviewed by Darin and Oliver.
10065         <rdar://problem/5422410>
10066         http://bugs.webkit.org/show_bug.cgi?id=15019
10067         REGRESSION (r25124-r25140): New posts and hot topics won't show at mobile01.com
10069         Remove the call to checkCallImplicitClose(). Calling it in loadPlugin is bad for two reasons:
10070         
10071         1. It could cause onload to be dispatched even when the page has subresources that are still
10072         loading, such as images.
10073         
10074         2. Now that loadPlugin is called during layout, it could cause onload to be dispatched during
10075         layout, which can execute javascript and do pretty much anything while the render tree is in an
10076         inconsistent state.
10077         
10078         * loader/FrameLoader.cpp:
10079         (WebCore::FrameLoader::loadPlugin):
10081 2007-08-22  Anders Carlsson  <andersca@apple.com>
10083         Reviewed by Adam.
10085         <rdar://problem/5430584>
10086         http://bugs.webkit.org/show_bug.cgi?id=15053        
10087         WebKit does not check Windows Registry HKEY_CURRENT_USER for NPAPI plugin locations
10088         
10089         * plugins/win/PluginDatabaseWin.cpp:
10090         (WebCore::addPluginsFromRegistry):
10091         (WebCore::PluginDatabaseWin::getPluginsInPaths):
10093 2007-08-22  Justin Garcia  <justin.garcia@apple.com>
10095         Reviewed by Adam.
10096         
10097         <rdar://problem/5418891> CrashTracer: [USER] 1 crash in Mail at -[WebViewEditor webView:shouldInsertText:replacingDOMRange:givenAction:]
10099         * editing/BreakBlockquoteCommand.cpp:
10100         (WebCore::BreakBlockquoteCommand::doApply): We're reusing the topBlockquote
10101         variable.  Null it out first.  If there is no new topBlockquote and we don't null
10102         it out first, we'll assume that there was a new one and crash.
10104 2007-08-22  Kevin McCullough  <kmccullough@apple.com>
10106         Reviewed by Adele.
10108         - rdar:5423067 Reapplyingthe change but only when the text area is in focus.
10110         * html/HTMLTextAreaElement.cpp:
10111         (WebCore::HTMLTextAreaElement::setValue):
10113 2007-08-21  David Hyatt  <hyatt@apple.com>
10115         Fix for <rdar://problem/5249757> Painting of JPGs in WebKit is too slow.
10117         Use a new Leopard API for fast tiling of images.  We only use this API
10118         when the whole image is being tiled and when the current CGImageRef to tile
10119         has a size that matches the size of the whole image.
10121         We can optimize border-image in the future by adding a cache of the 9
10122         sub-images.
10124         Reviewed by darin
10126         * platform/graphics/cg/ImageCG.cpp:
10127         (WebCore::Image::drawPattern):
10129 2007-08-22  Kevin McCullough  <kmccullough@apple.com>
10131         - Rolling back since I need to update some layouttests this change breaks.
10133         * html/HTMLTextAreaElement.cpp:
10134         (WebCore::HTMLTextAreaElement::setValue):
10136 2007-08-21  Kevin McCullough  <kmccullough@apple.com>
10138         Reviewed by Geof, Adam, Hyatt, Maciej and Oliver.
10140         - In order to match the behavior of the other major browsers, selection is moved to the end of the text value when a change occurs to the contents of a text area instead of remembering the location of the selection.
10141         - <rdar://problem/5423067> gmail is super annoying when trying to add a new name to the TO, CC or BCC fields
10143         * html/HTMLTextAreaElement.cpp:
10144         (WebCore::HTMLTextAreaElement::setValue):
10146 2007-08-21  Adam Roben  <aroben@apple.com>
10148         Build fix for Mac
10150         Keep FrameView::layoutIfNeededRecursive Windows- and Gtk-only for now
10151         (sadly). This will have to wait until we merge ScrollView and FrameView.
10153         Reviewed by NOBODY.
10155         * page/FrameView.cpp:
10156         * page/FrameView.h:
10158 2007-08-21  Adam Roben  <aroben@apple.com>
10160         Fix an ASSERT when using Find in Page
10162         Reviewed by Darin.
10164         No test possible.
10166         * bridge/win/FrameWin.cpp:
10167         (WebCore::imageFromSelection): Make sure to update layout before
10168         painting so we don't hit an ASSERT in painting code (Frame::selectionImage
10169         in FrameMac.mm does this as well).
10171 2007-08-21  Adam Roben  <aroben@apple.com>
10173         Made FrameView::layoutIfNeededRecursive available to all platforms
10175         Currently it's only used on Gtk+ and Windows.
10177         Reviewed by Darin.
10179         * page/FrameView.cpp: Removed #ifdef.
10180         * page/FrameView.h: Ditto.
10182 2007-08-21  Adele Peterson  <adele@apple.com>
10184         Build fix for release build.
10186         * rendering/AutoTableLayout.cpp:
10187         (WebCore::AutoTableLayout::calcEffectiveWidth):
10188         (WebCore::AutoTableLayout::layout):
10190 2007-08-21  Mitz Pettel  <mitz@webkit.org>
10192         Reviewed by Darin.
10194         - fix http://bugs.webkit.org/show_bug.cgi?id=15010
10195           <rdar://problem/5423956> REGRESSION (r25000-r25065): Table rendering broken by a recent nightly
10197         Test: fast/table/max-width-integer-overflow.html
10199         Avoid integer overflows when dealing with maximum widths by
10200         1) using floating point arithmetic when summing or multiplying column max widths
10201         2) capping max widths at INT_MAX / 2
10203         * rendering/AutoTableLayout.cpp:
10204         (WebCore::AutoTableLayout::calcPrefWidths):
10205         (WebCore::AutoTableLayout::calcEffectiveWidth):
10206         (WebCore::AutoTableLayout::layout):
10208 2007-08-20  John Sullivan  <sullivan@apple.com>
10210         Reviewed by Adam Roben
10212         WebCore part of fix for: 
10213         <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings
10214         
10215         Adele wrote the first version of this patch. No test cases added because I made sure the 
10216         layout tests are unaffected. Two additional bug fixes were made in passing, but neither 
10217         of them had any effect on any known real-world case, and both were too difficult to write 
10218         test cases for to be worthwhile.
10220         * WebCore.exp:
10221         added symbols for these new functions so WebKit can call them
10222         
10223         * WebCore.xcodeproj/project.pbxproj:
10224         updated for new file
10225         
10226         * platform/graphics/mac/ColorMac.h: Added.
10227         New file to hold the increasing amount of Mac-specific color stuff.
10228         
10229         * platform/graphics/Color.h:
10230         removed #if PLATFORM(MAC) code, which is now in ColorMac.h
10231         
10232         * platform/graphics/mac/ColorMac.mm:
10233         (WebCore::makeRGBAFromNSColor):
10234         new static function to convert an NSColor object to an RGBA32 struct
10235         (WebCore::colorFromNSColor):
10236         new public function to convert an NSColor object to a WebCore-style Color object
10237         (WebCore::focusRingColor):
10238         Uses (cached) systemFocusRingColor instead of hardwired values, unless usesTestModeFocusRingColor is true,
10239         in which case it uses the old hardwired color
10240         (WebCore::usesTestModeFocusRingColor):
10241         returns value of global var
10242         (WebCore::setUsesTestModeFocusRingColor):
10243         sets value of global var
10244         (+[WebCoreControlTintObserver controlTintDidChange]):
10245         Uses [NSColor keyboardFocusIndicatorColor] to set systemFocusRingColor; don't compile if COLORMATCH_EVERYTHING
10246         is set since we don't know what it would take to satisfy this state.
10248         * bindings/objc/DOMRGBColor.mm:
10249         now includes ColorMac.h to account for moved declarations
10250         * bridge/mac/WebCoreAXObject.mm:
10251         ditto
10252         
10253         * page/mac/FrameMac.mm:
10254         (WebCore::convertAttributesToUnderlines):
10255         now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
10256         this function is only used to convert the color of an input manager's marked text underline, which is always black
10257         
10258         * page/mac/WebCoreFrameBridge.mm:
10259         (-[WebCoreFrameBridge setBaseBackgroundColor:]):
10260         now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
10261         this function is only called with a grayscale color perhaps containing an alpha value
10262                 
10263         * rendering/RenderView.cpp:
10264         (WebCore::RenderView::paintBoxDecorations):
10265         just updated a comment
10267 2007-08-20  Mitz Pettel  <mitz@webkit.org>
10269         Reviewed by Dave Hyatt.
10271         - fix http://bugs.webkit.org/show_bug.cgi?id=15023
10272           REGRESSION (r21113-r21143): JavaScript tooltip rendering bug
10274         Test: fast/repaint/layer-visibility.html
10276         * rendering/RenderLayer.cpp:
10277         (WebCore::RenderLayer::setHasVisibleContent): Cache the layer's
10278         rects when it changes to visible.
10280 2007-08-20  Kevin Decker <kdecker@apple.com>
10282         Reviewed by Anders.
10284         Fixed: <rdar://problem/5325262> REGRESSION (Tiger-Leopard): PictureTalk plug-in doesn't work
10286         The problem was that this particular plug-in handles "text/ptf", but WebCore wasn't giving the plug-in a chance to load
10287         any type with "text/"
10289         * dom/DOMImplementation.cpp:
10290         (WebCore::DOMImplementation::createDocument): Allow plug-ins to once again use "text/" MIME types, but only if the MIME
10291         type is not "text/plain". Disallowing plug-ins to use text/plain prevents plug-ins from hijacking a fundamental type 
10292         that the browser is expected to handle, and also serves as an optimization to prevent loading the plug-in database in 
10293         the common case.
10295 2007-08-20  Adam Roben  <aroben@apple.com>
10297         Remove workarounds for <rdar://problem/5386894> now that it's been fixed
10299         Reviewed by Darin.
10301         Tests: fast/loader/local-svg-parsed-as-svg.svg
10302                fast/loader/local-xhtml-parsed-as-xhtml.xhtml
10304         * platform/network/cf/ResourceResponseCFNet.cpp:
10305         (WebCore::ResourceResponse::doUpdateResourceResponse): Removed hackish
10306         workaround.
10308 2007-08-20  Anders Carlsson  <andersca@apple.com>
10310         Reviewed by Adam.
10312         <rdar://problem/5412988>
10313         Crash when visiting http://www.rockonflash.com/blog/?p=58
10314         
10315         * plugins/win/PluginViewWin.cpp:
10316         (WebCore::PluginViewWin::updateWindow):
10317         Just return if the plugin view hasn't been inserted in the hierarchy yet.
10319 2007-08-20  Holger Hans Peter Freyther  <zecke@selfish.org>
10321         Reviewed by Zack.
10323         Do not define svg as ImageMIMEType if we can use ksvg2.
10325         * platform/MIMETypeRegistry.cpp:
10326         (WebCore::initialiseSupportedImageMIMETypes):
10328 2007-08-19  Adam Roben  <aroben@apple.com>
10330         Gtk+ build fix.
10332         * platform/gdk/TemporaryLinkStubs.cpp: Removed const.
10334 2007-08-19  Adam Roben  <aroben@apple.com>
10336         Fix <rdar://5395835> REGRESSION (r24527): Context menu for edit fields is missing "Font & Writing Direction"
10338         The problem was that ContextMenuItem::setSubMenu was just copying the
10339         HMENU from the ContextMenu passed in on Windows, but that HMENU was
10340         later getting destroyed when the ContextMenu went out of scope.
10342         I added a new ContextMenu::releasePlatformDescription method that is
10343         used in setSubMenu instead. I think an ultimately better design would
10344         be for setSubMenu to take ownership of the ContextMenu that's passed in
10345         (as should insertItem and appendItem), but I decided to be conservative
10346         and just make the changes needed to fix the bug.
10348         Reviewed by Darin.
10350         No test possible.
10352         * platform/ContextMenu.h: Added releasePlatformDescription.
10353         * platform/gdk/TemporaryLinkStubs.cpp: Added stub implementation.
10354         * platform/mac/ContextMenuMac.mm:
10355         (WebCore::ContextMenu::releasePlatformDescription): Implemented, though
10356         it's never called on this platform.
10357         * platform/qt/ContextMenuQt.cpp:
10358         (WebCore::ContextMenu::releasePlatformDescription): Ditto.
10359         * platform/win/ContextMenuItemWin.cpp:
10360         (WebCore::ContextMenuItem::setSubMenu): Call releasePlatformDescription
10361         since we need to take ownership of the HMENU.
10362         * platform/win/ContextMenuWin.cpp:
10363         (WebCore::ContextMenu::releasePlatformDescription): Implemented.
10365 2007-08-18  Maciej Stachowiak  <mjs@apple.com>
10367         Reviewed by Darin.
10369         - fixed <rdar://problem/5198272> REGRESSION: PLT 1.5% slower due to r21367 (change to start frames with empty documents)
10370         
10371         There were three main cuases of extra time due to creating the initial empty document:
10372         
10373         1) Creating an extra WebHTMLView and swapping it for a new one for each frame created.
10374         2) Parsing the minimal markup for the initial document's contents.
10375         3) Clearing the Window object an extra time and dispatching the corresponding delegate method.
10376         
10377         The WebCore part of the fixes addresses 2 and 3.
10378         
10379         * loader/FrameLoader.cpp:
10380         (WebCore::FrameLoader::init): Don't parse "<html><body>" for the initial
10381         empty document; it turns out not to be needed.
10382         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Don't 
10383         dispatch the delegate if we haven't created a ScriptInterpreter yet.
10384         * bindings/js/kjs_proxy.cpp:
10385         (WebCore::KJSProxy::initScriptIfNeeded): Dispatch the window object
10386         delegate when we first create the interpreter, since that is now done
10387         lazily.
10388         * loader/FrameLoader.h:
10389         (WebCore::FrameLoader::committingFirstRealLoad): Helper for WebKit
10390         to know when to reuse a WebHTMLView.
10392 2007-08-19  Mitz Pettel  <mitz@webkit.org>
10394         Reviewed by Adam Roben.
10396         - fix http://bugs.webkit.org/show_bug.cgi?id=15008
10397           ASSERTION FAILED: !firstLineBox() == !lastLineBox() setting content on image
10399         Test: fast/images/text-content-crash-2.html
10401         * html/HTMLImageLoader.cpp:
10402         (WebCore::HTMLImageLoader::setImage): Added a check that the renderer is an
10403         image.
10404         (WebCore::HTMLImageLoader::updateFromElement): Ditto.
10405         (WebCore::HTMLImageLoader::notifyFinished): Ditto.
10407 2007-08-17  Maciej Stachowiak  <mjs@apple.com>
10409         Reviewed by Darin.
10411         - WebCore part of fix to scrollbar suppression hack for Leopard
10413         * loader/FrameLoader.cpp:
10414         (WebCore::FrameLoader::transitionToCommitted): Suppress scrollbars earlier, so it happens
10415         before any potential view swap.
10417 2007-08-17  Antti Koivisto  <antti@apple.com>
10419         Reviewed by Hyatt.
10420         
10421         Fix <rdar://problem/5403773>
10422         CrashTracer: [USER] 88 crashes in Safari at com.apple.WebCore: WebCore::RenderTableSection::paint + 846
10424         * rendering/RenderBlock.cpp:
10425         (WebCore::RenderBlock::removePositionedObjects):
10426         
10427         Fix crash in http://www.infobae.com/interior/home.html
10428         Positioned objects removed from m_positionedObjects would in some cases not get added back to any 
10429         positioned objects list. Adding objects happens in block layout but since layout was not invalidated 
10430         correctly in removePositionedObjects() it would not get invoked. As a result some positioned objects 
10431         would stay in layout dirty state leading to crashes and other bad things.
10432         
10433         * rendering/RenderTableSection.cpp:
10434         (WebCore::RenderTableSection::paint):
10435         
10436         Add needLayout() guard to eliminate this class of crashes from release builds. 
10437         Assert commented out for now since one existing layout test can't handle it.
10439 2007-08-17  Kevin Decker <kdecker@apple.com>
10441         Code change by Darin, landed and reviewed by me.
10443         Fixed: <rdar://problem/5252836> Adobe Help Viewer: Japanese characters in the Help Tree structure are shown as garbage
10444         Added fast/encoding/namespace-tolerance.html test.
10446         * loader/TextResourceDecoder.cpp:
10447         (WebCore::TextResourceDecoder::checkForHeadCharset): Slightly loosen the charset decoder heuristic by tweaking it
10448         to ignore namespaces. This restores compatibility to documents which (1) use namespace prefixes on HTML elements
10449         (2) specify a non-latin charset and (3) contain non-latin characters.
10450         
10451         Added fast/encoding/namespace-tolerance.html test.
10452         
10453 2007-08-17  Anders Carlsson  <andersca@apple.com>
10455         Reviewed by Dave Hyatt.
10456         
10457         <rdar://problem/5379040>
10458         REGRESSION (Tiger-Leopard): ADOBE: Safari calls NPP_SetWindow with bad values sometimes
10460         Instantiate plug-ins during the first layout instead of doing so when creating the renderer.
10461         This ensures that the plug-in widget will have a correct initial size.
10462         
10463         * html/HTMLEmbedElement.cpp:
10464         (WebCore::HTMLEmbedElement::getInstance):
10465         Force a layout if the plug-in doesn't have an instance.
10466         
10467         (WebCore::HTMLEmbedElement::attach):
10468         Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
10469         
10470         * html/HTMLIFrameElement.cpp:        
10471         (WebCore::HTMLIFrameElement::attach):
10472         Pass false to updateWidget, this will only create subframes anyway.
10473         
10474         * html/HTMLObjectElement.cpp:
10475         (WebCore::HTMLObjectElement::getInstance):
10476         Force a layout if the plug-in doesn't have an instance.
10477         
10478         (WebCore::HTMLObjectElement::attach):
10479         Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
10480         
10481         * loader/FrameLoader.cpp:
10482         (WebCore::FrameLoader::loadPlugin):
10483         Get the size from the renderer and pass it to the client.
10484         
10485         * loader/FrameLoaderClient.h:
10486         * page/mac/WebCoreFrameBridge.h:
10487         * platform/graphics/svg/SVGImageEmptyClients.h:
10488         (WebCore::SVGEmptyFrameLoaderClient::createPlugin):
10489         Update declarations.
10490         
10491         * rendering/RenderPart.cpp:
10492         (WebCore::RenderPart::setWidget):
10493         No need to mark the renderer as dirty here.
10494         
10495         * rendering/RenderPartObject.h:
10496         * rendering/RenderPartObject.cpp:
10497         (WebCore::RenderPartObject::updateWidget):
10498         Add a parameter, onlyCreateNonPlugins. If this is true the widget 
10499         will only be created if it's not a plug-in.
10500         
10501         (WebCore::RenderPartObject::layout):
10502         Call updateWidget here if m_widget is 0, causing the plug-in to be instantiated.
10503         
10504 2007-08-17  Oliver Hunt  <oliver@apple.com>
10506         Reviewed by Maciej.
10508         http://bugs.webkit.org/show_bug.cgi?id=14189
10509         <rdar://problem/5319511> REPRODUCIBLE CRASH: Canvas createPattern(canvas, ...) crashes on Windows (14189)
10511         Ensure that we actually retain the CG pattern correctly.
10513         Credit to Henry Mason <hmason@mac.com> for finding the cause of this.
10515         * html/CanvasPattern.cpp:
10516         (WebCore::CanvasPattern::~CanvasPattern):
10517         (WebCore::CanvasPattern::createPattern):
10518         * html/CanvasPattern.h:
10519         (WebCore::CanvasPattern::platformImage):
10521 2007-08-16  Geoffrey Garen  <ggaren@apple.com>
10523         Build fix. (Maybe?)
10524         
10525         * loader/Cache.cpp:
10526         (WebCore::Cache::pruneLiveResources):
10527         (WebCore::Cache::pruneDeadResources):
10529 2007-08-16  Justin Garcia  <justin.garcia@apple.com>
10531         Reviewed by Harrison.
10533         <rdar://problem/5378473> 
10534         REGRESSION: Undoing a deletion that is part of an open typing command fails to reinsert the caret
10535         
10536         We recently made Undo of a series of deletes select all of the 
10537         characters that were deleted, not just the most recently deleted
10538         character.  But the code that did this set a new starting selection 
10539         after every delete, even those that were part of an open typing 
10540         command that started with character insertions or forward deletes, 
10541         operations that when undone, remove the starting selection being 
10542         set from the document.
10543         
10544         After this change we only set a new starting selection if the open typing
10545         command was opened by a backward delete. The new behavior matches TextEdit.  
10546         We don't do something similar or forward deletes because TextEdit opens 
10547         and closes a new typing command on forward delete (added a FIXME about this).
10549         * editing/TypingCommand.cpp:
10550         (WebCore::TypingCommand::TypingCommand): Initialize 
10551         m_openedByBackwardDelete.
10552         (WebCore::TypingCommand::forwardDeleteKeyPressed): Added a FIXME about
10553         how in TextEdit, forward deletes open and close a new typing command.
10554         (WebCore::TypingCommand::doApply): Set m_openedByBackwardDelete
10555         appropriately.
10556         (WebCore::TypingCommand::deleteKeyPressed): Only set the starting
10557         selection if this delete is the first one in an open typing command
10558         or one in a series of deletes that opened the typing command.
10559         * editing/TypingCommand.h: Added m_openedByBackwardDelete.
10561 2007-08-13  Geoffrey Garen  <ggaren@apple.com>
10563         Reviewed by Dave Hyatt.
10564         
10565         Tweaked the cache eviction model to better balance between live and 
10566         dead resources.
10567         
10568         For the sake of avoiding evictions during the PLT, the old model 
10569         required the sum of dead and live resources to grow to twice the cache 
10570         capacity before evicting, and would then evict dead or live down to 0 
10571         if necessary. This was a too-high high water mark, which would nullify 
10572         much of the value of eviction, and a too-low low water mark, which 
10573         would nullify much of the value of the LRU-SP strategy.
10574         
10575         This patch changes the model in 3 ways.
10576         
10577         1. The new model for dead resources is a flexible window with a fixed 
10578         minimum and maximum. The dead resource window is big when live resource 
10579         pressure is small, and vice versa. This has the immediate advantage of
10580         cutting the high water mark by up to 50%. It also enables the following
10581         tunable optimizations in future patches:
10582             a. A dead resource limit of 0 for clients who want that. (Just set
10583             the fixed maximum to 0.)
10584             b. A much higher low water mark. (Just set the fixed minimum to, 
10585             say, 25% of the cache's capacity.)
10586             c. A much lower high water mark for users who browse simple pages
10587             in one tab. (Just set the fixed maximum to, say, 50% of the cache's
10588             capacity.)
10589         
10590         I plan to make the changes that actually take advantage of these 
10591         tunable optimizations in another check-in.
10593         The new model won't hurt the PLT because it will notice the PLT's low
10594         live resource size, and up the dead resource capacity in response. For
10595         the same reason, the new model should establish a good balance in 
10596         real-world use.
10597         
10598         2. Live resource eviction is now based on size(), not encodedSize().
10599         So, a page with lots of large, encoded images will start evicting 
10600         resources, if necessary, even before all the images paint. This allows 
10601         you to more accurately stipulate an exact high water mark.
10602         
10603         3. When pruning, prune to a small percentage below capacity, to avoid
10604         just having to prune again immediately.
10606         Layout tests pass. PLT shows no regression.
10608         * history/PageCache.cpp:
10609         (WebCore::PageCache::releaseAutoreleasedPagesNow): Updated for rename.
10611         * loader/Cache.cpp: Implemented the algorithm explained above.
10612         * loader/Cache.h: Removed explicit tracking of decoded data size, since
10613         it was unused.
10615         * loader/CachedResource.cpp: ditto on tracking of decoded data size
10617 2007-08-16  Darin Adler  <darin@apple.com>
10619         Reviewed by Tim Hatcher.
10621         - fix <rdar://problem/5415029> In Mail, a crash occurs at WebCore::Node::isDescendantOf()
10622           when attempting to delete a selection in a table
10624         The bug was caused by createMarkup trying to operate on a range that
10625         has an endpoint in the delete button DOM, because it removes that DOM
10626         during its operation! Still working on a regression test -- it's hard
10627         to make the kind of bad selection that's needed with the DOM, so I might
10628         have to use the eventSender.
10630         * editing/DeleteButtonController.h: Made some of the identifiers private.
10631         We can make them public if we need to use them. Added a getter function
10632         for the container element so we can figure out if a given node is inside
10633         the DOM added for the delete button.
10635         * editing/markup.cpp:
10636         (WebCore::moveEndpointsBeforeNode): Added. General purpose helper function
10637         that moves endpoints of a range to before a given node -- we do this before
10638         removing the delete button, so the endpoint is where the delete button was,
10639         rather than having an endpoint that's not in the document.
10640         (WebCore::createMarkup): Always return empty string, not null string.
10641         Get the document by calling ownerDocument on the range rather than getting
10642         the document of the commonAncestorContainer. That's because we need to
10643         get at the delete button before calling commonAncestorContainer. Call
10644         moveEndpointsBeforeNode to move the range endpoints out of the delete
10645         button interface before calling disable() which will remove it from the
10646         DOM if it's in there. Added an early return for the case where commonAncestor
10647         is non-0. If this happens, we would crash later because pastEndNode would
10648         not be in the tree. This change alone would prevent the crash, but we'd get
10649         bad markup, so we need the moveEndpointsBeforeNode fix. Added null checks
10650         for the frame to the range version as in the single-node version so this
10651         won't crash immediately on documents that are not in a frame. For the
10652         single-node version, added a check if a ndoe of 0 and a node inside the
10653         delete button user interface, and return the empty string for those cases.
10655 2007-08-16  Justin Garcia  <justin.garcia@apple.com>
10657         Reviewed by Maciej.
10658         
10659         <rdar://problem/5378847> After creating and removing a ToDo, the caret disappears as soon as I start to type
10660         
10661         * editing/InsertTextCommand.cpp:
10662         (WebCore::InsertTextCommand::input): A whitespace text node inserted by Mail
10663         when a ToDo is removed is completely removed by deleteInsignificantWhitespace,
10664         and since it contains the text insertion position, insertion fails.
10665         Save the position before the node where text insertion will occur,
10666         and if that node is removed, use the saved position for insertion.
10668 2007-08-16  Darin Adler  <darin@apple.com>
10670         Reviewed by Adele.
10672         - fix <rdar://problem/5413488> REGRESSION: every DOM element is about 40
10673           bytes bigger because it has a Timer
10675         Moved the timer to the document from the element.
10677         * dom/Document.h: Made frame() inline. Added updateFocusApperanceSoon(),
10678         cancelFocusAppearanceUpdate(), m_updateFocusAppearanceTimer,
10679         clearXMLVersion(), and updateFocusAppearanceTimerFired(). Also made
10680         everything that was previously protected be private instead.
10681         * dom/Document.cpp:
10682         (WebCore::Document::Document): Initialize m_updateFocusAppearanceTimer.
10683         (WebCore::Document::updateFocusAppearanceSoon): Added. Starts timer.
10684         (WebCore::Document::cancelFocusAppearanceUpdate): Added. Stops timer.
10685         (WebCore::Document::updateFocusAppearanceTimerFired): Added. If the
10686         focused node is a focusable element, then calls
10687         updateFocusAppearance(false) on it.
10689         * dom/Element.h: Removed default value of the boolean parameter to
10690         updateFocusAppareance. Removed needsFocusAppearanceUpdate(),
10691         setNeedsFocusAppearanceUpdate(), updateFocusAppearanceTimerFired(),
10692         stopUpdateFocusAppearanceTimer(), m_updateFocusAppearanceTimer, and
10693         m_needsFocusAppearanceUpdate. Added
10694         updateFocusAppearanceSoonAfterAttach() and cancelFocusAppearanceUpdate().
10695         * dom/Element.cpp:
10696         (WebCore::ElementRareData::ElementRareData): Added initializer for
10697         m_needsFocusAppearanceUpdateSoonAfterAttach.
10698         (WebCore::Element::Element): Removed initializers for
10699         m_updateFocusAppearanceTimer and m_needsFocusAppearanceUpdate.
10700         (WebCore::Element::attach): Updated code that starts the focus
10701         appearance timer to instead call updateFocusAppearanceSoon() on the
10702         document.
10703         (WebCore::Element::detach): Replaced call to
10704         stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
10705         (WebCore::Element::focus): Added check for node that's already focused,
10706         to match the logic that's in the derived classes. This makes it safe for
10707         us to remove the override in the derived classes. Also replaced the code
10708         that called setNeedsFocusAppearanceUpdate(true) with code to set the
10709         rare data flag m_needsFocusAppearanceUpdateSoonAfterAttach and added a
10710         call to cancelFocusAppearanceUpdate() in the case where there's no focus
10711         appearance update.
10712         (WebCore::Element::blur): Replaced call to
10713         stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
10714         (WebCore::Element::cancelFocusAppearanceUpdate): Added. Sets
10715         m_needsFocusAppearanceUpdateSoonAfterAttach to false, and then calls
10716         cancelFocusAppearanceUpdate() on the document, but only if the element
10717         is the focused node of the document.
10719         * html/HTMLDocument.cpp:
10720         (WebCore::HTMLDocument::HTMLDocument): Replaced code that sets
10721         m_xmlVersion directly with a call to a new inline clearXMLVersion()
10722         function.
10723         (WebCore::HTMLDocument::setCookie): Replaced use of m_policyBaseURL with
10724         policyBaseURL().
10725         (WebCore::HTMLDocument::createTokenizer): Replaced uses of m_frame with
10726         frame().
10727         (WebCore::HTMLDocument::determineParseMode): Replaced code that sets
10728         pMode and hMode directly with calls to setParseMode and setHTMLMode.
10729         Replaced use of m_styleSelector with styleSelector().
10731         * html/HTMLInputElement.h: Removed now-unneed override of focus().
10732         Removed default value of the boolean parameter to updateFocusAppareance.
10733         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance):
10734         Pass the restorePreviousSelection boolean through -- while it's ignored,
10735         it no longer has a default value.
10737         * html/HTMLTextAreaElement.h: Removed now-unneed override of focus().
10738         Removed default value of the boolean parameter to updateFocusAppareance.
10739         * html/HTMLTextAreaElement.cpp: Ditto.
10741         * WebCore.exp: Removed the Document::frame() symbol, since it's now inline.
10743 2007-08-15  Antti Koivisto  <antti@apple.com>
10745         Reviewed by Maciej.
10746         
10747         Fix <rdar://problem/5388936>
10748         Crash while setting display:none for a table cell with selection
10749         
10750         Super class destroy() could (through some selection code in removeChild()) trigger section recalc 
10751         in middle of RenderTableCell::destroy(), cleaning section dirty bit. This would later crash in 
10752         layout since cell grid would still have refence to the dead cell.
10753         
10754         Ensure table sections are dirty when leaving destroy method.
10755         
10756         I can't figure out tests for row and section changes but they look like
10757         they could crash in similar way as cell.
10759         * rendering/RenderTableCell.cpp:
10760         (WebCore::RenderTableCell::destroy):
10761         * rendering/RenderTableRow.cpp:
10762         (WebCore::RenderTableRow::destroy):
10763         * rendering/RenderTableSection.cpp:
10764         (WebCore::RenderTableSection::destroy):
10766 2007-08-15  Maciej Stachowiak  <mjs@apple.com>
10768         Reviewed by Geoff.
10770         <rdar://problem/5389696> leak of 32-byte NSData object (and more?) in WebIconDatabase code path with each refresh of http://www.apple.com
10771         
10772         * platform/graphics/BitmapImage.h: Use RetainPtr for m_nsImage and m_tiffRep
10773         * platform/graphics/mac/ImageMac.mm:
10774         (WebCore::BitmapImage::initPlatformData): No need to do anything now
10775         (WebCore::BitmapImage::invalidatePlatformData): Simplify
10776         (WebCore::BitmapImage::getTIFFRepresentation): Use RetainPtr to avoid leaks
10777         (WebCore::BitmapImage::getNSImage): Use RetainPtr to avoid leaks
10779 2007-08-15  Darin Adler  <darin@apple.com>
10781         Reviewed by Anders.
10783         - fix <rdar://problem/5094895> REGRESSION (r19094): JavaScript timers don't
10784           work inside showModalDialog; caret also doesn't blink
10786         * platform/Timer.h: Added fireTimersInNestedEventLoop.
10787         * platform/Timer.cpp:
10788         (WebCore::TimerBase::fireTimers): Added code to exit if the timersReadyToFire
10789         is cleared. This indicates that someone fired the timers in the nested event
10790         loop, so we should not fire any more timers ourselves.
10791         (WebCore::TimerBase::fireTimersInNestedEventLoop): Added. Sets timersReadyToFire
10792         to 0 so we won't return early and do nothing if the shared timer first. Then
10793         calls updateSharedTimer() so the shared timer will get scheduled as needed based
10794         on any pending timers.
10796         * page/Chrome.cpp: (WebCore::Chrome::runModal): Call
10797         fireTimersInNestedEventLoop before calling runModal on the client.
10799         * manual-tests/modal-dialog.html: Added a test that uses a timeout.
10800         * manual-tests/show-modal-dialog-test.html: Fixed a typo.
10802 2007-08-15  Justin Garcia  <justin.garcia@apple.com>
10804         Reviewed by Darin.
10805         
10806         http://bugs.webkit.org/show_bug.cgi?id=14971
10807         REGRESSION: cannot select reporter's e-mail in bugzilla
10809         * page/EventHandler.cpp:
10810         (WebCore::EventHandler::canMouseDragExtendSelect): Allow drag-selecting inside
10811         a -webkit-user-select:ignore region.
10813 2007-08-15  Beth Dakin  <bdakin@apple.com>
10815         Reviewed by Hyatt.
10817         Rolling back in. I made a silly mistake in XMLTokenizer that caused 
10818         this patch to crash SVG tests. It's fixed now!
10820         Refactor of change for <rdar://problem/5404899> REGRESSION: Mail 
10821         crash in WebCore::FontFallbackList::fontDataAt() after dragging 
10822         image into text multiple times
10824         The original fix that I made last night prevents the pending style 
10825         sheet count from being incremented until the element is in the 
10826         document. This fix prevents the style sheet from loading at all 
10827         until it is in the document.
10829         Here is the fix.
10830         * dom/StyleElement.cpp:
10831         (WebCore::StyleElement::insertedIntoDocument): Call process.
10832         (WebCore::StyleElement::removedFromDocument): This can be reverted 
10833         to its original state before my patch last night.
10834         (WebCore::StyleElement::process): childrenChanged is now called 
10835         process. Return early if your not in the document.
10836         (WebCore::StyleElement::createSheet): Revert change from last 
10837         night. The inDocument check is now in caller childrenChanged.
10838         * dom/StyleElement.h: insertedIntoDocument() must now accept an 
10839         element in addition to a document.
10841         This is an optimization to prevent calling updateStyleSelector() 
10842         too frequently.
10843         * dom/XMLTokenizer.cpp:
10844         (WebCore::XMLTokenizer::startElementNs):
10845         * html/HTMLStyleElement.cpp:
10846         (WebCore::HTMLStyleElement::HTMLStyleElement):
10847         (WebCore::HTMLStyleElement::finishedParsing):
10848         (WebCore::HTMLStyleElement::insertedIntoDocument):
10849         (WebCore::HTMLStyleElement::childrenChanged):
10850         (WebCore::HTMLStyleElement::sheetLoaded):
10851         * html/HTMLStyleElement.h:
10852         * ksvg2/svg/SVGStyleElement.cpp:
10853         (WebCore::SVGStyleElement::SVGStyleElement):
10854         (WebCore::SVGStyleElement::finishedParsing):
10855         (WebCore::SVGStyleElement::insertedIntoDocument):
10856         (WebCore::SVGStyleElement::childrenChanged):
10857         (WebCore::SVGStyleElement::sheetLoaded):
10858         * ksvg2/svg/SVGStyleElement.h:
10859         (WebCore::SVGStyleElement::setCreatedByParser):
10861         This is a name change. Document::stylesheetLoaded() 
10862         is now Document::removePendingSheet()
10863         * dom/Document.cpp:
10864         (WebCore::Document::removePendingSheet):
10865         * dom/Document.h:
10866         * dom/ProcessingInstruction.cpp:
10867         (WebCore::ProcessingInstruction::sheetLoaded):
10868         * html/HTMLLinkElement.cpp:
10869         (WebCore::HTMLLinkElement::~HTMLLinkElement):
10870         (WebCore::HTMLLinkElement::setDisabledState):
10871         (WebCore::HTMLLinkElement::process):
10872         (WebCore::HTMLLinkElement::sheetLoaded):
10873         * page/Frame.cpp:
10874         (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
10875         (WebCore::UserStyleSheetLoader::setCSSStyleSheet):
10877         This is another name change. closeRenderer() is now 
10878         finishedParsing()
10879         * dom/Node.h:
10880         (WebCore::Node::finishedParsing):
10881         * dom/XMLTokenizer.cpp:
10882         (WebCore::XMLTokenizer::endElementNs):
10883         (WebCore::):
10884         * html/HTMLAppletElement.cpp:
10885         (WebCore::HTMLAppletElement::finishedParsing):
10886         * html/HTMLAppletElement.h:
10887         * html/HTMLGenericFormElement.cpp:
10888         (WebCore::HTMLFormControlElementWithState::finishedParsing):
10889         * html/HTMLGenericFormElement.h:
10890         * html/HTMLObjectElement.cpp:
10891         (WebCore::HTMLObjectElement::finishedParsing):
10892         * html/HTMLObjectElement.h:
10893         * html/HTMLParser.cpp:
10894         (WebCore::HTMLParser::insertNode):
10895         (WebCore::HTMLParser::popOneBlockCommon):
10896         * html/HTMLScriptElement.cpp:
10897         (WebCore::HTMLScriptElement::finishedParsing):
10898         * html/HTMLScriptElement.h:
10899         (WebCore::HTMLStyleElement::setCreatedByParser):
10900         * ksvg2/svg/SVGAnimationElement.cpp:
10901         (WebCore::SVGAnimationElement::finishedParsing):
10902         * ksvg2/svg/SVGAnimationElement.h:
10903         * ksvg2/svg/SVGElement.cpp:
10904         (WebCore::SVGElement::finishedParsing):
10905         * ksvg2/svg/SVGElement.h:
10907 2007-08-15  David Harrison  <harrison@apple.com>
10909         Reviewed by Antti Koivisto.
10911         <rdar://problem/5411803> Bumpercar crashes when loading a partial URL (FrameLoader::receivedMainResourceError())
10913         * loader/MainResourceLoader.cpp:
10914         (WebCore::MainResourceLoader::receivedError):
10915         Nil check for the FrameLoader.
10917 2007-08-14  Steve Falkenburg  <sfalken@apple.com>
10919         <rdar://problem/5411482> Windows user agent language always returns "en"
10920         
10921         Implement defaultLanguage().
10923         Reviewed by Oliver.
10925         * WebCore.vcproj/WebCore.vcproj: Added Language.cpp.
10926         * platform/win/Language.cpp: Added.
10927         (WebCore::localeInfo): Added.
10928         (WebCore::defaultLanguage): Added.
10929         * platform/win/TemporaryLinkStubs.cpp: Remove defaultLanguage stub.
10931 2007-08-14  Sam Weinig  <sam@webkit.org>
10933         Reviewed by Geoff and Oliver.
10935         Fix for <rdar://problem/5267870>
10936         Mangleme: Reproducible assertion failure in -[WebCoreFrameBridge installInFrame:]
10938         - Change embed/plugin code path to detach the frame on willRemove instead of detach.
10939           This matches what frame and iframe do.
10941         Test: http/tests/misc/embedCrasher.html
10943         * html/HTMLPlugInElement.cpp:
10944         (WebCore::HTMLPlugInElement::willRemove):
10945         * html/HTMLPlugInElement.h:
10947 2007-08-14  Adele Peterson  <adele@apple.com>
10949         Reviewed by Maciej.
10951         Fix for <rdar://problem/5370059> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
10953         This change makes -webkit-user-select an inherited css property.  For "user-select: none" we were already 
10954         acting like it was an inheritable property, where we let user-select:text on the children override its parent's user-select:none.
10955         By making user-select really inherited (instead of inherited for some values), we eliminate the need for crawling up the tree to see 
10956         if an ancestor has user-select ignore set.
10958         * page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect):
10959           Now that user-select is inherited, you don't need to walk up the render tree looking for ancestors with user-select:ignore set.
10961         * css/CSSStyleSelector.cpp: Eliminate SELECT_AUTO.
10962         (WebCore::CSSStyleSelector::adjustRenderStyle):
10963         (WebCore::CSSStyleSelector::applyProperty):
10964         * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
10966         * rendering/RenderStyle.h:
10967         (WebCore::): Eliminate SELECT_AUTO.  Make userSelect inherited.
10968         (WebCore::RenderStyle::userSelect):
10969         (WebCore::RenderStyle::setUserSelect):
10970         (WebCore::RenderStyle::initialUserSelect):
10971         * rendering/RenderStyle.cpp:
10972         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
10973         (WebCore::StyleRareNonInheritedData::operator==):
10974         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
10975         (WebCore::StyleRareInheritedData::operator==):
10976         (WebCore::RenderStyle::diff):
10978 2007-08-15  Peter Kasting  <zerodpx@gmail.org>
10980         Reviewed by Darin.
10981         
10982         http://bugs.webkit.org/show_bug.cgi?id=14967 part 1 - Eliminate most implicit
10983         conversions of wtf::Vector<T> to T* by explicitly calling .data()
10985         * html/HTMLSelectElement.cpp:
10986         (WebCore::HTMLSelectElement::saveState):
10987         * platform/KURL.cpp:
10988         (WebCore::KURL::KURL):
10989         (WebCore::KURL::init):
10990         (WebCore::KURL::decode_string):
10991         (WebCore::KURL::parse):
10992         (WebCore::KURL::encode_string):
10993         * platform/cf/KURLCFNet.cpp:
10994         (WebCore::KURL::KURL):
10995         * platform/mac/KURLMac.mm:
10996         (WebCore::KURL::KURL):
10997         * rendering/RenderFrameSet.cpp:
10998         (WebCore::RenderFrameSet::layOutAxis):
11000 2007-08-14  Ricci Adams  <iccir@apple.com>
11002         Reviewed by Darin, Hyatt.
11004         - fix <rdar://problem/5407795> -apple-line-clamp should never display less than one line
11006         * rendering/RenderFlexibleBox.cpp:(WebCore::RenderFlexibleBox::layoutVerticalBox): Use
11007         max to make sure it never computes a minimum of less than one line.
11009 2007-08-14  Brady Eidson  <beidson@apple.com>
11011         Reviewed by Darin, John, Maciej, Oliver, and Tim
11013         <rdar://problem/5394708> - Crash on launch with corrupt icon database
11015         The main part of the fix is to not disable SQLite's default level of protection - to leave the sync options at their normal,
11016         mostly safe levels.  
11018         But in case lightning strikes at the exact right moment and someone ends up with a corrupt database, add some support code to
11019         detect that condition and recover from it.  
11021         This is mainly accomplished by exposing the "PRAGMA integrity_check;" facilities of sqlite through IconDatabase SPI as well as
11022         running that integrity check if a journal file is detected at launch (a strong indication that the last quit was not clean).
11023         There's also a method exposed to allow clients to tell the icon database "I suspect something bad happened, please check integrity"
11025         * loader/icon/IconDatabase.cpp:
11026         (WebCore::IconDatabase::checkIntegrityBeforeOpening): Allow clients to suggest an integrity check
11027         (WebCore::IconDatabase::open): Add a check to see if the journal file for the database exists.  If it does, run the integrity
11028           check.  Also run the check if a client has suggested it to be necessary.
11029           If the integrity-check fails, we sadly have to destroy the database and recreate from scratch.
11030           Also - quite importantly - do not adjust the default sync preferences for the SQLDatabase.  They were an optimization that 
11031           might have been valid at one time but no longer affects any benchmarks we care about.
11032         (WebCore::IconDatabase::checkIntegrity): Perform the SQLite integrity_check pragma
11033         * loader/icon/IconDatabase.h:
11035         * loader/icon/IconDatabaseNone.cpp:
11036         (WebCore::IconDatabase::checkIntegrity): Keep IconDatabaseNone users building
11037         (WebCore::IconDatabase::checkIntegrityBeforeOpening): Ditto
11039         * loader/icon/SQLDatabase.cpp:
11040         (WebCore::SQLDatabase::open): Make a copy of the path string so we don't accidentally mutate anyone else's string on ::close()
11042         * platform/FileSystem.h: Added. Begin a long-needed platform file system abstraction
11043         * platform/mac/FileSystemMac.mm: Added.
11044         (WebCore::fileExists): Check if a file exists
11045         (WebCore::deleteFile): Delete a file
11047         * platform/gdk/TemporaryLinkStubs.cpp:
11048         (WebCore::fileExists):
11049         (WebCore::deleteFile):
11050         * platform/qt/TemporaryLinkStubs.cpp:
11051         (WebCore::fileExists):
11052         (WebCore::deleteFile):
11053         * platform/win/TemporaryLinkStubs.cpp:
11054         (WebCore::fileExists):
11055         (WebCore::deleteFile):
11057         * WebCore.exp:
11058         * WebCore.xcodeproj/project.pbxproj:
11060 2007-08-14  Jon Honeycutt  <jhoneycutt@apple.com>
11062         Reviewed by Steve.
11064         Build fix for Windows.
11066         * html/HTMLFormElement.cpp:
11068 2007-08-14  George Staikos  <staikos@kde.org>
11070         Only connect the menu signal once.
11072         * platform/qt/ContextMenuQt.cpp:
11073         (WebCore::ContextMenu::ContextMenu):
11074         (WebCore::ContextMenu::insertItem):
11076 2007-08-14  Justin Garcia  <justin.garcia@apple.com>
11078         Reviewed by Tim.
11080         <rdar://problem/5408255> REGRESSION: In Mail, clicking the containing element's UI closebox doesn't delete element
11082         * editing/DeleteButtonController.cpp:
11083         (WebCore::DeleteButtonController::show): Use -webkit-user-select:ignore for
11084         the deletion UI.
11086 2007-08-14  Antti Koivisto  <antti@apple.com>
11088         Reviewed by Darin.
11089         
11090         Fix <rdar://problem/5143183>
11091         Air Mail postmark shows up wrong in Firefox due to use of CSS background-position-x/y
11092         
11093         Safari was using non-standard background-position-x/y properties when serializing style, both normal 
11094         and computed. As a result Safari generated CSS would not render correctly in Firefox. 
11095         
11096         Use standard background-position property instead.
11098         * css/CSSComputedStyleDeclaration.cpp:
11099         (WebCore::):
11100         * css/CSSMutableStyleDeclaration.cpp:
11101         (WebCore::CSSMutableStyleDeclaration::cssText):
11103 2007-08-14  Sam Weinig  <sam@webkit.org>
11105         Reviewed by Brady and Dr. Harrison.
11107         Fix typo.  'whitespace' property is spelled 'white-space'.
11109         * page/inspector/inspector.css:
11111 2007-08-13  Beth Dakin  <bdakin@apple.com>
11113         Reviewed by Maciej.
11115         Fix for <rdar://problem/5404899> REGRESSION: Mail crash in 
11116         WebCore::FontFallbackList::fontDataAt() after dragging image into 
11117         text multiple times
11119         We were crashing because style information was not up-to-date. This 
11120         patch fixes the problem in two ways:
11122         Style information was not up to date at the time of the crash 
11123         because the document thought there was still a pending style sheet. 
11124         The pending style sheet counter was incremented when a call to 
11125         cloneNode from Mail cloned a style node with an imported style 
11126         sheet. Because Mail disables the cache, the style sheet did not 
11127         load immediately for the cloned node, and we do not check again to 
11128         see if it has loaded in time to decrement the pending style sheet 
11129         counter before the crash point. The fix here is only to increment 
11130         the pending style sheet counter for elements that are already in 
11131         the document.
11132         * dom/StyleElement.cpp:
11133         (WebCore::StyleElement::insertedIntoDocument): If we have a CSS 
11134         style sheet that is currently loading, increment the pending style 
11135         sheet counter. This should keep the counter accurate in the case 
11136         where a style node is cloned and then immediately inserted into the 
11137         document.
11138         (WebCore::StyleElement::removedFromDocument): If we have a CSS 
11139         style sheet that is currently loading, decrement the pending style 
11140         sheet count. This is required to keep the correct balance, given 
11141         the change above.
11142         (WebCore::StyleElement::createSheet): Only addPendingSheet() and 
11143         checkLoaded() if we are in the document.
11145         Here is Darin's original fix. It seems worth keeping this fix too. 
11146         Font style information should not cause a crash if there are still 
11147         pending style sheets. This is good belt-and-suspenders in case 
11148         there is another way to run into this bug with a wacky timing 
11149         issue.
11150         * css/CSSStyleSelector.cpp:
11151         (WebCore::CSSStyleSelector::styleForElement): Update the font.
11153 2007-08-13  Alexey Proskuryakov  <ap@webkit.org>
11155         Reviewed by Darin.
11157         http://bugs.webkit.org/show_bug.cgi?id=14635
11158         rdar://problem/5340188
11159         Uploading file with non-ASCII character in path fails
11161         File upload cannot be tested in DumpRenderTree.
11163         * html/HTMLFormElement.cpp:
11164         (WebCore::pathGetFilename): A cross-platform helper that extracts a file name from a path.
11165         (WebCore::HTMLFormElement::formData): Use the above helper instead of code that doesn't
11166         work on Windows.
11168 2007-08-13  Alexey Proskuryakov  <ap@webkit.org>
11170         Reviewed by Darin.
11172         http://bugs.webkit.org/show_bug.cgi?id=14951
11173         REGRESSION: page interpreted as UTF-8 because of stray <?xml> after <head>
11175         Test: fast/encoding/misplaced-xml-declaration.html
11177         * loader/TextResourceDecoder.cpp:
11178         (WebCore::TextResourceDecoder::checkForHeadCharset): Only honor XML declaration
11179         at the very beginning of the file.
11181 2007-08-13  Oliver Hunt  <oliver@apple.com>
11183         rs=sam
11185         Correct accidentally modified code.
11187         * platform/mac/FontDataMac.mm:
11188         (WebCore::FontData::platformInit):
11190 2007-08-13  Adele Peterson  <adele@apple.com>
11192         Reviewed by Brady.
11194         Fix for http://bugs.webkit.org/show_bug.cgi?id=14746
11195         <rdar://problem/5401041> REGRESSION: Form state not saved for forms that submit via HTTPS even if they do not contain a password field
11197         * loader/FrameLoader.cpp: (WebCore::FrameLoader::saveDocumentState): Restore our old behavior that will save form state for secure forms.
11198           This will also match Firefox behavior.
11200         * dom/Document.cpp: Removed secureFormAdded(), secureFormRemoved(), hasSecureForm() which are no longer used.
11201         * dom/Document.h:
11202         * html/HTMLFormElement.cpp:
11203         (WebCore::HTMLFormElement::attach):
11204         (WebCore::HTMLFormElement::parseMappedAttribute):
11206 2007-08-13  Oliver Hunt  <oliver@apple.com>
11208         Reviewed by Maciej.
11210         <rdar://problem/5386183> REGRESSION (9A504-9A508): Underline of inline hole is too thin 
11211         on Japanese DotMac page
11212         
11213         Hack the line metrics for the Hiragino font families so that they always allow space for
11214         the marked text underline.
11215         
11216         * platform/mac/FontDataMac.mm:
11217         (WebCore::FontData::platformInit):
11219 2007-08-13  David Hyatt  <hyatt@apple.com>
11221         Reviewed by aroben
11223         <rdar://problem/5400446> messed up content on calendar.yahoo.com and my.yahoo.com
11225         Fix some more bad assumptions about <html> being the first child of the document now that we
11226         properly support HTML5's model (where a comment node preceding <html> will in fact be its sibling).
11228         * html/HTMLParser.cpp:
11229         (WebCore::HTMLParser::handleError):
11230         (WebCore::HTMLParser::createHead):
11232 2007-08-13  Justin Garcia  <justin.garcia@apple.com>
11234         Reviewed by Darin.
11235         
11236         <rdar://problem/5333725> -webkit-user-select: none makes selection difficult
11237         
11238         Let users create selections if they mouse down in a -webkit-user-select:none
11239         region, just (continue to) disallow selection endpoints in those regions, and
11240         don't paint those regions as selected if they are fully enclosed by a selection. 
11241         For example, in xxyyyxx where x is -webkit-user-select:none, a user can mouse down
11242         between the first two xs and drag across yyy to the second two xs to create a 
11243         selection xx^yyy^xx.
11244         
11245         * editing/SelectionController.cpp:
11246         (WebCore::SelectionController::selectAll): Allow selectAll inside a root
11247         that has -webkit-user-select:none, because it may contain content that
11248         is selectable (VisiblePosition and Selection creation will keep Selection
11249         endpoints out of -webkit-user-select:none regions).
11250         * page/EventHandler.cpp:
11251         (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect
11252         instead of the ambiguously named shouldSelect().
11253         (WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
11254         (WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
11255         (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect.
11256         (WebCore::EventHandler::selectCursor): Paint an ibeam in -webkit-user-select:none regions,
11257         because you can click in those regions to create a selection.
11258         (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and
11259         returns true in -webkit-user-select: none regions.
11260         (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to 
11261         canMouseDownStartSelect because of 12823, even though it seems strange that we would fire 
11262         the selectStart event here.
11263         * page/EventHandler.h:
11264         * rendering/RenderObject.cpp:
11265         (WebCore::RenderObject::draggableNode): Only -webkit-user-select:ignore regions will
11266         prevent selection creation.
11267         * rendering/RenderObject.h:
11269 2007-08-13  Anders Carlsson  <andersca@apple.com>
11271         Reviewed by Maciej.
11273         <rdar://problem/5360748>
11274         REGRESSION (r21002-r21003): Flash widget sniffer doesn't work (affects iWeb)
11276         Don't check whether the document is being parsed or not, because the node list
11277         could be accessed after the document has finished parsing.
11278         
11279         * dom/Node.cpp:
11280         (WebCore::Node::registerNodeList):
11282 2007-08-13  Lars Knoll  <lars@trolltech.com>
11284         Reviewed by Simon.
11286         no need to update regions that are not visible on the webpage.
11288         * platform/qt/ScrollViewQt.cpp:
11289         (WebCore::ScrollView::updateContents):
11291 2007-08-12  Maciej Stachowiak  <mjs@apple.com>
11293         Reviewed by Darin and Sam.
11294         
11295         <rdar://problem/5395213> cross-domain access to individual components of location object should be denied.
11297         * bindings/js/kjs_window.cpp:
11298         (KJS::Location::put): Add the appropriate cross-domain access checks.
11300 2007-08-12  Darin Adler  <darin@apple.com>
11302         Reviewed by John Sullivan.
11304         - fix <rdar://problem/5403724> REGRESSION: text inputs are not scrolled to make inline input visible (14912)
11306         * editing/Editor.h: Made setIgnoreMarkedTextSelectionChange no longer inline.
11307         It now has a side effect of revealing the selection when you set it to false.
11308         Added private revealSelectionAfterEditingOperation helper.
11309         * editing/Editor.cpp:
11310         (WebCore::Editor::deleteRange): Calls revealSelectionAfterEditingOperation instead
11311         of calling m_frame->revealSelection directly.
11312         (WebCore::Editor::replaceSelectionWithFragment): Ditto.
11313         (WebCore::Editor::insertOrderedList): Ditto.
11314         (WebCore::Editor::insertUnorderedList): Ditto.
11315         (WebCore::Editor::increaseSelectionListLevel): Ditto.
11316         (WebCore::Editor::increaseSelectionListLevelOrdered): Ditto.
11317         (WebCore::Editor::increaseSelectionListLevelUnordered): Ditto.
11318         (WebCore::Editor::decreaseSelectionListLevel): Ditto.
11319         (WebCore::Editor::insertLineBreak): Ditto.
11320         (WebCore::Editor::insertParagraphSeparator): Ditto.
11321         (WebCore::Editor::replaceMarkedText): Ditto.
11322         (WebCore::Editor::revealSelectionAfterEditingOperation): Added. Calls revealSelection,
11323         unless we are in the ignoreMarkedTextSelectionChange state. If we are in that state,
11324         we're in the middle of a composite editing operation and we shouldn't try to scroll
11325         to reveal the selection until the operation is done.
11326         (WebCore::Editor::setIgnoreMarkedTextSelectionChange): Made no longer inline. If
11327         changing the state from true to false, then calls revealSelectionAfterEditingOperation.
11329         * WebCore.exp: Add new entry point for no-longer-inline setter function.
11331 2007-08-12  Geoffrey Garen  <ggaren@apple.com>
11333         Reviewed by Maciej Stachowiak, Dave Hyatt.
11334         
11335         Changed the dead resource LRU-SP algorithm to measure an object's
11336         total size, not just its encoded size. This will allow us to make 
11337         better decisions about what data to evict when the cache is small. For 
11338         example, the PLT can now run with a 16MB cache without fully evicting
11339         any resources.
11340         
11341         (Previously, we had assumed that decoded size would be an OK estimate
11342         of encoded size, but that is not true of GIF, whose decoded size can be 
11343         orders of magnitude greater than its encoded size.)
11344         
11345         Subtly, destroying a resource's decoded data now increases its recency 
11346         by moving it to the head of a smaller LRU list. This is slightly odd,
11347         but, since all resources get the same treatment, it shouldn't hurt 
11348         the eviction algorithm.
11350         * history/PageCache.cpp:
11351         (WebCore::PageCache::releaseAutoreleasedPagesNow): Make sure that a
11352         dead resource eviction doesn't happen until we've released all of our
11353         dead pages. Otherwise, the cache will make terrible decisions about 
11354         what to evict because all of our dead resources will seem live.
11356         * loader/Cache.cpp:
11357         (WebCore::Cache::Cache):
11358         (WebCore::Cache::pruneLiveResources):
11359         (WebCore::Cache::pruneDeadResources): Removed call to 
11360         removeFromLiveDecodedResourcesList because this happens automatically
11361         now as a part of the process of changing the resource's decoded size.
11362         (WebCore::Cache::lruListFor): *** The key change. *** Compute the 
11363         appropriate LRU list based on total size, not encoded size.
11364         (WebCore::Cache::dumpLRULists): Added debug logging function to help
11365         visualize the cache.
11367         * loader/Cache.h:
11368         (WebCore::Cache::setDeadResourcePruneEnabled):
11369         (WebCore::Cache::deadResourcePruneEnabled):
11371         * loader/CachedImage.cpp: Moved decoded size tracking code from here
11372         up into the base class. Currently, only CachedImage has a use for that
11373         functionality, but other subclasses might need it in the future, and
11374         the base class is already responsible for similar code related to 
11375         encoded size tracking.
11376         (WebCore::CachedImage::decodedSizeChanged):
11377         * loader/CachedImage.h:
11379         * loader/CachedResource.cpp:
11380         (WebCore::CachedResource::CachedResource):
11381         (WebCore::CachedResource::setDecodedSize): Move us in the LRU-SP list
11382         just like setEncodedSize does, since decoded size counts now, too.
11383         (WebCore::CachedResource::setEncodedSize): Changed slightly to match
11384         the style of setDecodedSize.
11386         * loader/CachedResource.h:
11387         (WebCore::CachedResource::decodedSize):
11389 2007-08-11  Mitz Pettel  <mitz@webkit.org>
11391         Reviewed by Darin.
11393         - fix http://bugs.webkit.org/show_bug.cgi?id=13670
11394           <rdar://problem/5399619> Table misrender when one of the TDs has width=100%
11396         Tests: fast/table/100-percent-cell-width.html
11397                fast/table/percent-widths-stretch.html
11399         * rendering/AutoTableLayout.cpp:
11400         (WebCore::AutoTableLayout::calcPrefWidths): Changed the value used instead of
11401         0% to avoid division by zero from 1% to less than 0.01%. Removed code that
11402         added 0.5px to non-percent widths when calculating the scaling factor. The
11403         latter change is covered by the percent-widths-stretch test, where the new
11404         results match both WinIE 7 and Firefox 3.
11406 2007-08-11  Darin Adler  <darin@apple.com>
11408         Reviewed by Antti.
11410         - fix <rdar://problem/5266535> REGRESSION: <img> inside <map> no longer allowed in strict mode
11411           (breaks chemicalelements.com)
11413         Test: fast/parser/strict-img-in-map.html
11415         * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::checkDTD): Removed FIXME saying this
11416         code is strange, since this code matches the HTML 4 specification almost exactly. Made
11417         <img> elements allowed even in strict mode and added small comments to clarify what comes
11418         from the DTD and what is non-standard.
11420 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11422         Reviewed by Anders.
11424         Implement passing events to a subframe. The code is copied from
11425         the windows port and passSubframeEventToSubframe was removed as it
11426         is not called and it is not avilable in the windows port as well.
11428         * page/gdk/EventHandlerGdk.cpp:
11429         (WebCore::EventHandler::passMousePressEventToSubframe):
11430         (WebCore::EventHandler::passMouseMoveEventToSubframe):
11431         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
11433 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11435         Reviewed by Lars.
11437         GdkEventKey::string is not supposed to be used. The length
11438         of this string is zero for non ascii characters. Use the
11439         gdk_unicode_to_keyval to convert the keyval to a UChar and construct
11440         a String. This change makes it possible to input non ascii
11441         characters.
11443         * platform/gdk/KeyEventGdk.cpp:
11444         (WebCore::keyIdentifierForGdkKeyCode):
11445         (WebCore::singleCharacterString):
11446         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
11448 2007-08-11  Andrew Wellington  <proton@wiretapped.net>
11450         Reviewed by Mark Rowe.
11451         
11452         Fix http://bugs.webkit.org/show_bug.cgi?id=14645
11453         getPropertyValue should be case insensitive
11454         
11455         When we get the propertyID for a given string we convert to lowercase.
11456         
11457         This also applies to setProperty, removeProperty and others.
11458         
11459         * css/CSSStyleDeclaration.cpp:
11460         (WebCore::propertyID):
11462 2007-08-11  Mark Rowe  <mrowe@apple.com>
11464         Build fix.  Change "#ifdef PLATFORM(GDK)" to "#if PLATFORM(GDK)".
11466         * page/FrameView.cpp:
11467         * page/FrameView.h:
11469 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11471         Reviewed by Adam.
11473         Copy the WebFrame::layoutIfNeededRecursive method of the windows port
11474         to FrameView to be used by the Gtk+ port. Simplify the implementation due
11475         moving it to the FrameView class.
11477         Implement the ScrollView::children() method for the Gtk+ port and make it
11478         available to the FrameView as children() is used within the layoutIfNeededRecursive method.
11480         * page/FrameView.cpp:
11481         (WebCore::FrameView::layoutIfNeededRecursive):
11482         * page/FrameView.h:
11483         * platform/ScrollView.h:
11484         * platform/gdk/ScrollViewGdk.cpp:
11486 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11488         Reviewed by Adam.
11490         To fix text selection make the PlatformMouseEvent set the pressed
11491         button even when moving the mouse.
11492         
11493         Add building of the WebKit::DragClient stubs as they are needed to
11494         make text selection work.
11496         * WebCore.pro:
11497         * platform/gdk/MouseEventGdk.cpp:
11498         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
11500 2007-08-10  Anders Carlsson  <andersca@apple.com>
11502         Reviewed by Darin and Maciej.
11504         <rdar://problem/5360748>
11505         REGRESSION(r21002-r21003) Flash widget sniffer doesn't work
11506         
11507         Add a per-document NodeList counter. When parsing, only call notifyNodeListsChildrenChanged
11508         if the document has node lists. Also, make sure to reset the cache when the node list count has 
11509         been 0 and a new node list is registered to avoid any stale cache information.
11510         
11511         * dom/ContainerNode.cpp:
11512         (WebCore::ContainerNode::addChild):
11513         * dom/Document.cpp:
11514         (WebCore::Document::Document):
11515         * dom/Document.h:
11516         (WebCore::Document::addNodeList):
11517         (WebCore::Document::removeNodeList):
11518         (WebCore::Document::hasNodeLists):
11519         * dom/Node.cpp:
11520         (WebCore::Node::registerNodeList):
11521         (WebCore::Node::unregisterNodeList):
11523 2007-08-10  Timothy Hatcher  <timothy@apple.com>
11525         Reviewed by Adam.
11527         <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
11529         Disable NPObject use in 64-bit on Mac OS X.
11531         * Configurations/WebCore.xcconfig: Add a framework search path to the sub-framworks of Carbon.
11532         * WebCore.xcodeproj/project.pbxproj: Filter out the Frame::windowScriptNPObject() symbol in 64-bit.
11533         * bindings/objc/DOM.mm:
11534         (-[DOMElement _NPObject]): Return null in 64-bit.
11535         * config.h: Set WTF_USE_NPOBJECT to 0 in 64-bit Mac OS X.
11536         * page/Frame.cpp:
11537         (WebCore::Frame::cleanupScriptObjects): Add more #if USE(NPOBJECT) blocks where needed.
11538         * page/Frame.h: Ditto.
11539         * page/mac/FrameMac.mm:
11540         (WebCore::Frame::createScriptInstanceForWidget): Ditto.
11541         * page/mac/WebCoreFrameBridge.h: Ditto.
11542         * page/mac/WebCoreFrameBridge.mm: Ditto.
11544 2007-08-10  Mitz Pettel  <mitz@webkit.org>
11546         Reviewed by Justin.
11548         - fix <rdar://problem/5397344> http://bugs.webkit.org/show_bug.cgi?id=14911
11549           REGRESSION: Clicking in pasted text doesn't position the insertion point correctly
11551         Test: editing/selection/inline-closest-leaf-child.html
11553         * rendering/RootInlineBox.cpp:
11554         (WebCore::RootInlineBox::closestLeafChildForXPos): Return the last leaf if
11555         it's the closest match, or if no other leaf matches (for example if all
11556         leaves are list markers or non-editable where editable is required).
11558 2007-08-10  Anders Carlsson  <andersca@apple.com>
11560         Reviewed by Geoff.
11562         <rdar://problem/5390568> 
11563         REGRESSION: -[WebFrame loadHTMLString:baseURL:] leaks the data source.
11564         
11565         Revert the fix for <rdar://problem/5133420> which caused us to not cancel 
11566         substitute data loads. It's better to remove the assertion in the WebKit layer.
11567         
11568         * loader/ResourceLoader.cpp:
11569         (WebCore::ResourceLoader::didCancel):
11571 2007-08-10  Sam Weinig  <sam@webkit.org>
11573         Rubber-stamped by Adam Roben.
11575         Fix Windows, Qt and Gtk build.
11577         * WebCore.pro:
11578         * WebCore.vcproj/WebCore.vcproj:
11580 2007-08-09  Sam Weinig  <sam@webkit.org>
11582         Reviewed by Maciej.
11584         Fix for <rdar://problem/5395618>
11586         Use checkNodeSecurity when setting the 'src' or 'location' attribute of an
11587         iframe or frame element.  
11589         * WebCore.xcodeproj/project.pbxproj:
11590         * bindings/js/JSAttrCustom.cpp: Added.
11591         (WebCore::JSAttr::setValue): Call checkNodeSecurity for attributes with a current iframe or frame
11592         ownerElement when setting src to a javascript: URL.
11593         * bindings/js/JSElementCustom.cpp: Added.
11594         (WebCore::allowSettingSrcToJavascriptURL):
11595         (WebCore::JSElement::setAttribute): Call checkNodeSecurity when element is a frame or iframe and 
11596         setting he src attribute to a javascript: URL.
11597         (WebCore::JSElement::setAttributeNode): Ditto.
11598         (WebCore::JSElement::setAttributeNS): Ditto.
11599         (WebCore::JSElement::setAttributeNodeNS): Ditto.
11600         * bindings/js/JSHTMLFrameElementCustom.cpp: Added.
11601         (WebCore::allowSettingJavascriptURL):
11602         (WebCore::JSHTMLFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
11603         (WebCore::JSHTMLFrameElement::setLocation): Ditto.
11604         * bindings/js/JSHTMLIFrameElementCustom.cpp: Added.
11605         (WebCore::JSHTMLIFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
11606         * bindings/scripts/CodeGeneratorJS.pm: Add support for [CustomGetter] and [CustomSetter]
11607         * dom/Attr.idl:
11608         * dom/Element.idl:
11609         * html/HTMLFrameElement.idl:
11610         * html/HTMLIFrameElement.idl:
11612 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11614         Reviewed by Anders.
11616         Make the containingWindow a GtkContainer and make use of the
11617         GtkWidget::window instead of the GtkLayout::bin_window.
11619         * platform/Widget.h:
11620         * platform/gdk/PlatformScreenGdk.cpp:
11621         (WebCore::screenDepth):
11622         * platform/gdk/ScrollViewGdk.cpp:
11623         (WebCore::ScrollView::updateContents):
11624         (WebCore::ScrollView::update):
11625         * platform/gdk/WidgetGdk.cpp:
11626         (WebCore::Widget::setContainingWindow):
11627         (WebCore::Widget::setCursor):
11629 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11631         Reviewed by Lars.
11633         Revert r24699 as it broke timers. The precision of QTime::toTime_t() is just seconds, which is not good enough. Revert back
11634         to the old implementation and use the simple implementation of currentTime() from win/ for the Qt/Windows build (fingers crossed :)
11636         * WebCore.pro:
11637         * platform/qt/SystemTimeQt.cpp:
11638         (WebCore::currentTime):
11640 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11642         Reviewed by Lars.
11644         Recognize .htm as valid extension for text/html.
11646         * platform/qt/MIMETypeRegistryQt.cpp:
11647         (WebCore::):
11649 2007-08-10  Lars Knoll  <lars@trolltech.com>
11651         Reviewed by Simon.
11653         remove an assertion that leads to crashes. The whole design of WidgetQt and ScrollViewQt needs to be reevaluated soon anyways.
11655         * platform/qt/ScrollViewQt.cpp:
11657 2007-08-10  Mark Rowe  <mrowe@apple.com>
11659         Fix the Mac build.
11661         * ForwardingHeaders/bindings/runtime_object.h: Added.
11663 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11665         Reviewed by Lars.
11667         Make sure -fno-strict-aliasing is also added for mkspecs like linux-g++-64.
11669         * WebCore.pro:
11671 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11673         Reviewed by Lars.
11675         Enable JavaScript bindings for HTML Object/Applet elements in the Qt port.
11677         * WebCore.pro:
11678         * bindings/js/kjs_dom.cpp:
11679         * html/HTMLAppletElement.h:
11680         * html/HTMLEmbedElement.h:
11681         * page/qt/FrameQt.cpp:
11682         (WebCore::Frame::createScriptInstanceForWidget):
11684 2007-08-10  Mitz Pettel  <mitz@webkit.org>
11686         Reviewed by Dave Hyatt.
11688         - fix http://bugs.webkit.org/show_bug.cgi?id=14798
11689           Incorrect bidi reordering of neutrals and digits after RTL embed
11690           and other bugs in the bidi algorithm.
11692         Test: fast/text/international/bidi-neutral-run.html
11694         Fixed several bugs in resolving the embedding level of runs of neutral
11695         characters. Changed the logic to rely on the eor direction only for
11696         the number types, and otherwise consider the last strong type.
11698         * platform/BidiContext.h:
11699         (WebCore::BidiContext::BidiContext): Added an ASSERT.
11700         * platform/BidiResolver.h:
11701         (WebCore::::embed):
11702         (WebCore::::createBidiRunsForLine):
11703         * platform/graphics/GraphicsContext.cpp:
11704         (WebCore::TextRunIterator::atEnd): Changed to return true instead of
11705         crashing when called on the empty iterator.
11707 2007-08-09  Mark Rowe  <mrowe@apple.com>
11709         Reviewed by Antti.
11711         <rdar://problem/5400709> Versioning in debug and release builds should include minor and tiny version before +
11713         * Configurations/Version.xcconfig:
11714         * WebCore.xcodeproj/project.pbxproj: Add a shell script phase to make to dependency between
11715         Version.xcconfig and Info.plist explicit to Xcode.
11717 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11719         Reviewed by Justin Garcia.
11721         - fix http://bugs.webkit.org/show_bug.cgi?id=14347
11722           REGRESSION (r21291): Initiating a drag near the edge of a selection deselects it
11724         Test: editing/selection/contains-boundaries.html
11726         * editing/SelectionController.cpp:
11727         (WebCore::SelectionController::contains): Changed to return true for the
11728         selection boundaries too.
11730 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11732         Reviewed by Dave Hyatt.
11734         - fix http://bugs.webkit.org/show_bug.cgi?id=14742
11735           Document::recalcStyle(Force) called for every updateStyleIgnorePendingStylesheets while waiting for stylesheets
11736           <rdar://problem/5376306>
11738         updateStyleSelector() is normally called when something changes that factors
11739         into the style selector. However, updateLayoutIgnorePendingStylesheets() calls it for
11740         a different reason, namely to account for all the preceding changes that were ignored
11741         because of the early return in updateStyleSelector(). After that, the early return
11742         can no longer occur, so changes are accounted for as they happen, and
11743         updateLayoutIgnorePendingStylesheets() does not need to call updateStyleSelector()
11744         again.
11746         * dom/Document.cpp:
11747         (WebCore::Document::updateLayoutIgnorePendingStylesheets): Call updateStyleSelector()
11748         only before the first layout.
11750 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11752         Reviewed by Adam Roben.
11754         - fix http://bugs.webkit.org/show_bug.cgi?id=14362
11755           Opening a select list always highlights first element in list
11757         * platform/win/PopupMenuWin.cpp:
11758         (WebCore::PopupWndProc): Track the mouse only inside the popup.
11760 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11762         Reviewed by Dave Hyatt.
11764         - fix http://bugs.webkit.org/show_bug.cgi?id=14875
11765           Textarea with nowrap - left/right nav, Up/down nav both hide text
11767         Test: fast/layers/scroll-rect-to-visible.html
11769         * rendering/RenderLayer.cpp:
11770         (WebCore::RenderLayer::scrollRectToVisible): Account for borders and scroll bars.
11772 2007-08-09  Geoffrey Garen  <ggaren@apple.com>
11774         Reviewed by Dave Hyatt.
11775         
11776         Refactored live decoded resource eviction to be more modular / 
11777         encapsulated. 
11778         
11779         This fixes one known place where we forgot to hook into the live 
11780         decoded eviction mechanism -- canvas. There might be other, unknown 
11781         places. In a canvas test page, which I broke off from the Safari 
11782         pageout test, I saw an RPRVT reduction of ~10MB.
11783         
11784         A few renames:
11785         - "m_lastLiveAccessTime" => "m_lastDecodedAccessTime" because the data
11786         point we're recording is access to the resource in decoded form.
11787         
11788         - "liveResourceAccessed" => "didAccessDecodedData" for the same reason.
11790         - "pruneAllResources" => "pruneDeadResources" because this function 
11791         does not prune live resources.
11792         
11793         And the fix:
11794         Instead of updating cache metadata at the call site whenver drawing an 
11795         image, just have an image notify its observer whenever it draws. The 
11796         observer, which is a CachedResource, can then update the metadata.
11797         
11798         * loader/Cache.cpp: Renames
11799         * loader/Cache.h: Removed stale declarations, updated comments
11800         * loader/CachedImage.cpp:
11801         (WebCore::CachedImage::didDraw): Implemented didDraw to update cache
11802         metadata whenever our image draws.
11803         * loader/CachedImage.h: Grouped parts of the ImageObserver interface.
11804         * loader/CachedResource.cpp:
11805         (WebCore::CachedResource::CachedResource):
11806         (WebCore::CachedResource::deref):
11807         (WebCore::CachedResource::didAccessDecodedData): Made this function
11808         slightly more modular by allowing the caller to provide a time stamp.
11809         In theory, not all CachedResources will necessarily want to use the 
11810         current paint time stamp.
11811         * platform/graphics/cg/ImageCG.cpp:
11812         (WebCore::BitmapImage::draw): Notify our observer that we drew.
11813         (WebCore::Image::drawPattern): ditto
11814         * platform/graphics/cg/PDFDocumentImage.cpp:
11815         (WebCore::PDFDocumentImage::draw): ditto
11816         * platform/graphics/svg/SVGImage.cpp:
11817         (WebCore::SVGImage::draw): ditto
11818         
11819         Removed old code at image drawing call sites:
11820         
11821         * rendering/RenderBox.cpp:
11822         (WebCore::RenderBox::paintBackgroundExtended):
11823         * rendering/RenderImage.cpp:
11824         (WebCore::RenderImage::paint):
11825         * rendering/RenderListMarker.cpp:
11826         (WebCore::RenderListMarker::paint):
11827         * rendering/RenderObject.cpp:
11828         (WebCore::RenderObject::paintBorderImage):
11830 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11832         Reviewed by Adam.
11834         Move the various *ClientGdk.{h,cpp} away from the WebCore directory as
11835         of http://bugs.webkit.org/show_bug.cgi?id=14727.
11837         * WebCore.pro:
11838         * platform/gdk/TemporaryLinkStubs.cpp:
11840 2007-08-09  Anders Carlsson  <andersca@apple.com>
11842         Reviewed by Maciej.
11844         <rdar://problem/5400029> iframes with an image src rarely load image
11845         
11846         Don't try to shrink standalone images in subframes. The resize event is not 
11847         sent for subframes which screws up the shrink-to-fit logic.
11848         
11849         * loader/ImageDocument.cpp:
11850         (WebCore::ImageDocument::createDocumentStructure):
11851         (WebCore::ImageDocument::imageChanged):
11852         (WebCore::ImageDocument::shouldShrinkToFit):
11853         * loader/ImageDocument.h:
11855 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11857         Reviewed by Adam.
11859         Implement FrameLoaderClientGdk::createFrame mostly by copying
11860         the windows implementation. A method similiar to WebFrame::loadURLIntoChild
11861         was not introduced instead we have a simplified version similiar to the
11862         one of the Qt port.
11864         Remove building of WebKit/gtk/webkitgtkframedata.{cpp,h}.
11866         * WebCore.pro:
11867         * loader/gdk/FrameLoaderClientGdk.cpp:
11868         (WebCore::FrameLoaderClientGdk::createFrame):
11870 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11872         Reviewed by Adam.
11874         Use the ScrollView/Widget design of the Windows port to only use one
11875         native window for the whole page. This will make it possible to implement
11876         FrameLoaderClientGdk::createFrame.
11878         In contrast to the windows port the ScrollBars are GtkWidgets. To paint them
11879         at the right position we need to position them correctly. To not scroll the
11880         ScrollBar's belonging to the ScrollView a ScrollViewScrollbar is introduced with
11881         a different geometryChanged method.
11883         To allow the Gtk+ way of scrolling the ScrollView allows to get GtkAdjustments
11884         set. In this case no ScrollViewScrollbar will be created.
11887         * platform/ScrollView.h:
11888         * platform/Widget.h:
11889         * platform/gdk/PlatformScreenGdk.cpp:
11890         (WebCore::screenDepth):
11891         * platform/gdk/PlatformScrollBar.h:
11892         * platform/gdk/PlatformScrollBarGdk.cpp:
11893         (PlatformScrollbar::PlatformScrollbar):
11894         (PlatformScrollbar::~PlatformScrollbar):
11895         (PlatformScrollbar::setRect):
11896         (PlatformScrollbar::geometryChanged):
11897         * platform/gdk/ScrollViewGdk.cpp:
11898         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
11899         (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
11900         (WebCore::ScrollViewScrollbar::ScrollViewScrollbar):
11901         (WebCore::ScrollViewScrollbar::geometryChanged):
11902         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
11903         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
11904         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
11905         (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
11906         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
11907         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
11908         (WebCore::ScrollView::setGtkAdjustments):
11909         (WebCore::ScrollView::updateContents):
11910         (WebCore::ScrollView::update):
11911         (WebCore::ScrollView::visibleWidth):
11912         (WebCore::ScrollView::resizeContents):
11913         (WebCore::ScrollView::contentsX):
11914         (WebCore::ScrollView::scrollOffset):
11915         (WebCore::ScrollView::maximumScroll):
11916         (WebCore::ScrollView::scrollBy):
11917         (WebCore::ScrollView::suppressScrollbars):
11918         (WebCore::ScrollView::setHScrollbarMode):
11919         (WebCore::ScrollView::setVScrollbarMode):
11920         (WebCore::ScrollView::setScrollbarsMode):
11921         (WebCore::ScrollView::setFrameGeometry):
11922         (WebCore::ScrollView::addChild):
11923         (WebCore::ScrollView::removeChild):
11924         (WebCore::ScrollView::scrollRectIntoViewRecursively):
11925         (WebCore::ScrollView::wheelEvent):
11926         (WebCore::ScrollView::updateScrollbars):
11927         (WebCore::ScrollView::windowToContents):
11928         (WebCore::ScrollView::contentsToWindow):
11929         (WebCore::ScrollView::scrollbarUnderMouse):
11930         (WebCore::ScrollView::convertChildToSelf):
11931         (WebCore::ScrollView::convertSelfToChild):
11932         (WebCore::ScrollView::paint):
11933         (WebCore::ScrollView::geometryChanged):
11934         (WebCore::ScrollView::scroll):
11935         (WebCore::ScrollView::addToDirtyRegion):
11936         (WebCore::ScrollView::scrollBackingStore):
11937         (WebCore::ScrollView::updateBackingStore):
11938         * platform/gdk/WidgetGdk.cpp:
11939         (WebCore::WidgetPrivate::gdkDrawable):
11940         (WebCore::Widget::Widget):
11941         (WebCore::Widget::setContainingWindow):
11942         (WebCore::Widget::containingWindow):
11943         (WebCore::Widget::frameGeometry):
11944         (WebCore::Widget::setFrameGeometry):
11945         (WebCore::Widget::setParent):
11946         (WebCore::Widget::parent):
11947         (WebCore::Widget::setCursor):
11948         (WebCore::Widget::show):
11949         (WebCore::Widget::hide):
11950         (WebCore::Widget::removeFromParent):
11951         (WebCore::Widget::paint):
11952         (WebCore::Widget::invalidate):
11953         (WebCore::Widget::invalidateRect):
11954         (WebCore::Widget::convertToContainingWindow):
11955         (WebCore::Widget::convertFromContainingWindow):
11956         (WebCore::Widget::convertChildToSelf):
11957         (WebCore::Widget::convertSelfToChild):
11958         (WebCore::Widget::suppressInvalidation):
11959         (WebCore::Widget::setSuppressInvalidation):
11961 2007-08-09  Adele Peterson  <adele@apple.com>
11963         Fix by Brady, reviewed by me.
11965         Fix for <rdar://problem/5380697> connection:willSendRequest:redirectResponse: is called on every NSURLConnection
11967         * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
11968           Work around a behavior change in CFNetwork where willSendRequest gets called more often by returning early.
11970 2007-08-09  Darin Adler  <darin@apple.com>
11972         Reviewed by Antti.
11974         - fix <rdar://problem/4889753> REGRESSION: Selection doesn't continue with drag selecting
11975           when autoscrolling vertically (in Notes as well as Safari)
11977         The bug doesn't happen inside DumpRenderTree, so I was unable to make an automated
11978         regression test.
11980         * manual-tests/autoscroll-when-outside-window.html: Added.
11982         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll): Removed unneeded null
11983         check for the layer's renderer and the document, neither of which can be null. Call
11984         the new updateSelectionForMouseDrag instead of doing selection updating here.
11986         * page/EventHandler.h:
11987         * page/EventHandler.cpp:
11988         (WebCore::EventHandler::handleMouseDraggedEvent): Refactored most of the logic
11989         about updating the selection into updateSelectionForMouseDrag.
11990         (WebCore::EventHandler::updateSelectionForMouseDrag): Added. The public version of
11991         this function takes no parameters, and is for use from auto-scrolling code. The
11992         private version of this function takes node and point parameters and contains the
11993         shared code, including everything from updateSelectionForMouseDragOverPosition.
11994         Aside from the code motion, variable name changes, and sharing more code, this
11995         differs from the old code in RenderLayer::autoscroll in the following ways:
11997           1) The old code did hit testing only in the layer that was auto-scrolling,
11998              and the new code instead starts the hit testing at the root layer, which is
11999              better because it's the same thing we do for mouse moved events. Further,
12000              the code to do this by calling convertToLayerCoords had a bug  because the
12001              x and y variables were uninitialized.
12002           2) The old code passed false for active to HitTestRequest, which was wrong.
12003              The new code passes true. This flag needs to be true for hit testing done
12004              while the mouse is down and false for hit testing done while the mouse is up.
12005           3) The old code did not have the SVG-specific logic to match the mouse moved case.
12006           4) The old code wouldn't do any selection updating if the return value from hitTest
12007              was false, which is incorrect. The new code ignores the return value as it should.
12009 2007-08-08  Beth Dakin  <bdakin@apple.com>
12011         Reviewed by Geoff Garen.
12013         Fx for <rdar://problem/5286443>, http://bugs.webkit.org/
12014         show_bug.cgi?id=14268 REGRESSION: Radio buttons don't stay selected 
12015         due to unclosed <label> tags
12017         This patch maintains the behavior that allows <label> tags to nest. 
12018         This matches WinIE, and appears to match the spec, since the spec 
12019         does not explicitly say that they cannot nest. It fixes the bug 
12020         instead by calling setDefaultHandled() in two places it should have 
12021         been called anyway. This keeps the appropriate button checked as 
12022         the event bubbles.
12024         * html/HTMLInputElement.cpp:
12025         (WebCore::HTMLInputElement::postDispatchEventHandler):
12026         * html/HTMLLabelElement.cpp:
12027         (WebCore::HTMLLabelElement::defaultEventHandler):
12029 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
12031         Reviewed by Oliver.
12033         <rdar://problem/5387578> Crash at ReplaceSelectionCommand::doApply() when pasting just after table cell content
12034         
12035         ReplaceSelectionCommand::doApply() inserts a line break before insertion
12036         to prevent block nesting.  InsertLineBreakCommand::doApply was accidently
12037         destroying a text node when it removed insignificant whitespace and then
12038         setting a nil endingSelection().
12040         * editing/InsertLineBreakCommand.cpp:
12041         (WebCore::InsertLineBreakCommand::doApply): If insignificant whitespace
12042         removal removes textNode from the document, insert a text node containing
12043         the non-breaking space we were attempting to insert and then insert it
12044         at the position that the removed textNode occupied.
12046 2007-08-08  Geoffrey Garen  <ggaren@apple.com>
12048         Reviewed by Maciej Stachowiak.
12050         Added a thrash check to live decoded resource eviction.
12051         
12052         Here's the strategy: Stamp every image with its paint time. Don't evict 
12053         a live decoded resource until another resource paints with a reasonably
12054         (1 second) larger time stamp. 
12055         
12056         If no other resource paints, or another resource paints, but very soon 
12057         after the resource in question, the resource in question is very likely 
12058         to paint again soon. In fact, it's probably still on screen. So we 
12059         leave it alone. (Previously, we evicted it on a timer, but that would 
12060         evict a resource that was still on screen, hurting speed without 
12061         helping memory use.)
12063         In theory, this algorithm allows a single large resource or closely 
12064         related set of resources to linger in the live decoded cache even 
12065         though the cache is over its limit. However, that can only happen as 
12066         long as no other resource ever paints again, which guarantees an 
12067         absolute cap on cache memory usage from then on. Also, the resources 
12068         will only linger as long as they remain live. Upon going dead, they 
12069         will flush. Also, these circumstances are so rare that they are almost 
12070         impossible to encounter in the wild. So don't sweat it.
12071         
12072         Stop evicting if the next resource painted too recently:
12073         
12074         * loader/Cache.cpp:
12075         (WebCore::Cache::pruneLiveResources):
12076         * loader/CachedResource.cpp:
12077         (WebCore::CachedResource::CachedResource):
12078         (WebCore::CachedResource::liveResourceAccessed):
12079         * loader/CachedResource.h:
12081         Track the paint time stamp in Frame. We do this to give a consistent
12082         stamp to all resources painted in a single paint operation (in case the
12083         operation takes a significant amount of time), and to avoid excessive 
12084         calls to system time functions, which hurt the PLT:
12086         * page/Frame.cpp:
12087         (WebCore::Frame::paint):
12088         * page/Frame.h:
12089         (WebCore::Frame::currentPaintTimeStamp):
12091 2007-08-08  Sam Weinig  <sam@webkit.org>
12093         Reviewed by Adam Roben.
12095         Update project file to reflect the moving of character-sets.txt
12096         and make-charset-table.pl to platform/mac a while ago.
12098         * WebCore.xcodeproj/project.pbxproj:
12100 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
12102         Reviewed by Harrison.
12104         <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
12105         
12106         * dom/Position.cpp:
12107         (WebCore::Position::trailingWhitespacePosition): Use VisiblePosition::characterAfter
12108         to look for a trailing space.  The old code would incorrectly return a position before
12109         a non-editable space if it had a collapsed space before it.
12111 2007-08-08  Sam Weinig  <sam@webkit.org>
12113         Reviewed by Brady.
12115         Make protocol and host compares case-insensitive.
12117         * bindings/js/kjs_window.cpp:
12118         (KJS::Window::isSafeScript):
12119         * dom/Document.cpp:
12120         (WebCore::Document::initSecurityPolicyURL):
12121         * platform/DeprecatedString.cpp:
12122         (WebCore::equalIgnoringCase):
12123         * platform/DeprecatedString.h:
12124         (WebCore::equalIgnoringCase):
12126 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
12128         Reviewed by Harrison.
12130         <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
12132         * dom/Position.cpp:
12133         (WebCore::Position::leadingWhitespacePosition): Added checks to prevent expansion across editable an boundary.
12134         (WebCore::Position::trailingWhitespacePosition): Ditto.
12136 2007-08-08  Adele Peterson  <adele@apple.com>
12138         Reviewed by John.
12140         Fix for <rdar://problem/5393798> 100% reproducible crash in WebCore::Scrollbar::setValue
12142         * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent):
12143           If the hit testing originally determined the event was in a scrollbar, 
12144           refetch the MouseEventWithHitTestResults in case the scrollbar widget was destroyed when the mouse event was handled.
12146 2007-08-08  Sam Weinig  <sam@webkit.org>
12148         Reviewed by Geoff Garen.
12150         Fix for <rdar://problem/5354635>
12152         Match Firefox's model for data: URLs by not allowing them script access
12153         to any frames other then itself.
12155         * bindings/js/kjs_window.cpp:
12156         (KJS::Window::isSafeScript):
12157         * dom/Document.cpp:
12158         (WebCore::Document::initSecurityPolicyURL):
12160 2007-08-08  Darin Adler  <darin@apple.com>
12162         Reviewed by Kevin Decker.
12164         - fix for <rdar://problem/5390708> CrashTracer: [USER] 27 crashes in Safari at
12165           com.apple.WebCore: WTF::HashMap<etc>::set + 68, beneath pruneUnretainedIconsAtStartup
12167         * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::pruneUnretainedIconsOnStartup):
12168         Eliminate an unnecessary HashMap from the implementation; we can just use the
12169         m_pageURLToRetainCount map directly. This simplifies the code and allows us to handle
12170         the empty string, which otherwise poses a problem for HashMap.
12172 2007-08-08  Antti Koivisto  <antti@apple.com>
12174         Reviewed by Darin.
12175         
12176         Fix for <rdar://problem/5391576>
12177         Malformed table innerHTML causes Safari to crash in HTMLParser::handleError (14894)
12178         
12179         Add null checks to protect against 
12180         
12181         e.innerHTML = "<tr>text</tr>";
12182         
12183         type cases. Normal assumptions about document tree structure don't hold when parsing 
12184         fragments. Results don't match Firefox in all cases. It seems to have some sort of 
12185         anything-goes fragment parsing mode.
12186         
12187         * html/HTMLParser.cpp:
12188         (WebCore::HTMLParser::handleError):
12190 2007-08-07  Kevin McCullough  <kmccullough@apple.com>
12192         Reviewed by Maciej and Hyatt.
12194         - <rdar://problem/4976879> REGRESSION: Safari doesn't work with Zimbra enhanced login.
12195         - Reverting a previous change, and modifying how documents are created so that we better match other browsers behavior with respect to namespaceURIs.
12197         * WebCore.xcodeproj/project.pbxproj:
12198         * dom/DOMImplementation.cpp:
12199         (WebCore::DOMImplementation::createDocument):
12200         * dom/Document.cpp:
12201         (WebCore::Document::Document):
12202         (WebCore::Document::createElement):
12203         * dom/Document.h:
12204         * html/HTMLDocument.cpp:
12205         (WebCore::HTMLDocument::createElement):
12206         * html/HTMLDocument.h:
12208 2007-08-08  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
12210         Reviewed and landed by Brady
12212         Fixes <http://bugs.webkit.org/show_bug.cgi?id=13422>
12214         Bug 13422: REGRESSION: Page reload loses page position
12216         * loader/FrameLoader.cpp:
12217         (WebCore::FrameLoader::updateHistoryForReload):
12219 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12221         Reviewed by Niko.
12223         Be paranoid and disconnect from the signal before going away.
12225         * platform/gdk/PlatformScrollBarGdk.cpp:
12226         (PlatformScrollbar::~PlatformScrollbar):
12228 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12230         Reviewed by Niko.
12232         Use GraphicsContext::translatePoint in RenderThemeGdk to paint at the
12233         right position.
12234         This is needed as the Gtk+ theming code does not know about the translation
12235         of the GraphicsContext.
12237         * platform/gdk/RenderThemeGdk.cpp:
12238         (WebCore::RenderThemeGdk::paintCheckbox):
12239         (WebCore::RenderThemeGdk::paintRadio):
12240         (WebCore::RenderThemeGdk::paintButton):
12242 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12244         Reviewed by Niko.
12246         Implement Widget::paint for the Gtk port. This is needed to paint
12247         Widgets in z-order. The original GdkEventExpose is stored within the
12248         GraphicsContext and then used to draw the children. This is similiar
12249         to gtk_container_propagate_expose but we try to honor the GraphicsConntext
12250         translation.
12252         * platform/gdk/WidgetGdk.cpp:
12253         (WebCore::Widget::paint):
12254         * platform/graphics/GraphicsContext.h:
12255         * platform/graphics/cairo/GraphicsContextCairo.cpp:
12256         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
12257         (WebCore::GraphicsContext::setGdkExposeEvent):
12258         (WebCore::GraphicsContext::gdkExposeEvent):
12259         (WebCore::GraphicsContext::gdkDrawable):
12260         (WebCore::GraphicsContext::translatePoint):
12262 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12264         Reviewed by Oliver Hunt.
12266         Implement PlatformScrollbar by calling ScrollBar::setValue from 
12267         gtkValueChange connected to the value-changed signal of the
12268         GtkAdjustment.
12269         Update 'value' of the GtkAdjustment in updateThumbPosition and
12270         set upper, page-increment, step-increment and page_size in
12271         updateThumbProportion.
12273         This is from bug http://bugs.webkit.org/show_bug.cgi?id=14795.
12275         * platform/gdk/PlatformScrollBar.h:
12276         * platform/gdk/PlatformScrollBarGdk.cpp:
12277         (PlatformScrollbar::PlatformScrollbar):
12278         (PlatformScrollbar::updateThumbPosition):
12279         (PlatformScrollbar::updateThumbProportion):
12280         (PlatformScrollbar::gtkValueChanged):
12282 2007-08-07  Geoffrey Garen  <ggaren@apple.com>
12284         Reviewed by Maciej Stachowiak. Based on earlier review from Dave Hyatt.
12286         First chunk of work for <rdar://problem/5326009> Make non-browser 
12287         WebKit clients have no memory cache, or a very tiny one
12288         
12289         Layout tests pass.
12290         
12291         Removed decodedSizeWillChange mechanism because my last patch to
12292         change the live resources list to a strict LRU model made that code
12293         vestigial.
12294         
12295         Renamed "liveResourcesList" and related stuff => 
12296         "liveDecodedResourcesList" because only live resources with decoded 
12297         data are kept in the list.
12299         * loader/CachedImage.cpp:
12300         (WebCore::CachedImage::decodedSizeChanged): Only add ourselves to the
12301         list if we're live, our decoded size has grown, and we're not in the 
12302         list already. (Otherwise, either we're not live, we're not decoded,
12303         or we're already in the list.)
12305         * loader/CachedResource.cpp:
12306         (WebCore::CachedResource::liveResourceAccessed): Only re-insert
12307         ourselves into the list if we're already there. (In theory, this should
12308         be always, but it's a little more clear to check.)
12310 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12312         Reviewed by Adam.
12314         Kill class FrameGdk and move the stubs to page/gdk/FrameGdk.cpp and the
12315         remainings into WebKitGtkFrame.
12316         The DRT functionality of class FrameGdk is currently lost.
12318         * WebCore.pro:
12319         * loader/gdk/FrameLoaderClientGdk.cpp:
12320         * loader/gdk/FrameLoaderClientGdk.h:
12321         * page/gdk/FrameGdk.cpp: Renamed from WebCore/platform/gdk/FrameGdk.cpp.
12322         (WebCore::Frame::issueTransposeCommand):
12323         (WebCore::Frame::cleanupPlatformScriptObjects):
12324         (WebCore::Frame::dragImageForSelection):
12325         (WebCore::Frame::dashboardRegionsChanged):
12326         * platform/gdk/FrameGdk.h: Removed.
12327         * platform/gdk/TemporaryLinkStubs.cpp: Removed Frame stub, added the loadResourceIntoArray stub
12328         * platform/gdk/WidgetGdk.cpp:
12330 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12332         Reviewed by Adam.
12334         Remove the event handling code and move it to WebKit/gtk/Api/webkitgtkpage.cpp
12336         * platform/gdk/FrameGdk.cpp:
12337         * platform/gdk/FrameGdk.h:
12339 2007-08-07  Holger Hans Peter Freyther  <zecke@selfish.org>
12341         Reviewed by Niko.
12343         Switch from the generic union GdkEvent to the specific struct GdkEvent*. This is needed
12344         to make WebKitGtkPage handle the events by reimplementing the default handlers in the near
12345         future.
12347         * platform/PlatformKeyboardEvent.h:
12348         * platform/PlatformMouseEvent.h:
12349         * platform/PlatformWheelEvent.h:
12350         * platform/gdk/FrameGdk.cpp:
12351         (WebCore::FrameGdk::handleGdkEvent):
12352         * platform/gdk/KeyEventGdk.cpp:
12353         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
12354         * platform/gdk/MouseEventGdk.cpp:
12355         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
12356         * platform/gdk/WheelEventGdk.cpp:
12357         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
12359 2007-08-07  George Staikos  <staikos@kde.org>
12361         Some QStyles don't handle negative maximum well (crash)
12363         * platform/qt/PlatformScrollBarQt.cpp:
12364         (WebCore::PlatformScrollbar::paint):
12366 2007-08-07  Antti Koivisto  <antti@apple.com>
12368         Reviewed by Hyatt.
12370         Fix <rdar://problem/5102553>
12371         Mail spins trying to display or edit a specific long plain text message in WebCore::TimerBase::...
12373         Calling removeLeftoverAnonymousBoxes() from RenderBlock::addChildToFlow() made adding children
12374         O(n^2) in simple cases (repeated <div><div></div></div> for example).
12375         
12376         I couldn't find any limited fix so here is a more complete one. It removes iterating/recursing 
12377         removeLeftoverAnonymousBoxes() method altogether. Instead of hunting around wildly, just get 
12378         rid of anonymous boxes with block children when they occur.
12380         * rendering/RenderBlock.cpp:
12381         (WebCore::RenderBlock::addChildToFlow):
12382         * rendering/RenderButton.h:
12383         (WebCore::RenderButton::removeLeftoverAnonymousBlock):
12384         * rendering/RenderContainer.cpp:
12385         (WebCore::RenderContainer::removeLeftoverAnonymousBlock):
12386         * rendering/RenderContainer.h:
12387         * rendering/RenderObject.cpp:
12388         (WebCore::RenderObject::handleDynamicFloatPositionChange):
12389         (WebCore::RenderObject::removeLeftoverAnonymousBlock):
12390         * rendering/RenderObject.h:
12391         * rendering/RenderTextControl.h:
12392         (WebCore::RenderTextControl::removeLeftoverAnonymousBlock):
12394 2007-08-06  Sam Weinig  <sam@webkit.org>
12396         Reviewed by Maciej.
12398         Fix for <rdar://problem/5354689>
12400         - Use document variable to determine permissions instead
12401           of traversing the frame tree. 
12403         * bindings/js/kjs_window.cpp:
12404         (KJS::Window::isSafeScript):
12405         * dom/Document.cpp:
12406         (WebCore::Document::Document):
12407         (WebCore::Document::initSecurityPolicyURL):
12408         * dom/Document.h:
12409         (WebCore::Document::securityPolicyURL):
12410         * loader/FrameLoader.cpp:
12411         (WebCore::FrameLoader::setOpener): We must re-initialize the
12412         safeScript URL when setting the opener because the opener was
12413         not known at Document construction.
12415 2007-08-06  David Hyatt  <hyatt@apple.com>
12417         Make sure to clear out the parent of the ellipsis box so that it doesn't
12418         trigger the consistency check for line boxes.
12420         Reviewed by darin
12422         * ChangeLog:
12423         * rendering/RootInlineBox.cpp:
12424         (WebCore::RootInlineBox::detachEllipsisBox):
12426 2007-08-06  David Hyatt  <hyatt@apple.com>
12428         Back out fix for <rdar://problem/5366582> and replace it with the correct
12429         fix.  Make sure to delete the line box tree before splitting an inline flow
12430         into a continuation.  The added layout test for the original checkin covers
12431         the problem.
12433         Reviewed by beth
12435         * rendering/RenderBlock.cpp:
12436         (WebCore::RenderBlock::makeChildrenNonInline):
12437         Back out fix.
12439         * rendering/RenderFlow.cpp:
12440         (WebCore::RenderFlow::destroy):
12441         Back out fix.
12443         * rendering/RenderInline.cpp:
12444         (WebCore::RenderInline::splitFlow):
12445         Here's the new fix.
12447 2007-08-06  Geoffrey Garen  <ggaren@apple.com>
12449         Reviewed by Darin Adler.
12450         
12451         Touching a file to force a re-build.
12453 2007-08-06  Darin Adler  <darin@apple.com>
12455         - fix release build
12457         * rendering/RenderText.h: (WebCore::RenderText::checkConsistency):
12458         Add missing const.
12460 2007-08-06  Darin Adler  <darin@apple.com>
12462         Reviewed by Maciej.
12464         - fix <rdar://problem/5366582> crash on it.eurosport.yahoo.com page
12466         Test: fast/dynamic/inline-to-block-crash.html
12468         I added some consistency checks for the line box tree, which helped me figure out
12469         what was going on with this bug pretty quickly.
12471         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::makeChildrenNonInline):
12472         This is the actual fix. If the block needs layout, then don't try to delete the line
12473         box tree because it's going to be rebuilt as part of layout. More importantly, the
12474         child list in the tree is no good, so we will crash if we try to delete here.
12476         * rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
12477         Here's a second fix. We have the same issue in the code that handles anonymous
12478         blocks -- if it's already running as part of layout, we can't walk through the
12479         already partly destroyed line box tree. This crashed in one of the layout tests.
12481         * rendering/InlineBox.h: Made more fields private, since I wanted to do a bit more
12482         work in setters. Made setNextOnLine() and setPrevOnLine() assert that the box has a
12483         parent. Made parent() assert that the parent is good. Also removed the unused
12484         isChildOfParent() function.
12485         * rendering/InlineBox.cpp: (WebCore::InlineBox::~InlineBox): At destruction time, if
12486         we are still attached to a parent, tag that parent as having a "bad" child list.
12488         * rendering/InlineFlowBox.h: Added m_reasonForBadChildList, checkConsistency(),
12489         setHasBadChildList(), and hasBadChildList(). Also changed firstChild() and lastChild() so
12490         they call checkConsistency() and made all the fields private instead of protected.
12491         * rendering/InlineFlowBox.cpp:
12492         (WebCore::InlineFlowBox::addToLine): Added consistency checks before and after adding a
12493         box to the line. Also checked that next and prev start out as 0. Changed manipulation of
12494         next and prev to use accessor functions.
12495         (WebCore::InlineFlowBox::removeChild): Added consistency checks before and after removing
12496         the box from the line.
12497         (WebCore::InlineFlowBox::deleteLine): Use firstChild() instead of getting at m_firstChild
12498         directly so we get a consistency check. Also set the parent to 0 before destroying so that
12499         the assertion in ~InlineBox will work properly.
12500         (WebCore::InlineFlowBox::extractLine): Ditto.
12501         (WebCore::InlineFlowBox::attachLine): Ditto.
12502         (WebCore::InlineFlowBox::adjustPosition): Ditto.
12503         (WebCore::InlineFlowBox::checkConsistency): Added. Checks consistency of the child list by
12504         looking at the parent, next, and prev pointers. Also asserts that we are not yet in the
12505         "bad" child list state, which happens if one of our children is destroyed without removing
12506         it from our list; that's normal, but once it happens we can't look at our child list again.
12508         * rendering/InlineTextBox.h:
12509         * rendering/InlineTextBox.cpp: Remove unnneeded destroy/new/delete functions -- these are
12510         inherited from the InlineBox base class and don't need to be defined again.
12512         * rendering/RenderFlow.h:
12513         * rendering/RenderFlow.cpp:
12514         (WebCore::RenderFlow::~RenderFlow): Assert that there are no children to confirm that we
12515         didn't leak something.
12516         (WebCore::RenderFlow::extractLineBox): Added consistency checks before and after removing
12517         a run of boxes from the list.
12518         (WebCore::RenderFlow::attachLineBox): Added consistency checks before and after adding
12519         a box to the list.
12520         (WebCore::RenderFlow::removeLineBox): Added consistency checks before and after removing
12521         a box from the list.
12522         (WebCore::RenderFlow::createInlineBox): Added consistency checks before and after adding
12523         a box to the list.
12524         (WebCore::RenderFlow::checkConsistency): Added.
12526         * rendering/RenderText.h:
12527         * rendering/RenderText.cpp:
12528         (WebCore::RenderText::~RenderText): Assert that there are no children to confirm that we
12529         didn't leak something.
12530         (WebCore::RenderText::extractTextBox): Added consistency checks before and after removing
12531         a run of boxes from the list.
12532         (WebCore::RenderText::attachTextBox): Added consistency checks before and after adding
12533         a box to the list.
12534         (WebCore::RenderText::removeTextBox): Added consistency checks before and after removing
12535         a box from the list.
12536         (WebCore::RenderText::deleteTextBoxes): Added code to call setHasBadChildList since this
12537         destroys line boxes without informing the parent.
12538         (WebCore::RenderText::checkConsistency): Added.
12540 2007-08-06  Adele Peterson  <adele@apple.com>
12542         Reviewed by Darin.
12544         Fix for <rdar://problem/5382483> REGRESSION: <select> element's text is clipped when a CSS line-height is specified
12546         Don't honor line-height for styled popup buttons.  We already don't honor line-height for unstyled popups
12547         and since IE and FF don't honor it at all for popups, we shouldn't either.
12549         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustMenuListButtonStyle):
12550         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
12552 2007-08-06  Antti  <antti@apple.com>
12554         Reviewed by Darin.
12556         Fix <rdar://problem/5378214>
12557         Mail crashes at RenderLayer::paintLayer() when dragging a selection over To Do text
12558         
12559         ObjC interface does not guarantee that Document::updateRendering() gets called after
12560         modification are made to document. This can lead to situation where paint()
12561         is invoked with document still dirty which can then crash in number of interesting ways.
12562         
12563         - add hasChangedChild() as needsLayout() condition. layout() will then call recalcStyle() 
12564           catching most cases and making sure document is not dirty when entering painting.
12565         - protect recalcStyle() and layout() from being executed during painting. There are some
12566           cases needsLayout() protection does not cover.
12567         
12568         No layout test, these states are very hard or impossible to reach using Javascript interface
12569         (which generally guarantees that updateRendering() is done right after execution).
12571         * dom/Document.cpp:
12572         (WebCore::Document::recalcStyle):
12573         * page/Frame.cpp:
12574         (WebCore::Frame::paint):
12575         (WebCore::Frame::setPaintRestriction):
12576         (WebCore::Frame::isPainting):
12577         (WebCore::FramePrivate::FramePrivate):
12578         * page/Frame.h:
12579         * page/FramePrivate.h:
12580         * page/FrameView.cpp:
12581         (WebCore::FrameView::layout):
12582         (WebCore::FrameView::needsLayout):
12584 2007-08-05  Maciej Stachowiak  <mjs@apple.com>
12586         Reviewed by Darin Adler.
12587         
12588         <rdar://problem/5369110> CrashTracer: [USER] reproducible crash opening particular mail messages
12590         * platform/network/mac/ResourceHandleMac.mm:
12591         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Make sure to retain
12592         self for the body of this method. Otherwise, the willSendRequest could trigger events which will
12593         cancel the connection, and we access ivars after this point.
12594         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): retain and release
12595         in the right order.
12597 2007-08-04  Adam Roben  <aroben@apple.com>
12599         Another workaround for <rdar://problem/5386894>
12601         Reviewed by Sam.
12603         This fixed ~150 failing tests.
12605         * platform/network/cf/ResourceResponseCFNet.cpp:
12606         (WebCore::ResourceResponse::doUpdateResourceResponse): Hardcode the
12607         MIME type for .svg files as well.
12609 2007-08-04  Adam Roben  <aroben@apple.com>
12611         Workaround for <rdar://problem/5386894> CFURLResponseGetMIMEType returns "text/html" for local .xhtml and .xml files
12613         Reviewed by Sam.
12615         This fixes ~350 failing tests.
12617         * platform/network/cf/ResourceResponseCFNet.cpp:
12618         (WebCore::ResourceResponse::doUpdateResourceResponse): Use a workaround
12619         identical to the one in ResourceResponseMac.mm, but include .xml files
12620         as well.
12622 2007-08-04  David Kilzer  <ddkilzer@webkit.org>
12624         Reviewed by Oliver.
12626         - fix for http://bugs.webkit.org/show_bug.cgi?id=14882
12627           <rdar://problem/5386550> REGRESSION (r24866): text/plain documents are always downloaded
12629         The supportedNonImageMimeTypes list is used to determine which MIME types may be viewed
12630         within the web browser (e.g., plug-ins add their own MIME types to the list during
12631         initialization), so we must add "text/plain" and "text/" back to the list.  Since
12632         this change would then break DOMImplementation::isTextMIMEType(), that method was reverted
12633         to its original form and MIMETypeRegistry::shouldTreatAsText() was removed.
12635         * dom/DOMImplementation.cpp:
12636         (WebCore::DOMImplementation::isTextMIMEType): Revert to previous version.
12637         * platform/MIMETypeRegistry.cpp:
12638         (WebCore::initialiseSupportedNonImageMimeTypes): Added back "text/plain" and "text/" to the list.
12639         (WebCore::MIMETypeRegistry::shouldTreatAsText): Removed.
12640         * platform/MIMETypeRegistry.h:
12642 2007-08-03  Brady Eidson  <beidson@apple.com>
12644         Reviewed by Oliver
12646         Fix for http://bugs.webkit.org/show_bug.cgi?id=14824 and <rdar://problem/5372989>
12648         Two issues - 
12649         1 - The WebCore MIMEType registry was designed assuming the list of types would never change
12650             That is false, as WebKit has API and SPI calls which directly mutate the MIMETypeRegistry
12651         2 - DOMImplementation didn't consult the registry for any MIMEType that started with "text/", 
12652             instead maintaining it's own hard coded rules
12654         * dom/DOMImplementation.cpp:
12655         (WebCore::DOMImplementation::isTextMIMEType): For now, call through to the MIMETypeRegistry
12656           until we decided a different fate for this function
12658         * platform/MIMETypeRegistry.cpp:
12659         (WebCore::initialiseSupportedNonImageMimeTypes):  "SupportedNonImageMIMETypes" is really a misnomer for 
12660           "MIMETypes we should show as HTML" but that line has slowly been blurred since Tiger.  In an attempt
12661           to start to unblur it, remove "text/" and "text/plain"
12662         (WebCore::MIMETypeRegistry::shouldTreatAsText):  The decision is very close to the old DOMImplementation 
12663           method, except we don't automatically hand off "text/" types as true if they are in the set of supported
12664           MIMETypes
12665         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes): Non-const (can be changed!)
12666         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes): Non-const (can be changed!)
12667         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes): Non-const (can be changed!)
12668         * platform/MIMETypeRegistry.h:
12670 2007-08-03  Adele Peterson  <adele@apple.com>
12672         Reviewed by Adam.
12674         Fix for <rdar://problem/5345862> CrashTracer: [USER] 4 crashes in Safari at com.apple.WebCore: WebCore::Frame::isContentEditable const + 10
12676         Couldn't reproduce the problem, but a nil check for the frame should fix this.
12678         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle):
12680 2007-08-03  Anders Carlsson  <andersca@apple.com>
12682         Reviewed by Oliver.
12684         <rdar://problem/5383286>
12685         XMLHTTPRequest does not return 401 when user cancels authentication dialog (affects .Mac)
12686         
12687         * loader/ResourceLoader.h:
12688         Make receivedCancellation virtual.
12689         
12690         * loader/SubresourceLoader.cpp:
12691         (WebCore::SubresourceLoader::receivedCancellation):
12692         Call SubresourceLoaderClient::receivedCancellation.
12693         
12694         * xml/XMLHttpRequest.cpp:
12695         (WebCore::XMLHttpRequest::receivedCancellation):
12696         Save the failure response.
12698 2007-08-03  Anders Carlsson  <andersca@apple.com>
12700         Reviewed by Geoff.
12702         <rdar://problem/5374393> 
12703         Image change on disk not noticed by WebView; -[WebCache setDisabled:] used to cause a reload every time
12704         
12705         This is essentially a better fix for the crash in <rdar://problem/5362783>.
12706         
12707         * loader/DocLoader.cpp:
12708         (WebCore::DocLoader::requestResource):
12709         If the resource already exists in the m_docResources map, remove it and disassociate it from the doc loader.
12711 2007-08-03  Oliver Hunt  <oliver@apple.com>
12713         Reviewed by Geoff.
12715         <rdar://problem/5375190> Mail crashed in WebCore::CachedImage::imageSize() const when viewing a particular message
12717         Fix the uncached load path to confirm that the type of resource being 
12718         returned actually matches the type that was requested.
12720         Also make sure we never create a resource in the Cache for invalid urls.
12722         * loader/Cache.cpp:
12723         (WebCore::Cache::requestResource):
12724         * loader/DocLoader.cpp:
12725         (WebCore::DocLoader::requestResource):
12727 2007-08-03  Mitz Pettel  <mitz@webkit.org>
12729         Reviewed by Adele.
12731         - fix http://bugs.webkit.org/show_bug.cgi?id=14879
12732           REGRESSION: First item in select (pop-up menu) is displayed even if another item was selected via JavaScript
12734         Test: fast/forms/menulist-deselect-update.html
12736         * html/HTMLOptionElement.cpp:
12737         (WebCore::HTMLOptionElement::setSelected): Reordered to allow setSelectedIndex() to call setChanged().
12739 2007-08-03  Anders Carlsson  <andersca@apple.com>
12741         Reviewed by Darin.
12743         <rdar://problem/5286444>
12744         http://bugs.webkit.org/show_bug.cgi?id=14269
12745         REGRESSION: Gmail links stop working after computer sleep
12746         
12747         Add a PowerNotifier object that takes care of resetting and firing the shared timer when coming
12748         back from sleep.
12749         
12750         * platform/mac/SharedTimerMac.cpp:
12751         (-[PowerNotifier init]):
12752         (-[PowerNotifier didWake:]):
12753         (WebCore::setSharedTimerFireTime):
12755 2007-08-04  Mark Rowe  <mrowe@apple.com>
12757         Windows build fix.
12759         * rendering/RenderTextControl.cpp: Don't use the same name for two arguments.
12761 2007-08-03  Mitz Pettel  <mitz@webkit.org>
12763         Reviewed by Darin.
12765         - fix http://bugs.webkit.org/show_bug.cgi?id=14653
12766           REGRESSION (r23994): No caret is drawn after clicking a search field's placeholder text
12767           <rdar://problem/5383841>
12769         Test: fast/forms/search-click-in-placeholder.html
12771         Defined a subclass of RenderBlock that never hit-tests children for use in
12772         text controls. This avoids returning placeholder text as the hit node.
12773         Since text controls cannot contain inline elements, there is no harm in
12774         doing that unconditionally, and not just in the case that the field is
12775         showing placeholder text.
12777         * rendering/RenderTextControl.cpp:
12778         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
12779         (WebCore::RenderTextControlInnerBlock::~RenderTextControlInnerBlock):
12780         (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
12781         (WebCore::RenderTextControl::createSubtreeIfNeeded):
12783 2007-08-02  Oliver Hunt  <oliver@apple.com>
12785         Reviewed by Geoff
12787         Fix for <rdar://problem/5369332> Xcode crashes while selecting a hyperlink within a AppleScript dictionary (WebCore::Font::drawGlyphBuffer)
12789         There were many places where we were not correctly retaining/releasing the
12790         NSFont object stored in the C++ PlatformFontData object, this resulted in
12791         the GC incorrectly collecting the NSFont.
12793         This patch fixes the problem by prevent direct modification of the PlatformFontData
12794         font pointer, allowing us to enforce correct CFRetain/Release behaviour.
12796         * platform/FontData.h:
12797         (WebCore::FontData::getNSFont):
12798         * platform/mac/FontCacheMac.mm:
12799         (WebCore::FontCache::getFontDataForCharacters):
12800         (WebCore::FontCache::createFontPlatformData):
12801         * platform/mac/FontDataMac.mm:
12802         (WebCore::initFontData):
12803         (WebCore::FontData::platformInit):
12804         (WebCore::FontData::platformDestroy):
12805         (WebCore::FontData::smallCapsFontData):
12806         (WebCore::FontData::containsCharacters):
12807         (WebCore::FontData::determinePitch):
12808         (WebCore::FontData::platformWidthForGlyph):
12809         (WebCore::FontData::checkShapesArabic):
12810         * platform/mac/FontMac.mm:
12811         (WebCore::initializeATSUStyle):
12812         (WebCore::overrideLayoutOperation):
12813         (WebCore::Font::drawGlyphs):
12814         * platform/mac/FontPlatformData.h:
12815         (WebCore::FontPlatformData::FontPlatformData):
12816         (WebCore::FontPlatformData::~FontPlatformData):
12817         (WebCore::FontPlatformData::hash):
12818         (WebCore::FontPlatformData::operator==):
12819         (WebCore::FontPlatformData::font):
12820         (WebCore::FontPlatformData::setFont):
12822 2007-08-03  Antti Koivisto  <antti@apple.com>
12824         Oops, this change wasn't supposed to be commited.
12826         * page/mac/WebCoreFrameBridge.mm:
12827         (-[WebCoreFrameBridge setBaseBackgroundColor:]):
12829 2007-08-02  Antti Koivisto  <antti@apple.com>
12831         Reviewed by Darin.
12833         <rdar://problem/5355951>
12834         plainText() fragments TCMalloc heap badly on large pages
12835         
12836         also likely fixes some cases of
12837         <rdar://problem/5335382>
12838         CrashTracer: [REGRESSION] 73 crashes in Safari at com.apple.WebCore: WebCore::DeprecatedStringData::increaseUnicodeSize + 52
12839         
12840         If you load http://dscoder.com/test.txt with WebKit build with TCMalloc and system malloc you see that
12841         Safari RPRVT with TCMalloc is 118.8MB
12842         Safari RPRVT with system malloc is 69.7MB
12843         
12844         Difference is almost entirely caused by heap fragmentation from a full document plainText() call (for indexing purposes).
12845         
12846         The patch helps in two ways:
12847         - construct plainText string in pieces to avoid O(n^2) reallocs
12848         - allocate buffers using system malloc so they can be returned back to OS and don't fragment and grow TCMalloc heap
12849     
12850         This shrinks http://dscoder.com/test.txt RPRVT to 79.0MB and makes full document plainText() take 50ms instead of 500ms.
12851         The benefits are not limited to extreme cases, web pages above ~200kB can show substantial improvement in RPRVT.
12853         * editing/TextIterator.cpp:
12854         (WebCore::plainTextToMallocAllocatedBuffer):
12855         (WebCore::plainText):
12856         * editing/TextIterator.h:
12857         * page/mac/WebCoreFrameBridge.mm:
12858         (-[WebCoreFrameBridge selectedString]):
12859         (-[WebCoreFrameBridge stringForRange:]):
12861 2007-08-02  David Hyatt  <hyatt@apple.com>
12863         Fix for 5374437, allow comment nodes to be the child of a document.
12864         Refine the check to always make a root element to check documentElement()
12865         rather than firstChild(), since a comment node could be present as the
12866         firstChild() now.
12868         Reviewed by Tim Hatcher
12870         * html/HTMLDocument.cpp:
12871         (WebCore::HTMLDocument::childAllowed):
12872         * html/HTMLParser.cpp:
12873         (WebCore::HTMLParser::finished):
12875 2007-08-02  Antti Koivisto  <antti@apple.com>
12877         Reviewed by Darin.
12878         
12879         <rdar://problem/5228138>
12880         REGRESSION(Leopard): test failures: tests that test Georgian numbering
12882         Fix to Georgian number tables to get CSS2.1 test results right. Font has relevant characters now 
12883         which revealed that results were actually wrong. 
12885         * rendering/RenderListMarker.cpp:
12886         (WebCore::toGeorgian):
12888 2007-08-02  Ada Chan  <adachan@apple.com>
12890         Reviewed by Steve.
12892         <rdar://problem/5079175> Added parameters headerHeight and footerHeight to 
12893         computePageRectsForFrame() so we can account for the header and footer when
12894         calculating page heights for this frame.
12896         * bridge/win/FrameWin.cpp:
12897         (WebCore::computePageRectsForFrame):
12898         * bridge/win/FrameWin.h:
12900 2007-08-02  Alice Liu  <alice.liu@apple.com>
12902         Reviewed by Kevin McCullough.
12904         fixed <rdar://problem/5310312> REGRESSION: javascript is mis-escaped at http://labs.zarate.org/passwd causing bookmarklet to break
12905         
12906         * WebCore.exp:
12907         expose some calls for WebKit to call. 
12908         * manual-tests/JavaScript-bookmarklets.html: Added.
12910 2007-08-01  Adam Treat  <treat@kde.org>
12912         Reviewed by George Staikos.
12914         Add an interface to manage global history for clients
12916         * WebCore.pro:
12917         * platform/qt/TemporaryLinkStubs.cpp:
12919 2007-08-01  Adam Treat  <treat@kde.org>
12921         Reviewed by George Staikos.
12923         Do not call update or paint from inside a paint event.
12925         * platform/qt/ScrollViewQt.cpp:
12926         (WebCore::ScrollView::updateContents):
12927         * platform/qt/WidgetQt.cpp:
12928         (WebCore::Widget::invalidateRect):
12930 2007-08-01  Timothy Hatcher  <timothy@apple.com>
12932         Reviewed by Justin.
12934         <rdar://problem/5376156> Mail crash in DeleteButtonController::hide() when dropping selected image on DIV's border
12936         Add the container element back so the selection can not touch the deletion UI nodes. The container
12937         has style to prevent user selection, user drag and user modification.
12939         * editing/DeleteButtonController.cpp:
12940         (WebCore::DeleteButtonController::show): Make the container node, and append the button and outline elements.
12941         (WebCore::DeleteButtonController::hide): Remove the container elements and null out the other nodes.
12942         * editing/DeleteButtonController.h:
12944 2007-08-01  Steve Falkenburg  <sfalken@apple.com>
12946         Build mod: Fix sln to match configs in vcproj.
12947         
12948         Reviewed by Adam.
12950         * WebCore.vcproj/WebCore.make:
12952 2007-07-31  David Harrison  <harrison@apple.com>
12954         Reviewed by Justin.
12956         <rdar://problem/5362659> CrashTracer: [USER] 11 crashes in Mail at WebCore::InsertLineBreakCommand::doApply()
12958         The problem was that deleting with the X control leaves the selection inside the fragment that was deleted.
12960         * editing/DeleteButtonController.cpp:
12961         (WebCore::DeleteButtonController::deleteTarget):
12962         Because the deletion UI only appears when the selection is entirely
12963         within the target, we unconditionally update the selection to be
12964         a caret where the target had been.
12966 2007-07-31  Adele Peterson  <adele@apple.com>
12968         Reviewed by Hyatt.
12970          Fix for <rdar://problem/5339395> REGRESSION:http://sudokucraving.com does not render grid correctly
12972         * rendering/RenderTextControl.h: (WebCore::RenderTextControl::hasControlClip): Clip for search fields.
12973         * rendering/RenderTextControl.cpp:
12974         (WebCore::RenderTextControl::controlClipRect): Added a control clip so the search field's cancel button and magnifier glass
12975          never draw outside the control's bounds.
12976         (WebCore::RenderTextControl::calcPrefWidths): Only include the inner box's padding when calculating the min/max width without using calcContentBoxWidth.
12977          Our old behavior was causing that inner padding to get counted twice.  Also, no need to add in the border
12978          for an inner box that can't be controlled from outside this class.
12979         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::calcPrefWidths): ditto.
12981 2007-07-31  Anders Carlsson  <andersca@apple.com>
12983         Reviewed by Geoff.
12985         Speculative fix for <rdar://problem/5359695> 
12986         REGRESSION (Tiger Beta): Multiple crashes in WebCore::Widget::getView() const + 6
12987                 
12988         * page/EventHandler.cpp:
12989         (WebCore::EventHandler::updateDragAndDrop):
12990         Null check the frame view.
12992 2007-07-31  Timothy Hatcher  <timothy@apple.com>
12994         Reviewed by Oliver and Beth.
12996         <rdar://problem/5211271> ADOBE Leopard 9A410: At the first Launching InDesign after deactivate, EULA page gets blanked.
12998         Rename needsAcrobatFrameReloadingQuirk to needsAdobeFrameReloadingQuirk, since this now applies to more Adobe applications.
13000         * WebCore.exp:
13001         * page/Settings.cpp:
13002         (WebCore::Settings::Settings):
13003         (WebCore::Settings::setNeedsAdobeFrameReloadingQuirk):
13004         * page/Settings.h:
13005         (WebCore::Settings::needsAcrobatFrameReloadingQuirk):
13007 2007-07-31  Matt Perry  <mpComplete@gmail.com>
13009         Reviewed by Brady and Darin, tweaked by Brady, landed by Brady
13011         Fix for http://bugs.webkit.org/show_bug.cgi?id=14757 and <rdar://problem/5364692>
13012         HTMLTokenizer::processingData implementation is incorrect
13014         * html/HTMLTokenizer.cpp:
13015         (WebCore::HTMLTokenizer::processingData): Made it also return true if the HTMLTokenizer was inside the write() call.
13016         * loader/FrameLoader.cpp:
13017         (WebCore::FrameLoader::FrameLoader):
13018         (WebCore::FrameLoader::checkLoadCompleteTimerFired):
13019         (WebCore::FrameLoader::scheduleCheckLoadComplete):
13020         (WebCore::FrameLoader::stopForUserCancel): Changed a call to checkLoadComplete to be asynchronous, since
13021         stopForUserCancel can be called while parsing.
13022         * loader/FrameLoader.h:
13024 2007-07-31  Anders Carlsson  <andersca@apple.com>
13026         Reviewed by Geoff.
13028         <rdar://problem/5371582>
13029         REGRESSION: PLT .5% slower due to r24451 (copying HTMLCollection objects)
13030         
13031         Make the hash maps store CollectionInfo pointers to reduce amount of copying when
13032         inserting/rehashing etc.
13033         
13034         * dom/Document.cpp:
13035         (WebCore::Document::~Document):
13036         (WebCore::Document::nameCollectionInfo):
13037         * dom/Document.h:
13039 2007-07-31  Sam Weinig  <sam@webkit.org>
13041         Reviewed by Mitz.
13043         Fix for http://bugs.webkit.org/show_bug.cgi?id=14825
13044         Non-integer hsl() colours are ignored
13046         * css/CSSParser.cpp:
13047         (WebCore::CSSParser::parseHSLParameters): Parse hue as a Number,
13048         not an Integer. 
13050 2007-07-30  Justin Garcia  <justin.garcia@apple.com>
13052         Reviewed by Darin.
13054         <rdar://problem/5369009> Crash due to infinite recursion in moveParagraphs on delete
13055         
13056         After the delete, we moved content into the previous block, and a style
13057         rule turned a style span in the moved content into a block, throwing
13058         moveParagraphs into infinite recursion, as it continually tried and failed
13059         to get the style span into the same paragraph as the content just before it.
13060         
13061         Added a method to ReplaceSelectionCommand to keep inserted style spans 
13062         from turning into blocks because of style rules.  Will add code to prevent
13063         other kinds of content from changing appearance because of style rules,
13064         post-Leopard (5371536). Also added a bool to ReplaceSelectionCommand's 
13065         constructor to guard against infinite recursion.
13067         * editing/CompositeEditCommand.cpp:
13068         (WebCore::CompositeEditCommand::moveParagraphs):
13069         * editing/JSEditor.cpp:
13070         * editing/ReplaceSelectionCommand.cpp:
13071         (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
13072         (WebCore::ReplaceSelectionCommand::negateStyleRulesThatEffectAppearance):
13073         (WebCore::ReplaceSelectionCommand::doApply):
13074         * editing/ReplaceSelectionCommand.h:
13076 2007-07-30  Anders Carlsson  <andersca@apple.com>
13078         Reviewed by Brady.
13080         <rdar://problem/5371515>
13081         BitmapImage::getTIFFRepresentation() bug results in favicons not working at many sites
13083         Don't bail out if a single frame is invalid.
13084         
13085         * platform/graphics/mac/ImageMac.mm:
13086         (WebCore::BitmapImage::getTIFFRepresentation):
13088 2007-07-30  Adele Peterson  <adele@apple.com>
13090         Reviewed by Darin.
13092         Fix for <rdar://problem/5274937> Safari 3 breaks Missing Sync's WebKit code by crashing
13094         * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy): Nil check for the FrameLoader.
13096 2007-07-30  Anders Carlsson  <andersca@apple.com>
13098         Reviewed by Darin.
13100         <rdar://problem/5370710> 
13101         REGRESSION: After switching from Bookmark view, the Find Banner won't appear while displaying a PDF file
13103         Add a hasHTMLView to FrameLoaderClient. This is only useful for clients who can show different views for different
13104         MIME types and URL schemes.
13105         
13106         * loader/FrameLoader.cpp:
13107         (WebCore::FrameLoader::transitionToCommitted):
13108         Call delegate methods here if the current view is not a HTML view.
13109         
13110         * loader/FrameLoaderClient.h:
13111         (WebCore::FrameLoaderClient::hasHTMLView):
13113 2007-07-30  Sam Weinig  <sam@webkit.org>
13115         Reviewed by Maciej.
13117         Fix for <rdar://problem/5363896>
13118         REGRESSION: Setting document.domain does not override port-based cross-frame security checks -- breaks SAP NetWeaver
13120         Updates the results for:
13121             http/tests/security/cross-frame-access-port-explicit-domain.html
13122             http/tests/security/cross-frame-access-protocol-explicit-domain.html
13124         * bindings/js/kjs_window.cpp:
13125         (KJS::createWindow): Use the new setDomainInternal method.
13126         (KJS::Window::isSafeScript): Don't set check the port or protocol 
13127         if both documents have explicitly set document.domain in the DOM
13128         and the those domains are equal.
13129         * dom/Document.cpp:
13130         (WebCore::Document::Document):
13131         (WebCore::Document::setDomain): Remove force parameter and change 
13132         all calls that relied on it use the new setDomainInternal method
13133         which does the same thing.
13134         (WebCore::Document::setDomainInternal): 
13135         * dom/Document.h: Add new m_domainWasSetInDOM variable and accessor.
13136         (WebCore::Document::domainWasSetInDOM):
13137         * loader/FrameLoader.cpp:
13138         (WebCore::FrameLoader::checkCallImplicitClose): Use the new setDomainInternal method. 
13140 2007-07-30  Justin Garcia  <justin.garcia@apple.com>
13142         Reviewed by Tristan.
13143         
13144         <rdar://problem/5098931> Attachments are lost when they are moved into a ToDo after a delete
13145         
13146         Added an editor client method for asking whether or not it is
13147         OK to merge content after a delete.
13149         * bridge/EditorClient.h:
13150         * editing/DeleteSelectionCommand.cpp:
13151         (WebCore::DeleteSelectionCommand::mergeParagraphs): Ask if the 
13152         merge is allowed.
13153         * platform/gdk/EditorClientGdk.cpp: 
13154         (WebCore::EditorClientGdk::shouldMoveRangeAfterDelete): Added a method stub.
13155         * platform/gdk/EditorClientGdk.h:
13156         * platform/graphics/svg/SVGImageEmptyClients.h: 
13157         (WebCore::SVGEmptyEditorClient::shouldMoveRangeAfterDelete): Ditto.
13159 2007-07-30  Alexey Proskuryakov  <ap@webkit.org>
13161         Reviewed by Anders.
13163         <rdar://problem/5352526>
13164         http://bugs.webkit.org/show_bug.cgi?id=14704
13165         REGRESSION: sync XMLHttpRequest.send() raises an exception for failed authentication
13167         Test: http/tests/xmlhttprequest/failed-auth.html
13169         * platform/network/mac/ResourceHandleMac.mm:
13170         (WebCore::ResourceHandle::loadResourceSynchronously): Make the fake response better match the real one
13171         in case of failed authentication. Unfortunately, NSURLConnection doesn't give us the real response.
13173         * xml/XMLHttpRequest.cpp:
13174         (WebCore::XMLHttpRequest::send): If the response has an HTTP code in it, then the error wasn't
13175         a network one, and an exception shouldn't be raised.
13177 2007-07-30  Anders Carlsson  <andersca@apple.com>
13179         Reviewed by Darin.
13181         <rdar://problem/4942372> REGRESSION: Anchor links in Mail don't work anymore
13182         
13183         Make it possible for KURL to handle addig fragments to non-hierarchical URLs
13184         such as mailto: and cid:.
13185     
13186         * platform/KURL.cpp:
13187         (WebCore::KURL::init):
13188         If the base URL is not hierarchical but the relative URL is a fragment, then 
13189         allow parsing it.
13190         
13191         (WebCore::KURL::parse):
13192         If the URL is not hierarchical, set the fragment start and end positions correctly.
13194 2007-07-30  Simon Hausmann  <hausmann@kde.org>
13196         Reviewed by Lars.
13198         On Windows make sure the dll also ends up in $$OUTPUT_DIR/bin, so that QtLauncher can find it.
13200         * WebCore.pro:
13202 2007-07-30  Simon Hausmann  <hausmann@kde.org>
13204         Reviewed by Lars.
13206         Removed the __BUILDING_QT ifdef in JSStringRef.h and changed UChar for the Qt build to use wchar_t on Windows.
13208         * platform/TextEncoding.cpp:
13209         (WebCore::TextEncoding::encode):
13211 2007-07-30  Simon Hausmann  <hausmann@kde.org>
13213         Reviewed by Lars.
13215         Don't link against libxml/libxslt unless we really need it.
13217         * WebCore.pro:
13219 2007-07-29  Tristan O'Tierney  <tristan@apple.com>
13221         Reviewed by Oliver Hunt.
13223         <rdar://problem/5369282> REGRESSION: DOMHTMLInput throwing exception due to missing _isEdited method
13225         * bindings/objc/DOMHTML.mm:
13226         (-[DOMHTMLInputElement _isEdited]):
13227         (-[DOMHTMLTextAreaElement _isEdited]):
13228         * bindings/objc/DOMPrivate.h:
13229         Renamed _isUserEdited to _isEdited.
13231 2007-07-29  Adam Treat  <treat@kde.org>
13233         Reviewed by George Staikos.
13235         Correctly set the update rect for the scrollbars when they are invalidated.
13236         Do not paint entire page for each scroll delta.  Cache the dirty regions
13237         when webkit calls ScrollView::updateContents as webkit expects the paint
13238         routine to use the dirty regions bounding rect.
13240         These changes greatly reduce the cpu load as we are no longer painting the
13241         entire page for each 1px scroll :P
13243         * platform/qt/ScrollViewQt.cpp:
13244         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
13245         (WebCore::ScrollView::updateContents):
13246         (WebCore::ScrollView::paint):
13247         * platform/qt/WidgetQt.cpp:
13248         (WebCore::Widget::invalidateRect):
13250 2007-07-29  Adele Peterson  <adele@apple.com>
13252         Reviewed by John.
13254         WebCore part of fix for <rdar://problem/5102522> REGRESSION: Can't tab to webview that doesn't have editable content (affects Safari, preview pane in Mail)
13256         * WebCore.exp:
13257         * page/FocusController.cpp:
13258         (WebCore::FocusController::setInitialFocus): Added.
13259         (WebCore::FocusController::advanceFocus): Don't give the focus back to the chrome if this is the initial focus.
13260         * page/FocusController.h:
13262 2007-07-29  Adam Treat  <treat@kde.org>
13264         Reviewed by Alexey Proskuryakov.
13266         WebCore::Widget::setParent should be virtual.
13267         It is reimplemented in ScrollViewQt for instance.
13269         * platform/Widget.h:
13271 2007-07-29  Alp Toker  <alp.toker@collabora.co.uk>
13273         Reviewed by bdash.
13275         http://bugs.webkit.org/show_bug.cgi?id=14711 (revisited)
13276         RenderThemeGdk's buttons are state-agnostic (pressed, hovered)
13278         Generalize shadow state into a function.
13279         use a GtkHBox to work around a theme bug (thanks to Nigel Tao).
13281         * platform/gdk/RenderThemeGdk.cpp:
13282         (WebCore::RenderThemeGdk::determineShadow):
13283         (WebCore::RenderThemeGdk::paintCheckbox):
13284         (WebCore::RenderThemeGdk::paintRadio):
13285         (WebCore::RenderThemeGdk::paintButton):
13286         (WebCore::RenderThemeGdk::gtkWindowContainer):
13287         * platform/gdk/RenderThemeGdk.h:
13289 2007-07-27  Adele Peterson  <adele@apple.com>
13291         Reviewed by Darin. 
13293         Temporary fix for Windows to prevent crashing on all frame pages.  Darin
13294         is working on a more permanent fix.
13296         * loader/FrameLoader.cpp:
13298 2007-07-27  Adam Treat  <treat@kde.org>
13300         Reviewed by David Hyatt.
13302         Fix crash when using QtWebKit canvas support.
13304         * ChangeLog:
13305         * html/HTMLCanvasElement.cpp:
13306         (WebCore::HTMLCanvasElement::reset):
13308 2007-07-27  Darin Adler  <darin@apple.com>
13310         * rendering/RenderLayer.cpp: Rolled out accidentally-checked-in code.
13312 2007-07-27  Darin Adler  <darin@apple.com>
13314         Reviewed by John Sullivan.
13316         - fix <rdar://problem/5261393> In Mail the plain text alternatives to messages with attachments show weird little OBJ thingies
13318         The "weird little thingies" are U+FFFC characters. It's good to render them as zero-width, the way we do
13319         with control characters -- helps Mail and doesn't hurt web browsing.
13321         Test: fast/text/zero-width-characters.html
13323         * platform/CharacterNames.h: Add names for leftToRightMark, rightToLeftMark, and objectReplacementCharacter.
13324         * platform/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): Give objectReplacementCharacter
13325         zero width in the same way we do it for the various other characters.
13327 2007-07-27  Lars Knoll <lars@trolltech.com>
13329         Reviewed by Zack
13331         Enable XSLT support for the gtk port.
13333         * WebCore.pro:
13335 2007-07-27  Zack Rusin  <zack@kde.org>
13337         Reviewed by Zack and Lars.
13339         Premature end after finishing parsing is a fatal error.
13341         * dom/XMLTokenizer.cpp:
13342         (WebCore::XMLTokenizer::end):
13344 2007-07-27  Lars Knoll  <lars@trolltech.com>
13346         Reviewed by Zack and Lars.
13348         Simplify conversions that go from a QStringRef to a WebCore::String to not use a temporary QString.
13350         * dom/XMLTokenizer.cpp:
13351         (WebCore::):
13353 2007-07-27  Zack Rusin  <zack@kde.org>
13355         Reviewed by Zack and Lars.
13357         Fix entity handling in the main document content (attributes still broken)
13359         * dom/XMLTokenizer.cpp:
13360         (WebCore::):
13362 2007-07-27  Lars Knoll  <lars@trolltech.com>
13364         Reviewed by Zack and Lars.
13366         Correctly convert a null QString into a null WebCore::String. Add a String(const QStringRef&) constructor so that we can avoid converting QStringRef via QString to WebCore::String.
13368         * dom/XMLTokenizer.cpp:
13369         (WebCore::):
13370         * platform/PlatformString.h:
13371         * platform/qt/StringQt.cpp:
13372         (WebCore::String::String):
13374 2007-07-27  Zack Rusin  <zack@kde.org>
13376         Reviewed by Zack and Lars.
13378         Parse version and encoding of the xml document.
13380         * dom/XMLTokenizer.cpp:
13381         (WebCore::XMLTokenizer::write):
13383 2007-07-27  Zack Rusin  <zack@kde.org>
13385         Reviewed by Zack and Lars.
13387         Correctly or semi-correctly parse the public and system id.
13389         Patch from Lars.
13391         * dom/XMLTokenizer.cpp:
13392         (WebCore::):
13394 2007-07-27  Zack Rusin  <zack@kde.org>
13396         Reviewed by Zack and Lars.
13398         Fix uri parsing for attributes.
13400         * dom/XMLTokenizer.cpp:
13401         (WebCore::):
13403 2007-07-27  Zack Rusin  <zack@kde.org>
13405         Reviewed by Zack and Lars.
13407         Fixing qualified name parsing - from Lars.
13409         * dom/XMLTokenizer.cpp:
13410         (WebCore::XMLTokenizer::insertErrorMessageBlock):
13411         (WebCore::):
13413 2007-07-27  Zack Rusin  <zack@kde.org>
13415         Reviewed by Zack and Lars.
13417         Parse dtd's
13419         * dom/XMLTokenizer.cpp:
13420         (WebCore::XMLTokenizer::resumeParsing):
13421         (WebCore::):
13422         * dom/XMLTokenizer.h:
13424 2007-07-27  Zack Rusin  <zack@kde.org>
13426         Reviewed by Zack and Lars.
13428         Implement error handling.
13430         Add our copyrights
13432         * dom/XMLTokenizer.cpp:
13433         (WebCore::XMLTokenizer::handleError):
13434         (WebCore::XMLTokenizer::end):
13435         (WebCore::):
13436         * dom/XMLTokenizer.h:
13438 2007-07-27  Zack Rusin  <zack@kde.org>
13440         Reviewed by Zack and Lars.
13442         Making the stylesheets work (plus everything else basically)
13444         * dom/XMLTokenizer.cpp:
13445         (WebCore::XMLTokenizer::write):
13446         (WebCore::XMLTokenizer::insertErrorMessageBlock):
13447         (WebCore::):
13448         * dom/XMLTokenizer.h:
13450 2007-07-27  Zack Rusin  <zack@kde.org>
13452         Reviewed by Zack and Lars.
13454         Remove the libxml dependency when not compiling with XSLT.
13456         Just ifdefing, displaying xml doesn't work.
13458         * WebCore.pro:
13459         * dom/XMLTokenizer.cpp:
13460         (WebCore::XMLTokenizer::XMLTokenizer):
13461         (WebCore::XMLTokenizer::write):
13462         (WebCore::XMLTokenizer::startElementNs):
13463         (WebCore::XMLTokenizer::enterText):
13464         (WebCore::XMLTokenizer::exitText):
13465         (WebCore::XMLTokenizer::initializeParserContext):
13466         (WebCore::XMLTokenizer::end):
13467         (WebCore::XMLTokenizer::lineNumber):
13468         (WebCore::XMLTokenizer::columnNumber):
13469         (WebCore::XMLTokenizer::stopParsing):
13470         (WebCore::XMLTokenizer::resumeParsing):
13471         (WebCore::):
13472         * dom/XMLTokenizer.h:
13474 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13476         Reviewed by Zack.
13478         Work around bug in the moc when used as preprocessor for generating the bindings. -DFOO=1 is needed instead of -DFOO
13479         to make the <hash>if FOO conditional match.
13481         * WebCore.pro:
13483 2007-07-27  Patrick Hanna  <phanna@email.unc.edu>
13485         Reviewed by Darin Adler.
13487         Change PluginBase::refresh to be static and update PluginsFunc::callAsFunction accordingly. Now we no longer
13488         allocate an instance of a JSObject subclass on the stack which could lead to a crash during garbage collection.
13490         * bindings/js/kjs_navigator.cpp:
13491         (KJS::PluginsFunc::callAsFunction):
13493 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13495         Done with and reviewed by Lars and Zack.
13497         Fix snprintf hack for the Qt/Windows build with mingw-gcc. MingW has snprintf, so we don't need this helper function.
13499         * page/FrameTree.cpp:
13500         * platform/DeprecatedString.cpp:
13501         (WebCore::DeprecatedString::format):
13502         * platform/String.cpp:
13503         (WebCore::String::format):
13505 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13507         Done with and reviewed by Lars and Zack.
13509         Make the DocTypeStrings.cpp generation work with MingW. Cleaned it up to be a regular extra compiler at the same time.
13511         * WebCore.pro:
13513 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13515         Done with and reviewed by Lars and Zack.
13517         MingW build fixes: Do the "OBJECTS_TRAILING_SLASH" trick not only for win32-msvc but for all win32 mkspecs. Added LIB/INCLUDE hack from Qt to make us pick up 3rdparty libraries such as libxml from these environment variables.
13519         * WebCore.pro:
13521 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13523         Done with and reviewed by Lars and Zack.
13525         Use $(MOVE) instead of mv to eliminated the shell dependency and replaced the long shell line to call bison and modify the css grammar file with a few lines of portable perl code.
13527         * WebCore.pro:
13528         * css/makegrammar.pl: Added.
13530 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13532         Done with and reviewed by Lars and Zack.
13534         On make install on Windows copy the dll into the bin dir.
13536         * WebCore.pro:
13538 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13540         Done with and reviewed by Lars and Zack.
13542         Link in libxml and libxslt on Windows.
13544         * WebCore.pro:
13546 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13548         Done with and reviewed by Lars and Zack.
13550         Temporarily disable the ICO support for the Qt build on Windows.
13552         * WebCore.pro:
13553         * platform/graphics/qt/ImageDecoderQt.cpp:
13555 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13557         Done with and reviewed by Lars and Zack.
13559         Fix evaluation with ActiveState Perl 5.6. Somehow it tried to treat nameEntries as array.
13561         * bindings/scripts/CodeGeneratorJS.pm:
13563 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13565         Done with and reviewed by Lars and Zack.
13567         Fix compilation with MSVC in the Qt build (missing header files).
13569         * loader/icon/IconDatabaseNone.cpp:
13570         * platform/graphics/svg/SVGImage.cpp:
13572 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13574         Done with and reviewed by Lars and Zack.
13576         Disable the favicon database on Windows for now, to eliminate the sqlite dependency.
13578         * WebCore.pro:
13580 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13582         Done with and reviewed by Lars and Zack.
13584         Added custom preprocessor support to make_names.pl and use the moc for it in the Qt build.
13586         * WebCore.pro:
13587         * ksvg2/scripts/make_names.pl:
13589 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13591         Done with and reviewed by Lars and Zack.
13593         Disable the batch mode for nmake to work around the clash of Node.c and Node.cpp both mapping to Node.obj
13595         * WebCore.pro:
13597 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13599         Done with and reviewed by Lars and Zack.
13601         Fix compilation under Windows (removed sys/time.h dependency, use Qt instead).
13603         * platform/qt/SystemTimeQt.cpp:
13605 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13607         Done with and reviewed by Lars and Zack.
13609         Fix compilation on Windows.
13611         * platform/graphics/qt/PathQt.cpp:
13613 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13615         Done with and reviewed by Lars and Zack.
13617         Fix generation of ColorData.c on Windows.
13619         * WebCore.pro:
13621 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13623         Done with and reviewed by Lars and Zack.
13625         Fix compilation under Qt/Windows.
13627         * loader/icon/IconDatabase.cpp:
13628         (WebCore::IconDatabase::open):
13630 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13632         Done with and reviewed by Lars and Zack.
13634         Changed extendedAttributes to be a variable instead of a hash directly. Required to work with ActiveState perl.
13636         * bindings/scripts/IDLStructure.pm:
13638 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13640         Done with and reviewed by Lars and Zack.
13642         Fix header guard generation for CSSGrammar.h under Windows
13644         * WebCore.pro:
13646 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13648         Done with and reviewed by Lars and Zack.
13650         Fix build with moc as preprocessor. Don't rely the preprocessor preserving whitespace at the beginning of lines.
13652         * bindings/scripts/IDLParser.pm:
13654 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13656         Done with and reviewed by Lars and Zack.
13658         Make make-css-file-arrays.pl work on Windows by not calling /usr/bin/gcc as preprocessor for the Qt build.
13660         * WebCore.pro:
13661         * css/make-css-file-arrays.pl:
13663 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13665         Done with and reviewed by Lars and Zack.
13667         More gperf commandline fixes for Windows.
13669         * WebCore.pro:
13671 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13673         Done with and reviewed by Lars and Zack.
13675         More quoting fixes for perl under Windows.
13677         * WebCore.pro:
13679 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13681         Done with and reviewed by Lars and Zack.
13683         Fix command quoting under Windows
13685         * WebCore.pro:
13687 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13689         Done with and reviewed by Lars and Zack.
13691         Fix cssmakeprops and cssmakevalue scripts to work on Windows without cygwin perl. Avoid inplace substitutions and direct invocation of /bin/sh. Also call gperf with arguments that GnuWin32's gperf understands.
13693         * ksvg2/scripts/cssmakeprops:
13694         * ksvg2/scripts/cssmakevalues:
13696 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13698         Done with and reviewed by Lars and Zack.
13700         Beautiful hacks to make more of the extra compiler magic work under Windows outside of cygwin.
13702         * WebCore.pro:
13704 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13706         Done with and reviewed by Lars and Zack.
13708         Correctly propagate the custom preprocessor option through the idl parser and the codegenerator.
13710         * bindings/scripts/CodeGenerator.pm:
13711         * bindings/scripts/generate-bindings.pl:
13713 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13715         Done with and reviewed by Lars and Zack.
13717         When constructing the absolute path when searching for IDL files in the list of search paths don't prepend a slash if $SOURCEROOT as environment variable is not set. In the Qt build we pass absolute search paths already and we don't set SOURCEROOT. Under Unix that gives a double slash for the directory which works fine, under Windows we get /c:\webkit\foo which of course does not work.
13719         * bindings/scripts/CodeGenerator.pm:
13721 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13723         Done with and reviewed by Lars and Zack.
13725         Relax the regular expression that tries to find constant declarations in the IDL source to not require leading whitespace. This makes it work with preprocessors that happen to eliminate leading whitespace.
13727         * bindings/scripts/IDLParser.pm:
13729 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13731         Done with and reviewed by Lars and Zack.
13733         Try to use the moc as preprocessor for the IDL bindings generator
13735         * WebCore.pro:
13737 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13739         Done with and reviewed by Lars and Zack.
13741         Make it possible to specify the preprocessor the bindings generator uses instead of hardcoding /usr/bin/gcc (which is of course no option on Windows). Also try to use a more portable and Windows friendly way of opening the reading pipe to the preprocessor.
13743         * bindings/scripts/IDLParser.pm:
13744         * bindings/scripts/generate-bindings.pl:
13746 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13748         Done with and reviewed by Lars and Zack.
13750         Don't use stdout redirection for make_names.pl as it doesn't work under Windows perl (outside cygwin).
13752         * ksvg2/scripts/make_names.pl:
13754 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13756         Done with and reviewed by Lars and Zack.
13758         Fix DocTypeStrings.cpp generation to work on Windows with cmd.exe
13760         * WebCore.pro:
13762 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13764         Reviewed by Lars.
13766         Work around aliasing bugs in WebCore by compiling with -fno-strict-aliasing for gcc builds for now.
13768         * WebCore.pro:
13770 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13772         Reviewed by Lars.
13774         Use -Wreturn-type only when compiling with g++
13776         * WebCore.pro:
13778 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13780         Reviewed by Zack.
13782         Don't use pkg-config on Windows for the Qt build
13784         * WebCore.pro:
13786 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13788         Reviewed by Zack.
13790         Fix compilation with MSVC.
13792         * platform/graphics/qt/ImageDecoderQt.cpp:
13794 2007-07-26  Tristan O'Tierney  <tristan@apple.com>
13796         Reviewed by Anders Carlsson.
13798         <rdar://problem/5350019> REGRESSION: Pages on milliyet.com are added to Back list when visited, causing Back button to just reload
13800         * loader/FrameLoader.cpp:
13801         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
13802         If the policy action is FrameLoadTypeRedirectLockHistory, don't add the frame load url to the history.
13804 2007-07-26  Anders Carlsson  <andersca@apple.com>
13806         Reviewed by Geoff.
13808         Add a FIXME about caching pages with plug-ins that have outstanding NPObjects.
13809         
13810         * loader/FrameLoader.cpp:
13811         (WebCore::FrameLoader::canCachePage):
13813 2007-07-26  David Hyatt  <hyatt@apple.com>
13815         FIx for <rdar://problem/5289721> CrashTracer: [REGRESSION] 2658 crashes in Safari at com.apple.WebCore: WebCore::RenderInline::height const + 16
13817         Adding a null check for now and an assert.  We don't know how/why this
13818         bug happens, but hopefully the assert will help people to reproduce.
13820         Reviewed by kevin
13822         * rendering/RenderInline.cpp:
13823         (WebCore::RenderInline::height):
13825 2007-07-26  Anders Carlsson  <andersca@apple.com>
13827         Reviewed by Oliver.
13829         <rdar://problem/5362783>
13830         In Mail, a crash occurs at WTF::fastMalloc() when attempting to create a new HTML message from http://nytimes.com/
13831         
13832         If the cache is disabled and there is already a resource with the given URL, return it instead of creating a new one.
13833         
13834         * loader/DocLoader.cpp:
13835         (WebCore::DocLoader::requestResource):
13837 2007-07-26  Adele Peterson  <adele@apple.com>
13839         Reviewed by Geoff. 
13841         Build fix.
13843         * platform/network/cf/ResourceRequest.h:
13845 2007-07-26  Anders Carlsson  <andersca@apple.com>
13847         Reviewed by John Sullivan.
13849         <rdar://problem/5349389> 
13850         Some frame load delegate methods not called when loading a page from the BF cache
13851         
13852         These calls were moved to FrameLoader::begin, which is never called for pages loaded
13853         from the BF cache. This happened in revision 24490.
13854          
13855         * loader/FrameLoader.cpp:
13856         (WebCore::FrameLoader::transitionToCommitted):
13857         Call delegate methods if the load is from the BF cache.
13859 2007-07-26  Kevin McCullough  <kmccullough@apple.com>
13861         Reviewed by Darin, Geoff and Sam.
13863         - <rdar://problem/5150461> Resizing the window larger than the screen causes no resize.
13864         - We now better match the behavior of other browsers.
13866         * bindings/js/kjs_window.cpp:
13867         (KJS::constrainToVisible):
13868         (KJS::WindowFunc::callAsFunction):
13870 2007-07-26  Tristan O'Tierney  <tristan@apple.com>
13872         Reviewed by Adele Peterson.
13873         
13874         <rdar://problem/5359921> WebCore should maintain a dirty flag for confirmation on unsaved changes
13876         * bindings/objc/DOMHTML.mm:
13877         (-[DOMHTMLInputElement _isUserEdited]):
13878         (-[DOMHTMLTextAreaElement _isUserEdited]):
13879         Renamed _isEdited to _isUserEdited since the functionality is now different
13880         
13881         * bindings/objc/DOMPrivate.h:
13882         Renamed _isEdited to _isUserEdited.
13883         
13884         * rendering/RenderTextControl.cpp:
13885         (WebCore::RenderTextControl::RenderTextControl):
13886         Defaulted m_userEdited to false
13887         
13888         (WebCore::RenderTextControl::updateFromElement):
13889         Set m_userEdited to false, since the change wasn't triggered first by an edit
13890         
13891         (WebCore::RenderTextControl::subtreeHasChanged):
13892         Set m_userEdited to true, since it has been touched by the user
13893         
13894         * rendering/RenderTextControl.h:
13895         (WebCore::RenderTextControl::isUserEdited):
13896         (WebCore::RenderTextControl::setUserEdited):
13897         Added two new methods to set/return the userEdited boolean value.
13898         
13899 2007-07-26  Geoffrey Garen  <ggaren@apple.com>
13901         Reviewed by Beth Dakin.
13903         Fixed NULL-dereference crash seen on buildbot.
13904         
13905         No bug filed because this is a part of <rdar://problem/5241167>.
13907         * history/PageCache.h:
13908         (WebCore::PageCache::get): NULL-check HistoryItems passed to get()
13909         and remove(), to match the old semantics of HashMap. For clarity,
13910         ASSERT that add() is not called with NULL arguments.
13912 2007-07-26  Anders Carlsson  <andersca@apple.com>
13914         Reviewed by Oliver Hunt.
13916         <rdar://problem/5361106> Crash in user style sheet when loading webpage
13918         Null check m_frame.
13919         
13920         * dom/Document.cpp:
13921         (WebCore::Document::stylesheetLoaded):
13923 2007-07-26  Geoffrey Garen  <ggaren@apple.com>
13925         Used `svn merge -r24646:24645' to revert project changes I accidentally
13926         checked in.
13928         * WebCore.xcodeproj/project.pbxproj:
13930 2007-07-26  Geoffrey Garen  <ggaren@apple.com>
13932         Reviewed by Darin Adler.
13934         Fixed <rdar://problem/5241167> REGRESSION: PLT 1% slower due to r21793 
13935         (global page cache cap)
13936         
13937         I just measured a .1%-.2% regression in PLT average, but a .4% win in 
13938         PLT fastest run, so I think this regression is licked.
13940         Surprisingly, the combination of wtf data structures I originally used 
13941         for PageCache turned out to be too slow, so I reworked PageCache to use
13942         a hand-crafted linked list for LRU tracking (instead of ListHashSet), 
13943         to store its CachedPages in the HistoryItems to which they corresponded 
13944         (instead of using a HashMap), and to ref/deref HistoryItems manually
13945         (instead of using RefPtr, which would ref once for every reference in 
13946         the linked list).
13948         * history/HistoryItem.h: Added data members for PageCache data. Made
13949         PageCache a friend so it could access them. Ideally (from an 
13950         encapsulation perspective), we would store this data an independent 
13951         structure, but that's just too slow.
13953         * history/PageCache.cpp: Added a hand-crafted linked list for LRU 
13954         tracking.
13955         (WebCore::PageCache::PageCache):
13956         (WebCore::PageCache::add): Adopt the HistoryItem's ref when it's added.
13957         (WebCore::PageCache::remove): deref() the Historyitem when it's 
13958         removed.
13959         (WebCore::PageCache::prune):
13960         (WebCore::PageCache::addToLRUList):
13961         (WebCore::PageCache::removeFromLRUList):
13963         * history/PageCache.h:
13964         (WebCore::PageCache::get): Inlined just in case.
13966 2007-07-26  Adam Treat  <treat@kde.org>
13968         Reviewed by George Staikos.
13970         Launch the context menu in the right place.
13972         * platform/qt/ContextMenuQt.cpp:
13973         (WebCore::ContextMenu::setPlatformDescription):
13975 2007-07-25  Maciej Stachowiak  <mjs@apple.com>
13977         Reviewed by Mark.
13979         - follow-up to previous change to avoid assertion failures in debug
13980         
13981         * xml/XMLHttpRequest.cpp:
13982         (WebCore::XMLHttpRequest::getResponseText): hold JSLock when needed
13983         (WebCore::XMLHttpRequest::open): ditto
13984         (WebCore::XMLHttpRequest::didFinishLoading): ditto
13985         (WebCore::XMLHttpRequest::didReceiveData): ditto
13986         * xml/XMLHttpRequest.h:
13988 2007-07-25  Anders Carlsson  <andersca@apple.com>
13990         Reviewed by Darin.
13992         <rdar://problem/5327912> 
13993         iDisk: Web iDisk & main iDisk appear blank
13994         
13995         Prepend any remaining text that scripts might have written.
13996         
13997         * html/HTMLTokenizer.cpp:
13998         (WebCore::HTMLTokenizer::scriptExecution):
14000 2007-07-25  Kevin McCullough  <kmccullough@apple.com>
14002         Reviewed by Tim, Darin, Oliver.
14004         - <rdar://problem/5329440> REGRESSION: Clicking links with the feed:// protocol in Safari 3 does nothing
14005         - Check for file:// urls when clicking links, not block all schemes that are treated as local.
14007         * loader/FrameLoader.cpp:
14008         (WebCore::FrameLoader::load):
14010 2007-07-25  Maciej Stachowiak  <mjs@apple.com>
14012         Reviewed by Darin.
14014         - fixed <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly
14015         
14016         With this plus related JavaScriptCore changes, a number of XMLHttpRequest situations that
14017         result in huge data sets are addressed, including a single huge responseXML on an XMR done
14018         repeatedly, or accessing responseText repeatedly during loading of a single large XHR.
14019         
14020         In addition to the GC changes in JavaScriptCore, I changed responseText to be stored as a
14021         KJS::UString instead of a WebCore::String so that the JavaScript responseText value can
14022         share the buffer (indeed multiple intermediate responseTexts can share its buffer).
14024         
14025         First of all, here's some manual test cases that will each blow out the process VM without this fix,
14026         but will settle into decent steady state with.
14027         
14028         * manual-tests/memory: Added.
14029         * manual-tests/memory/MessageUidsAlreadyDownloaded2: Added.
14030         * manual-tests/memory/string-growth.html: Added.
14031         * manual-tests/memory/xhr-multiple-requests-responseText.html: Added.
14032         * manual-tests/memory/xhr-multiple-requests-responseXML.html: Added.
14033         * manual-tests/memory/xhr-multiple-requests.html: Added.
14034         * manual-tests/memory/xhr-repeated-string-access.xml: Added.
14036         And here's the actual code changes:
14037         
14038         * WebCore.xcodeproj/project.pbxproj:
14039         * bindings/js/JSDocumentCustom.cpp:
14040         (WebCore::toJS): Record extra cost if the document is frameless (counting the nodes
14041         doesn't make a measurable performance difference here in any case I could find)
14042         * bindings/js/JSXMLHttpRequest.cpp:
14043         (KJS::JSXMLHttpRequest::getValueProperty): Adjust for the fact that ressponseText
14044         is now stored as a UString.
14045         * bindings/js/kjs_binding.cpp:
14046         (KJS::jsOwnedStringOrNull): New helper.
14047         * bindings/js/kjs_binding.h:
14048         * xml/XMLHttpRequest.cpp:
14049         (WebCore::XMLHttpRequest::getResponseText): It's a UString!
14050         (WebCore::XMLHttpRequest::getResponseXML): handle the fact that m_responseText
14051         is a UString.
14052         (WebCore::XMLHttpRequest::XMLHttpRequest): ditto.
14053         (WebCore::XMLHttpRequest::abort): call dropProtection
14054         (WebCore::XMLHttpRequest::didFinishLoading): call dropProtection
14055         (WebCore::XMLHttpRequest::dropProtection): after removing our GC protection,
14056         report extra cost of this XHR's responseText buffer.
14057         * xml/XMLHttpRequest.h:
14059 2007-07-25  Timothy Hatcher  <timothy@apple.com>
14061         Reviewed by Brady.
14063         <rdar://problem/4796657> table deletion outline does not always follow the table size as editing occurs inside
14065         Change the outline element to position itself automaticlly using the top, left, bottom and right CSS properties.
14066         This made the container element redundant, so it has been removed. Now the outline element and the delete button
14067         both get appended to the target element and positioned based on that container element. This removes the need
14068         to update the width and height when the target contents changed.
14070         * editing/DeleteButtonController.cpp:
14071         (WebCore::DeleteButtonController::show): Change the style properties and remove the container element.
14072         (WebCore::DeleteButtonController::hide): Remove the button and outline from the target element.
14073         * editing/DeleteButtonController.h: Removed updateOutlineStyle, respondToChangedContents and m_containerElement.
14074         * editing/Editor.cpp:
14075         (WebCore::Editor::respondToChangedContents): Remove the call to DeleteButtonController respondToChangedContents.
14077 2007-07-25  Anders Carlsson  <andersca@apple.com>
14079         Reviewed by Darin.
14081         <rdar://problem/5344471>
14082         CrashTracer: [USER] 1 crash in Mail at WebCore::PluginTokenizer::writeRawData(char const*, int)
14083         
14084         Make sure to layout so we'll have a renderer. Also null-check the renderer for extra safety.
14085         
14086         * loader/PluginDocument.cpp:
14087         (WebCore::PluginTokenizer::writeRawData):
14089 2007-07-25  Brett Wilson  <brettw@chromium.org>
14091         Reviewed by Maciej, Darin.
14093         - http://bugs.webkit.org/show_bug.cgi?id=14030
14095         Add ResourceHandle::setClient to resolve some messiness with handle
14096         releasing. Clear the client when ResourceLoader is going to release
14097         the handle to prevent crashes in the case where somebody still holds a
14098         reference (this doesn't seem to currently happen in practice). Add
14099         NULL-checking for ResourceHandle implementations using the client.
14101         * loader/ResourceLoader.cpp:
14102         (WebCore::ResourceLoader::releaseResources):
14103         * platform/network/ResourceHandle.cpp:
14104         (WebCore::ResourceHandle::fireBlockedFailure):
14105         (WebCore::ResourceHandle::setClient):
14106         * platform/network/ResourceHandle.h:
14107         * platform/network/cf/ResourceHandleCFNet.cpp:
14108         (WebCore::willSendRequest):
14109         (WebCore::didReceiveResponse):
14110         (WebCore::didReceiveData):
14111         (WebCore::didFinishLoading):
14112         (WebCore::didFail):
14113         (WebCore::willCacheResponse):
14114         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
14115         (WebCore::ResourceHandle::receivedCancellation):
14116         * platform/network/mac/ResourceHandleMac.mm:
14117         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
14118         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
14119         (WebCore::ResourceHandle::receivedCancellation):
14120         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
14121         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
14122         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
14123         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
14124         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
14125         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
14126         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
14128 2007-07-25  Maxime Britto  <mbritto@pleyo.com>
14130         Reviewed by Darin.
14132         - fix http://bugs.webkit.org/show_bug.cgi?id=11756
14133           REGRESSION: link targeting a frame in another window does not work
14134           <rdar://problem/5286420>
14136         Test: http/tests/navigation/target-frame-from-window.html
14138         Fix a typo error to really compare the present domain to the domain of the parent of the targeted frame.
14140         * loader/FrameLoader.cpp: (WebCore::FrameLoader::canTarget):
14142 2007-07-25  Mitz Pettel  <mitz@webkit.org>
14144         Reviewed by Darin.
14146         - fix http://bugs.webkit.org/show_bug.cgi?id=14758
14147           REGRESSION: Repeated text after line break on facebook.com
14149         Test: fast/text/reset-emptyRun.html
14151         * platform/BidiResolver.h:
14152         (WebCore::::deleteRuns): Re-add a line that was removed for no reason at all
14153         during refactoring in r24485.
14154         * rendering/bidi.cpp:
14155         (WebCore::BidiState::deleteRuns): Ditto.
14157 2007-07-24  Oliver Hunt  <oliver@apple.com>
14159         Reviewed by Adam and Justin.
14161         <rdar://problem/5141779> WebView editableDOMRangeForPoint: & moveDragCaretToPoint: returns last position in DOMText range
14163         Remove bridge implementation for editableDOMRangeForPoint: and moveDragCaretToPoint:. 
14164         Now use cross-platform code Editor::rangeForPoint and DragController::placeDragCaret instead.
14165         This required lifting local code from DragController.cpp into the shared methods
14166         Frame::visiblePositionForPoint and Frame::documentAtPoint.
14168         * WebCore.exp:
14169         * editing/Editor.cpp:
14170         (WebCore::Editor::rangeForPoint):
14171         * editing/Editor.h:
14172         * page/DragController.cpp:
14173         (WebCore::DragController::dragEnded):
14174         (WebCore::DragController::performDrag):
14175         (WebCore::DragController::dragEnteredOrUpdated):
14176         (WebCore::DragController::tryDocumentDrag):
14177         (WebCore::DragController::operationForLoad):
14178         (WebCore::setSelectionToDragCaret):
14179         (WebCore::DragController::concludeDrag):
14180         (WebCore::DragController::placeDragCaret):
14181         * page/DragController.h:
14182         * page/Frame.cpp:
14183         (WebCore::Frame::visiblePositionForPoint):
14184         (WebCore::Frame::documentAtPoint):
14185         * page/Frame.h:
14186         * page/mac/WebCoreFrameBridge.h:
14187         * page/mac/WebCoreFrameBridge.mm:
14189 2007-07-24  Sam Weinig  <sam@webkit.org>
14191         Rubber-stamped by Adam Roben.
14193         Remove unused .strip files.
14195         * WebCore.xcodeproj/project.pbxproj:
14197 2007-07-24  Adele Peterson  <adele@apple.com>
14199         Reviewed by Hyatt.
14201         Fix for <rdar://problem/5308492> Computed width for elements with box-sizing: border-box is not equal to the width set in the CSS
14203         Test: fast/css/getComputedStyle-border-box.html
14205         * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14206           For the width and height properties, when you get the value from the renderer, use the renderer's box sizing value to determine the size.
14208 2007-07-24  Anders Carlsson  <andersca@apple.com>
14210         Reviewed by Kevin Decker.
14212         <rdar://problem/5355781>
14213         REGRESSION: reproducible crash in CoreFoundation!CFRunLoopFinished on Flash pages
14214         
14215         Null check the loader.
14216         
14217         * plugins/win/PluginStreamWin.cpp:
14218         (WebCore::PluginStreamWin::start):
14220 2007-07-24  Adele Peterson  <adele@apple.com>
14222         Reviewed by Hyatt and Adam.
14224         Fix for <rdar://problem/5130590> REGRESSION: style="width:1px" on <select> element no longer hides the element
14226         Removed hack that forced large padding on popup buttons.  Now we put that padding in the inner block, so that
14227         the specified width will be honored.
14229         * rendering/RenderMenuList.cpp:
14230         (WebCore::RenderMenuList::adjustInnerStyle): Set the padding on the inner block based on the metrics provided by the theme.
14231         (WebCore::RenderMenuList::controlClipRect): Clip to the intersection of the inner content box and the outer content box.
14232          This will leave room for the arrows which sit in the inner box padding, and if the inner box ever spills out of the outer box, 
14233          that will get clipped too.
14234         (WebCore::RenderMenuList::calcPrefWidths):  Add in the inner box's padding and border to the pref widths.
14236         * rendering/RenderThemeMac.mm:
14237         (WebCore::RenderThemeMac::paintMenuList): Only inflate the rect for the shadow if the rect is big enough to fit the whole control.
14238          Also, on Leopard, the NSCell will draw outside of a small rect, so add a clip for that case.
14239         (WebCore::RenderThemeMac::paintMenuListButton): Restrict font scale to make sure the arrows will actually fit in the bounds vertically.
14240          Don't draw the arrows if they won't fit horizontally.  Reset padding.  Since WinIE doesn't honor padding for popups, its not critical to
14241          support padding at this time.
14242         (WebCore::RenderThemeMac::adjustMenuListStyle): Don't set the padding here.  Instead, we're going to set the padding on the inner block of the select.
14243         (WebCore::RenderThemeMac::adjustMenuListButtonStyle): ditto.
14244         (WebCore::RenderThemeMac::popupInternalPaddingLeft): Added.  Provides internal padding values for RenderMenuList.
14245         (WebCore::RenderThemeMac::popupInternalPaddingRight): ditto.
14246         (WebCore::RenderThemeMac::popupInternalPaddingTop): ditto.
14247         (WebCore::RenderThemeMac::popupInternalPaddingBottom): ditto.
14248         * rendering/RenderThemeMac.h:
14250         * rendering/RenderThemeSafari.cpp:  The same changes that were made to RenderThemeMac were made here, with variations for the arrow differences.
14251           This code should be refactored and shared, but now did not seem like the right time to do that refactoring.
14252         (WebCore::RenderThemeSafari::paintMenuList):
14253         (WebCore::RenderThemeSafari::paintMenuListButton):
14254         (WebCore::RenderThemeSafari::adjustMenuListStyle):
14255         (WebCore::RenderThemeSafari::popupInternalPaddingLeft):
14256         (WebCore::RenderThemeSafari::popupInternalPaddingRight):
14257         (WebCore::RenderThemeSafari::popupInternalPaddingTop):
14258         (WebCore::RenderThemeSafari::popupInternalPaddingBottom):
14259         (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
14260         * rendering/RenderThemeSafari.h:
14262         * rendering/RenderTheme.h: Added to provide internal padding values for RenderMenuList.
14263         (WebCore::RenderTheme::popupInternalPaddingLeft):
14264         (WebCore::RenderTheme::popupInternalPaddingRight):
14265         (WebCore::RenderTheme::popupInternalPaddingTop):
14266         (WebCore::RenderTheme::popupInternalPaddingBottom):
14268 2007-07-24  Lars Knoll  <lars@trolltech.com>
14270         Reviewed by Adam Roben & David Kilzer.
14272         replace the makeprop and makevalues shell scripts by equivalent perl versions. This is required to remove the last shell dependency when building QtWebKit on Windows.
14274         * DerivedSources.make:
14275         * WebCore.pro:
14276         * WebCore.xcodeproj/project.pbxproj:
14277         * css/makeprop: Added.
14278         * css/makeprop.pl: Removed.
14279         * css/makevalues: Added.
14280         * css/makevalues.pl: Removed.
14282 2007-07-24  Beth Dakin  <bdakin@apple.com>
14284         Reviewed by Darin.
14286         Fix for http://bugs.webkit.org/show_bug.cgi?id=14714 REGRESSION: 
14287         ASSERTION FAILED: i < size() in Vector.h:401 on negative -webkit-
14288         column-width
14289         - and -
14290         http://bugs.webkit.org/show_bug.cgi?id=14718 REGRESSION: ASSERTION 
14291         FAILED: i < size() in Vector.h:401 on zero -webkit-column-count
14293         * rendering/RenderBlock.cpp:
14294         (WebCore::RenderBlock::calcColumnWidth): Make 1 the minimum value 
14295         for column-width and column-count. Since the spec does not address 
14296         what to do with negative values for these properties, we are 
14297         patching the rendering code instead of the parser.
14299 2007-07-24  Anders Carlsson  <andersca@apple.com>
14301         Reviewed by Steve.
14302         
14303         <rdar://problem/5355403>
14304         REGRESSION: 303A2 does not display pdf files with AdobeReader 8.1
14305         
14306         Close the file before handing off the file name to the plug-in.
14307         
14308         * plugins/win/PluginStreamWin.cpp:
14309         (WebCore::PluginStreamWin::destroyStream):
14311 2007-07-24  Alp Toker  <alp.toker@collabora.co.uk>
14313         Reviewed by Adam.
14315         http://bugs.webkit.org/show_bug.cgi?id=14711
14316         RenderThemeGdk's buttons are state-agnostic (pressed, hovered)
14318         Remove unnecessary label from widget instances.
14319         Render check and radio widgets correctly.
14320         Determine the widget state and render it appropriately.
14322         * platform/gdk/RenderThemeGdk.cpp:
14323         (WebCore::RenderThemeGdk::determineState):
14324         (WebCore::RenderThemeGdk::paintCheckbox):
14325         (WebCore::RenderThemeGdk::paintRadio):
14326         (WebCore::RenderThemeGdk::paintButton):
14327         (WebCore::RenderThemeGdk::gtkButton):
14328         (WebCore::RenderThemeGdk::gtkCheckbox):
14329         (WebCore::RenderThemeGdk::gtkRadioButton):
14330         * platform/gdk/RenderThemeGdk.h:
14332 2007-07-24  Mark Rowe  <mrowe@apple.com>
14334         Reviewed by Antti.
14336         <rdar://problem/5356666> NSMenuItem's seen leaking on buildbot
14338         * platform/mac/ContextMenuItemMac.mm:
14339         (WebCore::ContextMenuItem::releasePlatformDescription): Transfer ownership from the RetainPtr's CF-based retain
14340         count to the Foundation retain count so that callers of releasePlatformDescription can use -[NSObject release]
14341         to dispose of it in a manner that won't leak under Obj-C GC.
14342         * platform/mac/ContextMenuMac.mm:
14343         (WebCore::ContextMenu::appendItem): Release platformItem as we were transferred its ownership by releasePlatformDescription.
14344         (WebCore::ContextMenu::insertItem): ditto.
14346 2007-07-24  Mitz Pettel  <mitz@webkit.org>
14348         Reviewed by Darin.
14350         - fix http://bugs.webkit.org/show_bug.cgi?id=14684
14351           Hebrew text in Safari chrome is reversed (LTR instead of RTL)
14353         Test: fast/text/drawBidiText.html
14355         * WebCore.pro:
14356         * WebCore.vcproj/WebCore.vcproj:
14357         * WebCore.xcodeproj/project.pbxproj:
14358         * WebCoreSources.bkl:
14359         * manual-tests/chrome-bidi-text.html: Added.
14360         * manual-tests/resources/chrome-bidi-text-window.html: Added.
14361         * platform/BidiReorderCharacters.cpp: Removed.
14362         * platform/BidiReorderCharacters.h: Removed.
14363         * platform/BidiResolver.h:
14364         (WebCore::BidiCharacterRun::start): Added accessor method.
14365         (WebCore::BidiCharacterRun::stop): Ditto.
14366         (WebCore::BidiCharacterRun::level): Ditto.
14367         (WebCore::BidiCharacterRun::next): Ditto.
14368         (WebCore::::appendRun): Added default implementation.
14369         * platform/TextStyle.h:
14370         (WebCore::TextStyle::setDirectionalOverride): Added accessor method.
14371         * platform/graphics/GraphicsContext.cpp:
14372         (WebCore::TextRunIterator::TextRunIterator): Added. A BidiResolver-
14373         compliant iterator over the characters in a TextRun.
14374         (WebCore::TextRunIterator::offset):
14375         (WebCore::TextRunIterator::increment):
14376         (WebCore::TextRunIterator::atEnd):
14377         (WebCore::TextRunIterator::current):
14378         (WebCore::TextRunIterator::direction):
14379         (WebCore::TextRunIterator::operator==):
14380         (WebCore::TextRunIterator::operator!=):
14381         (WebCore::GraphicsContext::drawBidiText): Added. Applies the Unicode
14382         Bidi Algorithm to the text and draws the resulting unidirectional runs
14383         in the right order and with the right directionality.
14384         * platform/graphics/GraphicsContext.h:
14385         * platform/win/PopupMenuWin.cpp:
14386         (WebCore::PopupMenu::paint): Replaced the use of a character buffer
14387         and BidiReorderCharacters with calling to drawBidiText(). Removed special
14388         handling of '-webkit-rtl-ordering:visual' because that CSS property is an
14389         implementation detail of WebCore's visual Hebrew support, and the UA stylesheet
14390         sets it to 'logical' for this form control. Authors can specify the ordering
14391         using the 'direction' and 'unicode-bidi' properties.
14392         * platform/win/WebCoreTextRenderer.cpp:
14393         (WebCore::isOneLeftToRightRun): Added. Checks if the text consists of
14394         a single left-to-right run, in which case it requires no bidi processing.
14395         (WebCore::doDrawTextAtPoint): Changed to call drawBidiText if the text
14396         is not entirely left-to-right.
14397         * rendering/RenderFileUploadControl.cpp:
14398         (WebCore::RenderFileUploadControl::paintObject): Replaced the use of a
14399         character buffer in BidiReorderCharacters with calling to drawBidiText().
14400         Removed special handling of '-webkit-rtl-ordering:visual' for the same reason
14401         stated above.
14402         * rendering/RenderListBox.cpp:
14403         (WebCore::RenderListBox::paintItemForeground): Ditto. Also changed the
14404         run-rounding modes used when drawing to match those used when measuring.
14406 2007-07-23  Oliver Hunt  <oliver@apple.com>
14408         Reviewed by Steve.
14410         Windows build fix, remove superfluous !
14412         * page/EventHandler.cpp:
14413         (WebCore::EventHandler::keyEvent):
14415 2007-07-23  Adam Roben  <aroben@apple.com>
14417         Add an assignment operator for BString that takes a BSTR
14419         Reviewed by Geoff and Oliver.
14421         * platform/win/BString.cpp:
14422         (WebCore::BString::operator=):
14423         * platform/win/BString.h:
14425 2007-07-23  Justin Garcia  <justin.garcia@apple.com>
14427         Reviewed by Geoff.
14428         
14429         <rdar://problem/5354455> Word selection when right-clicking can be confusing (14728)
14431         * page/EventHandler.cpp:
14432         (WebCore::EventHandler::sendContextMenuEvent): In non-editable content,
14433         only do word selection over text.  In editable content, we will continue
14434         to select images, line breaks and other elements on right-clicks, to match 
14435         TextEdit.  For now, in editable content, we'll live with the cases where 
14436         positionForPoint creates selections that aren't underneath the mouse.  These
14437         aren't regressions because we've always done word selection on right clicks
14438         in editable content.
14440 2007-07-23  Anders Carlsson  <andersca@apple.com>
14442         Reviewed by Oliver.
14444         <rdar://problem/5335354>
14445         REGRESSION(r21359-r21368): Can't edit inside RTEF editable region
14446         
14447         If Document::open is called and there's a pending load that has not yet started,
14448         that load should be cancelled.
14449         
14450         * dom/Document.cpp:
14451         (WebCore::Document::open):
14453 2007-07-23  Timothy Hatcher  <timothy@apple.com>
14455         Reviewed by Hyatt.
14457         <rdar://problem/5242145> REGRESSION: Clicking on symbol in documentation often doesn't scroll to symbol
14459         A renderer for the anchor wasn't always available at the time parsing finished. So we need
14460         to bail out of gotoAnchor if stylesheets are pending and remember to call gotoAnchor later
14461         once all of the pending stylesheets load.
14463         * dom/Document.cpp:
14464         (WebCore::Document::Document): Initialize m_gotoAnchorNeededAfterStylesheetsLoad to false.
14465         (WebCore::Document::stylesheetLoaded): If we have no more pending stylesheets, call gotoAnchor if needed.
14466         * dom/Document.h:
14467         (WebCore::Document::gotoAnchorNeededAfterStylesheetsLoad): New method.
14468         (WebCore::Document::setGotoAnchorNeededAfterStylesheetsLoad): Ditto.
14469         * loader/FrameLoader.cpp:
14470         (WebCore::FrameLoader::gotoAnchor): Bail early if the document still has pending stylesheets.
14471         * loader/FrameLoader.h: Make gotoAnchor() public.
14473 2007-07-23  John Sullivan  <sullivan@apple.com>
14475         Reviewed by Darin
14476         
14477         - fixed <rdar://problem/5327887> Printing Mail note (or Safari page) with misspelled word prints red underline
14479         * rendering/InlineTextBox.cpp:
14480         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
14481         When printing, bail out without doing any work. Also moved a couple of lines down below another early
14482         bailout since they were pointless above it.
14484 2007-07-23  Oliver Hunt  <oliver@apple.com>
14486         Reviewed by Darin.
14487         
14488         <rdar://problem/5353577> WebKit key event behaviour needs to better match other browsers keyevent behaviour
14489         <rdar://problem/5352152> REGRESSION (24399-24479): Pressing Enter in a search field at apple.com no longer starts a search with Korean IM
14490         <rdar://problem/5352649> WebKit should send keyDown event on autorepeat keyDowns
14491         http://bugs.webkit.org/show_bug.cgi?id=14690
14493         Perform Input Method call first so that our behaviour is determined by whether or not 
14494         the input method has actually handle the event, rather than by making guesses based 
14495         on the existences of marked text.  This fixes issues with IMs that have side effects
14496         even on events they do not handle.
14498         Refactored the code in order to improve clarity given the hoisting required by performing
14499         the IM call earlier.
14501         * page/EventHandler.cpp:
14502         (WebCore::EventHandler::keyEvent):
14504 2007-07-23  Anders Carlsson  <andersca@apple.com>
14506         Reviewed by Darin.
14508         <rdar://problem/5045711> 
14509         http://bugs.webkit.org/show_bug.cgi?id=12938
14510         Google calendar settings page crashes
14511         
14512         Move handling of checked radio buttons to a new class, HTMLFormElement::CheckedRadioButtons. 
14513         Each <form> element has an instance of this class. For radio buttons without a containing 
14514         form, the document has an instance of HTMLFormElement::CheckedRadioButtons where the
14515         state of those radio buttons will be stored.
14516         be stored.
14517         
14518         This also fixes another bug where removing a checked radio button that does not have a
14519         containing form would not remove the radio button from the checked radio buttons map,
14520         which could lead to a crash due to a dangling pointer.
14521         
14522         * dom/Document.cpp:
14523         (WebCore::Document::~Document):
14524         * dom/Document.h:
14525         (WebCore::Document::checkedRadioButtons):
14526         * html/HTMLFormElement.cpp:
14527         (WebCore::HTMLFormElement::registerFormElement):
14528         (WebCore::HTMLFormElement::removeFormElement):
14529         (WebCore::HTMLFormElement::CheckedRadioButtons::didCheckButton):
14530         (WebCore::HTMLFormElement::CheckedRadioButtons::checkedButtonForGroup):
14531         (WebCore::HTMLFormElement::CheckedRadioButtons::removeButtonIfChecked):
14532         * html/HTMLFormElement.h:
14533         (WebCore::HTMLFormElement::checkedRadioButtons):
14534         * html/HTMLGenericFormElement.cpp:
14535         (WebCore::HTMLGenericFormElement::insertedIntoTree):
14536         * html/HTMLInputElement.cpp:
14537         (WebCore::HTMLInputElement::~HTMLInputElement):
14538         (WebCore::checkedRadioButtons):
14539         (WebCore::HTMLInputElement::isKeyboardFocusable):
14540         (WebCore::HTMLInputElement::setInputType):
14541         (WebCore::HTMLInputElement::parseMappedAttribute):
14542         (WebCore::HTMLInputElement::setChecked):
14543         (WebCore::HTMLInputElement::preDispatchEventHandler):
14544         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
14545         * manual-tests/remove-form-node-with-radio-buttons-crash.html: Added.
14547 2007-07-23  David Hyatt  <hyatt@apple.com>
14549         Fix for 5350587, hang in iExploder text 8101.  The code that painted outlines for continuations was buggy
14550         in that it assumed the chain was always inline-block-inline, but this is only true for the innermost chained
14551         continuation.  To make this more robust, we always just use the inline's containing block's containing block,
14552         which should be guaranteed to enclose all renderers in the continuation chain.  In addition, there is now a
14553         null check (to guarantee no more hangs) and an assert (to check if we hit this situation again where the block
14554         used to paint does not properly enclose the continuation chain).
14556         Reviewed by beth
14558         fast/inline/outline-continuation.html
14560         * rendering/RenderBlock.cpp:
14561         (WebCore::RenderBlock::paintContinuationOutlines):
14562         * rendering/InlineFlowBox.cpp:
14563         (WebCore::RenderInline::paint):
14565 2007-07-22  Holger Hans Peter Freyther  <zecke@selfish.org>
14567         Reviewed by Adam.
14569         WARNING: NO TEST CASES ADDED OR CHANGED
14571         Add the WebKit/Gtk API to the buildsystem, ask qmake to create a
14572         pkg-config file and install headers and libraries.
14574         Start to emit signals from FrameLoaderClientGdk, hide the kit Frame
14575         inside the the FrameLoaderClientGdk.
14577         Move ChromeClientGdk to WebKit/gtk/WebCoreSupport
14579         * WebCore.pro:
14580         * loader/gdk/FrameLoaderClientGdk.cpp:
14581         * loader/gdk/FrameLoaderClientGdk.h:
14582         * platform/gdk/ChromeClientGdk.h: Removed.
14583         * platform/gdk/FrameGdk.cpp: Remove code not belonging here
14584         * platform/gdk/FrameGdk.h:
14585         * platform/gdk/ScrollViewGdk.cpp: The gdkDrawable won't exist at that time and it is fine
14586         * platform/gdk/TemporaryLinkStubs.cpp: Removed ChromeClientGdk stubs
14588 2007-07-22  Maciej Stachowiak  <mjs@apple.com>
14590         Reviewed by Adam.
14592         <rdar://problem/5353174> REGRESSION: 1% JavaScript performance regression fro Window refactoring (14717)
14593         http://bugs.webkit.org/show_bug.cgi?id=14717
14594         
14595         * bindings/js/kjs_window.cpp:
14596         * bindings/js/kjs_window.h:
14597         (KJS::Window::impl): inlined
14598         * page/DOMWindow.cpp:
14599         * page/DOMWindow.h:
14600         (WebCore::DOMWindow::frame): inlined
14602 2007-07-22  Darin Adler  <darin@apple.com>
14604         * platform/ContextMenu.cpp: Added missing include.
14606 2007-07-22  Sam Weinig  <sam@webkit.org>
14608         Reviewed by Darin.
14610         Fix for http://bugs.webkit.org/show_bug.cgi?id=14682
14611         REGRESSION(24285-24399): alerts do not appear at W3C RTL test page
14613         Test: fast/dom/Window/window-function-name-getter-precedence.html
14615         * bindings/js/JSDOMWindowCustom.cpp:
14616         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Make sure to return functions
14617         before the custom name getter.
14619 2007-07-22  Darin Adler  <darin@apple.com>
14621         Reviewed by Adam.
14623         - fix <rdar://problem/5353263> ContextMenuItem and ContextMenu objects leaking (seen on buildbot)
14625         * platform/ContextMenu.cpp:
14626         (WebCore::separatorItem): Return an auto_ptr instead of a raw pointer, since this function
14627         creates an object that's the caller's responsibility to delete.
14628         (WebCore::createAndAppendFontSubMenu): Create the context menu on the stack, not the heap,
14629         since setSubMenu does not take ownership, and hence the objects were leaking.
14630         (WebCore::createAndAppendSpellingAndGrammarSubMenu): Ditto.
14631         (WebCore::createAndAppendSpellingSubMenu): Ditto.
14632         (WebCore::createAndAppendSpeechSubMenu): Ditto.
14633         (WebCore::createAndAppendWritingDirectionSubMenu): Ditto.
14635 2007-07-22  Darin Adler  <darin@apple.com>
14637         Reviewed by Kevin Decker.
14639         - fix <rdar://problem/5126394> REGRESSION: Crash after clicking back button in test application (13250)
14640           http://bugs.webkit.org/show_bug.cgi?id=13250
14642         * bindings/objc/WebScriptObject.mm:
14643         (_didExecute): Removed unnecessary check for isValid() since the _rootObject method already
14644         takes care of that check.
14645         (-[WebScriptObject _imp]): Made this return 0 if there is not a valid rootObject.
14646         (-[WebScriptObject _isSafeScript]): Made this always return false if there is not a valid
14647         rootObject, eliminating the need to check _rootObject for nil if the code is checking _isSafeScript.
14648         (-[WebScriptObject callWebScriptMethod:withArguments:]): Removed check of _rootObject, since it's
14649         immediately followed by a check of _isSafeScript. Removed awkward conversion of name from NSString *
14650         to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14651         arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14652         the _imp pointer. Added a second check of _isSafeScript after calling get to get the function
14653         object, since arbitrary changes could occur in there, including navigation to a new frame.
14654         This also takes care of null checking the second call to _imp.
14655         (-[WebScriptObject evaluateWebScript:]): Removed check of _rootObject, since it's
14656         immediately followed by a check of _isSafeScript. Removed awkward conversion of script from NSString *
14657         to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14658         arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14659         the _imp pointer.
14660         (-[WebScriptObject setValue:forKey:]): Removed check of _rootObject, since it's
14661         immediately followed by a check of _isSafeScript. Removed awkward conversion of key from NSString *
14662         to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14663         arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14664         the _imp pointer.
14665         (-[WebScriptObject valueForKey:]): Ditto.
14666         (-[WebScriptObject removeWebScriptKey:]): Ditto.
14667         (-[WebScriptObject stringRepresentation]): Removed check of _rootObject, since it's
14668         immediately followed by a check of _isSafeScript. Removed unnecessary local variable
14669         and const_cast from the call to the _imp method.
14670         (-[WebScriptObject webScriptValueAtIndex:]): Removed check of _rootObject, since it's
14671         immediately followed by a check of _isSafeScript.
14672         (-[WebScriptObject setWebScriptValueAtIndex:value:]): Ditto.
14673         (-[WebScriptObject JSObject]): Ditto.
14675 2007-07-22  Darin Adler  <darin@apple.com>
14677         Reviewed by Anders Carlsson and John Sullivan.
14679         - speculative fix for <rdar://problem/5337500> CrashTracer: [USER] 4 crashes in Mail
14680           at WebCore::HTMLImageElement::isURLAttribute(WebCore::Attribute*) const
14682         * editing/markup.cpp: Added AttributeChange class.
14683         (WebCore::completeURLs): Changed function so that all the URL completion is done in
14684         a separate pass after finding all the URL attributes. This is safer, since actually
14685         applying an attribute change could have any arbitrary effect on the document; it's
14686         tricky to iterate a document while it's being modified and we don't have the checks
14687         here that would be needed to make that work in pathological cases.
14689 2007-07-18  Darin Adler  <darin@apple.com>
14691         Reviewed by Adam.
14693         - fix <rdar://problem/5350604> REGRESSION: Crash in inspector controller code after
14694           clicking back button in test application (14337)
14696         * page/InspectorController.cpp: (WebCore::InspectorController::addScriptResource):
14697         Replace an assertion that was firing with some code that at least doesn't immediately crash.
14699 2007-07-22  Darin Adler  <darin@apple.com>
14701         Reviewed by Anders.
14703         - improve the fix for <rdar://problem/5298816> Crash redirecting message,
14704           in -[SharedBufferData initWithSharedBuffer:]; fixes a crash seen on the buildbot
14706         * loader/DocLoader.cpp: (WebCore::DocLoader::~DocLoader): Call setDocLoader(0) on all
14707         the resources so they don't try to use a stale DocLoader pointer later.
14709 2007-07-21  Mitz Pettel  <mitz@webkit.org>
14711         Reviewed by Sam Weinig.
14713         - fixed typos and markup in the following manual tests
14715         * manual-tests/accidental-strict-mode.html:
14716         * manual-tests/caretScrolling.html:
14717         * manual-tests/close-on-closedWindow.html:
14719 2007-07-21  Sam Weinig  <sam@webkit.org>
14721         Reviewed by Mitz.
14723         Patch for <rdar://problem/5352013>
14724         The computed style for background-position is wrong for the initial value
14726         - Set the initial value for background-position-x and background-position-y (and
14727           therefore background-position) to 0% instead of 0px.
14729         * rendering/RenderStyle.cpp:
14730         (WebCore::BackgroundLayer::BackgroundLayer):
14731         * rendering/RenderStyle.h:
14732         (WebCore::RenderStyle::initialBackgroundXPosition):
14733         (WebCore::RenderStyle::initialBackgroundYPosition):
14735 2007-07-20  Brady Eidson  <beidson@apple.com>
14737         Reviewed by Adele and Andersca
14739         <rdar://problem/5336105> - WebBackForwardList created from scratch is unusable (always leads to crash)
14741         * WebCore.exp: Export the BackForwardList c'tor so WebKit can create one explicitly
14743 2007-07-20  Sam Weinig  <sam@webkit.org>
14745         Reviewed by Beth Dakin.
14747         Fix for <rdar://problem/5351901>
14748         Computed value of border-position should return a CSSValueList, not a CSSPrimitiveValue
14750         - Return a space separated CSSValueList for background-position
14751           instead of a CSSPrimitiveValue (string type).
14752         - Remove the "else if (renderer)" case as it never returns a different
14753           value than just calling length.value().
14754         - Make background-position-x and background-position-y behave like
14755           background-position.  Fix case of initial value return 'auto' instead
14756           of 0.
14758         Test: fast/css/getComputedStyle-background-position.html
14760         * css/CSSComputedStyleDeclaration.cpp:
14761         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14763 2007-07-20  Geoffrey Garen  <ggaren@apple.com>
14765         Build fix for non-Mac platforms.
14766         
14767         * bindings/js/GCController.cpp:
14769 2007-07-20  Anders Carlsson  <andersca@apple.com>
14771         Reviewed by Darin.
14773         If the style sheet requested is a user style sheet, don't store it in the DocLoader's resource map;
14774         user style sheets can outlive their doc loaders.
14776         * loader/DocLoader.cpp:
14777         (WebCore::DocLoader::requestCSSStyleSheet):
14779 2007-07-20  Justin Garcia  <justin.garcia@apple.com>
14781         Reviewed by Darin.
14783         <rdar://problem/5109817> Ctrl-click on word in non-editable text doesn't select it
14784         
14785         * bridge/EditorClient.h: Removed a client method for enabling/disabling
14786         word selection on right clicks.
14787         * editing/Editor.cpp: Ditto.
14788         * editing/Editor.h:
14789         * page/EventHandler.cpp:
14790         (WebCore::EventHandler::sendContextMenuEvent): Select the
14791         word underneath the mouse regardless of whether its editable.
14793 2007-07-20  Ada Chan  <adachan@apple.com>
14795         Reviewed by Darin and Adam.
14797         <rdar://problem/5338385> Fixed infinite loop in ScrollView::scrollRectIntoViewRecursively().
14798         Also removed an unused local variable.
14800         * platform/win/ScrollViewWin.cpp:
14801         (WebCore::ScrollView::scrollRectIntoViewRecursively):
14803 2007-07-21  Antti  <antti@apple.com>
14805         Reviewed by Darin.
14806         
14807         Fix <rdar://problem/5305788>
14808         REGRESSION: Safari sometimes loads IE-specific stylesheet on www.apaema.org
14809         
14810         Pick the preferred style sheet set based on document order even if the sheet is still loading. Previously 
14811         the set was chosen based on which stylesheet happened to arrive first. Just fix the problem at hand 
14812         and resist urge to start refactoring this function.
14814         * dom/Document.cpp:
14815         (WebCore::Document::recalcStyleSelector):
14817 2007-07-20  Sam Weinig  <sam@webkit.org>
14819         Reviewed by Darin.
14821         Fix for <rdar://problem/5351252>
14822         Computed value for -webkit-background-size and border-spacing
14823         should be space separated CSSValueLists.
14825         * css/CSSComputedStyleDeclaration.cpp:
14826         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14828 2007-07-20  Geoffrey Garen  <ggaren@apple.com>
14830         Suggested by Darin Adler.
14831         
14832         Slight tweak to my last commit: changed gcController() to return a 
14833         reference instead of a pointer.
14835 2007-07-20  Geoffrey Garen  <ggaren@apple.com>
14837         Reviewed by Darin Adler.
14838         
14839         Fixed http://bugs.webkit.org/show_bug.cgi?id=12900 Page tear-down 
14840         forces garbage collection once per frame
14842         Also fixed <rdar://problem/5286989> GC on window close does not always 
14843         bring the JS object count down to 0
14844         
14845         Implemented a 0-delay GC timer in WebCore. Instead of forcing GC
14846         immediately, code that thinks it has created a lot of garbage starts
14847         the timer. This has two advantages: 
14849         1) Multiple GCs can coalesce. In my pathological test case, this 
14850         improves performance by an order of magnitude. 
14851         
14852         2) Conservative marking is less likely to keep alive important dead
14853         objects, like the window object, because the stack is small and free of
14854         JS processing when the timer fires.
14856         Added GCController.h/.cpp, sometimes blindly:
14857         * WebCore.pro:
14858         * WebCore.vcproj/WebCore.vcproj:
14859         * WebCore.xcodeproj/project.pbxproj:
14860         * WebCoreSources.bkl:
14862         Added singleton that implements GC on a 0-delay timer:
14863         * bindings/js/GCController.h: Added.
14864         * bindings/js/GCController.cpp: Added.
14865         
14866         Changed Collector::collect() calls below to call to the singleton:
14867         * bindings/js/kjs_proxy.cpp:
14868         (WebCore::KJSProxy::~KJSProxy):
14869         * bindings/js/kjs_window.cpp:
14870         (KJS::Window::clear):
14871         * history/CachedPage.cpp:
14872         (WebCore::CachedPage::clear):
14873         
14874         * page/Frame.cpp:
14875         (WebCore::Frame::~Frame): Removed previous slightly hackish attempt to
14876         avoid conservative marking of the window object.
14878 2007-07-20  Anders Carlsson  <andersca@apple.com>
14879     
14880         Reviewed by Darin.
14882         <rdar://problem/5298816> Crash redirecting message, in -[SharedBufferData initWithSharedBuffer:]
14883         
14884         Have cached resources keep track of what DocLoader they belong to. This is so that they can remove themselves
14885         from the DocLoader's resource map when they're destroyed when the cache is disabled.
14886         
14887         * html/HTMLImageLoader.cpp:
14888         (WebCore::HTMLImageLoader::updateFromElement):
14889         * loader/Cache.cpp:
14890         (WebCore::Cache::requestResource):
14891         * loader/CachedResource.cpp:
14892         (WebCore::CachedResource::CachedResource):
14893         (WebCore::CachedResource::~CachedResource):
14894         * loader/CachedResource.h:
14895         (WebCore::CachedResource::setDocLoader):
14897 2007-07-20  Brady Eidson  <beidson@apple.com>
14899         Reviewed by Darin
14901         <rdar://problem/5153021> and http://bugs.webkit.org/show_bug.cgi?id=13364
14903         The issue here was that if a document in a subframe was loaded from a URL, but then a script did 
14904         document.open or document.write during parsing, we would overwrite the document's url and baseurl 
14905         with the parent frame's url.  WRONG!
14907         * dom/Document.cpp:
14908         (WebCore::Document::open): Only set the url and baseURL in document.open if they are still empty or about:blank
14910 2007-07-20  Maciej Stachowiak  <mjs@apple.com>
14912         Reviewed by Oliver.
14914         <rdar://problem/5326303> REGRESSION: blur event fires upon navigating away from a page with focused element
14917         
14918         The proximate cause was the recent change to keep focus on the
14919         WebHTMLView when switching views. But the reason this happend was
14920         that didCommitLoadForFrame got called at a time when the new view
14921         was in place, but the old document was still there. This was a
14922         longstanding problem with the delegate, and fixing it cleans it
14923         up.
14925         * loader/FrameLoader.cpp:
14926         (WebCore::FrameLoader::begin): Don't send dispatchWindowObjectAvailable if
14927         caller asked not to (this is to allow order of delegates to be the same).
14928         (WebCore::FrameLoader::transitionToCommitted): Don't emit didCommitLoadForFrame here.
14929         (WebCore::FrameLoader::receivedFirstData): Instead do it here, after calling begin(),
14930         so the new document is set up.
14931         * loader/FrameLoader.h: Add new optional parameter to begin().
14933 2007-07-20  Sam Weinig  <sam@webkit.org>
14935         Reviewed by Beth Dakin.
14937         Update for fix for http://bugs.webkit.org/show_bug.cgi?id=14646
14938         <rdar://problem/5340449>
14940         - Return a CSSValueList instead of CSSValue (with a Pair type) for
14941           computed values of border radii.
14942         - Add ability to CSSValueList to print out a space separated list
14943           instead of a comma.
14944         - Add border radii to list of computed styles that we create and can
14945           iterate over.
14947         * css/CSSComputedStyleDeclaration.cpp:
14948         (WebCore::):
14949         (WebCore::getBorderRadiusCornerValue):
14950         * css/CSSValueList.cpp:
14951         (WebCore::CSSValueList::CSSValueList):
14952         (WebCore::CSSValueList::cssText):
14953         * css/CSSValueList.h:
14955 2007-07-20  Mitz Pettel  <mitz@webkit.org>
14957         Reviewed by Darin.
14959         - http://bugs.webkit.org/show_bug.cgi?id=14626
14960           Make bidiReorderCharacters independent of RenderBlock
14962         No layout test possible because there is no change in functionality.
14964         This patch generalizes RenderBlock's implementation of the Unicode Bidi Algorithm
14965         in the form of the BidiResolver class template. An instance of a BidiResolver class
14966         can generate a sequence of runs with corresponding level and override attributes,
14967         given a range specified by start and end iterators. The iterators can optionally
14968         call back to the BidiResolver instance to push or pop explicit embedding levels.
14970         The patch replaces BidiState with a specialization of BidiResolver that uses
14971         BidiIterators and generates BidiRuns. It also eliminates some of the file statics
14972         in bidi.cpp, instead relying on BidiResolver data members.
14974         The patch makes the BidiContext part of BidiStatus, thus making BidiStatus the
14975         entire state that needs to be saved and restored in order to restart the bidi
14976         algorithm at a given point. Previously, you had to keep and pass around two
14977         separate structures, namely the BidiContext and the BidiStatus.
14979         bidiReorderCharacters is implemented without relying on render objects, using
14980         a BidiResolver specialization that uses simple character buffer iterators and
14981         simple run structures.
14983         * WebCore.pro:
14984         * WebCore.vcproj/WebCore.vcproj:
14985         * WebCore.xcodeproj/project.pbxproj:
14986         * WebCoreSources.bkl:
14987         * platform/BidiContext.cpp: Added.
14988         (WebCore::operator==):
14989         * platform/BidiContext.h: Added.
14990         (WebCore::BidiContext::BidiContext):
14991         (WebCore::BidiContext::ref):
14992         (WebCore::BidiContext::deref):
14993         (WebCore::BidiContext::parent):
14994         (WebCore::BidiContext::level):
14995         (WebCore::BidiContext::dir):
14996         (WebCore::BidiContext::override):
14997         * platform/BidiReorderCharacters.cpp: Added.
14998         (WebCore::CharacterBufferIterator::CharacterBufferIterator):
14999         (WebCore::CharacterBufferIterator::offset):
15000         (WebCore::CharacterBufferIterator::increment):
15001         (WebCore::CharacterBufferIterator::atEnd):
15002         (WebCore::CharacterBufferIterator::current):
15003         (WebCore::CharacterBufferIterator::direction):
15004         (WebCore::CharacterBufferIterator::operator==):
15005         (WebCore::CharacterBufferIterator::operator!=):
15006         (WebCore::::appendRun):
15007         (WebCore::bidiReorderCharacters):
15008         * platform/BidiReorderCharacters.h: Added.
15009         * platform/BidiResolver.h: Added.
15010         (WebCore::BidiStatus::BidiStatus):
15011         (WebCore::operator==):
15012         (WebCore::operator!=):
15013         (WebCore::BidiCharacterRun::BidiCharacterRun):
15014         (WebCore::BidiCharacterRun::reversed):
15015         (WebCore::BidiCharacterRun::dirOverride):
15016         (WebCore::BidiCharacterRun::next):
15017         (WebCore::BidiResolver::):
15018         (WebCore::BidiResolver::context):
15019         (WebCore::BidiResolver::setContext):
15020         (WebCore::BidiResolver::setLastDir):
15021         (WebCore::BidiResolver::setLastStrongDir):
15022         (WebCore::BidiResolver::setEorDir):
15023         (WebCore::BidiResolver::dir):
15024         (WebCore::BidiResolver::setDir):
15025         (WebCore::BidiResolver::status):
15026         (WebCore::BidiResolver::setStatus):
15027         (WebCore::BidiResolver::adjustEmbedding):
15028         (WebCore::BidiResolver::setAdjustEmbedding):
15029         (WebCore::BidiResolver::firstRun):
15030         (WebCore::BidiResolver::lastRun):
15031         (WebCore::BidiResolver::runCount):
15032         (WebCore::::embed):
15033         (WebCore::::deleteRuns):
15034         (WebCore::::reverseRuns):
15035         (WebCore::::createBidiRunsForLine):
15036         * platform/win/PopupMenuWin.cpp:
15037         (WebCore::PopupMenu::paint):
15038         * rendering/RenderBlock.h:
15039         * rendering/RenderFileUploadControl.cpp:
15040         (WebCore::RenderFileUploadControl::paintObject):
15041         * rendering/RenderListBox.cpp:
15042         (WebCore::RenderListBox::paintItemForeground):
15043         * rendering/RootInlineBox.cpp:
15044         (WebCore::RootInlineBox::childRemoved):
15045         (WebCore::RootInlineBox::lineBreakBidiStatus):
15046         (WebCore::RootInlineBox::setLineBreakInfo):
15047         * rendering/RootInlineBox.h:
15048         (WebCore::RootInlineBox::RootInlineBox):
15049         * rendering/bidi.cpp:
15050         (WebCore::BidiIterator::BidiIterator):
15051         (WebCore::BidiState::deleteRuns):
15052         (WebCore::operator==):
15053         (WebCore::operator!=):
15054         (WebCore::bidiNext):
15055         (WebCore::bidiFirst):
15056         (WebCore::BidiState::addRun):
15057         (WebCore::appendRunsForObject):
15058         (WebCore::BidiState::appendRun):
15059         (WebCore::RenderBlock::constructLine):
15060         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
15061         (WebCore::RenderBlock::computeVerticalPositionsForLine):
15062         (WebCore::RenderBlock::bidiReorderLine):
15063         (WebCore::buildCompactRuns):
15064         (WebCore::RenderBlock::layoutInlineChildren):
15065         (WebCore::RenderBlock::determineStartPosition):
15066         (WebCore::RenderBlock::determineEndPosition):
15067         (WebCore::RenderBlock::matchedEndLine):
15068         (WebCore::RenderBlock::skipWhitespace):
15069         * rendering/bidi.h:
15070         (WebCore::BidiRun::BidiRun):
15071         (WebCore::BidiRun::next):
15073 2007-07-20  Darin Adler  <darin@apple.com>
15075         Reviewed by John Sullivan.
15077         - fix for <rdar://problem/5331723> <rdar://problem/5331723> Safari gives error
15078           103 for URLs that Adobe Lightroom's Preview feature produces, with ":1" in the hostname
15080         Test: fast/loader/file-URL-with-port-number.html
15082         * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
15083         Don't do any port blocking for file URLs.
15085 2007-07-20  Mitz Pettel  <mitz@webkit.org>
15087         Reviewed by Darin.
15089         - fix http://bugs.webkit.org/show_bug.cgi?id=14689
15090           REGRESSION (3.0.2-TOT): <select> menu items have incorrect background color
15092         * manual-tests/item-background.html: Added.
15093         * platform/PopupMenuClient.h:
15094         * platform/graphics/Color.cpp:
15095         (WebCore::blendComponent): Renamed the static method blend() to this.
15096         (WebCore::Color::blend): Added. Compositing (in "normal" or "source over"
15097         blend mode) B.blend(C) over A is equivalent to compositing C over the
15098         result of compositing B over A.
15099         (WebCore::Color::blendWithWhite): Changed for the above rename.
15100         * platform/graphics/Color.h:
15101         * platform/win/PopupMenuWin.cpp:
15102         (WebCore::PopupMenu::paint): Changed to use itemBackgroundColor().
15103         * rendering/RenderMenuList.cpp:
15104         (WebCore::RenderMenuList::itemBackgroundColor): Added. Returns the color
15105         that would result from overlaying the item's background color over the
15106         menu's background color over solid white. Note that clientStyle() cannot
15107         be used for the menu's background color, since background color is not
15108         inherited by the inner block (the regression resulted from changing
15109         clientStyle() to return the inner block's style), and that the color
15110         returned from this method is guaranteed to be opaque.
15111         * rendering/RenderMenuList.h:
15112         * rendering/RenderTextControl.cpp:
15113         (WebCore::RenderTextControl::itemBackgroundColor): Added.
15114         * rendering/RenderTextControl.h:
15116 2007-07-20  Rob Buis  <buis@kde.org>
15118         Reviewed by Darin.
15120         http://bugs.webkit.org/show_bug.cgi?id=14642
15121         REGRESSION(r24064-24096): Reflection type effect in canvas tag broke
15123         Do not stop the fill/stroke operation when encountering an empty path.
15125         * html/CanvasRenderingContext2D.cpp:
15126         (WebCore::CanvasRenderingContext2D::fill):
15127         (WebCore::CanvasRenderingContext2D::stroke):
15129 2007-07-20  Lars Knoll  <lars@trolltech.com>
15131         Reviewed by Simon.
15133         Remove some files that are not used anymore.
15135         * platform/qt/FontCacheQt.cpp: Removed.
15136         * platform/qt/FontDataQt.cpp: Removed.
15137         * platform/qt/FontPlatformData.h: Removed.
15138         * platform/qt/FontPlatformDataQt.cpp: Removed.
15139         * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
15141 2007-07-20  Lars Knoll  <lars@trolltech.com>
15143         Reviewed by Simon.
15145         use the correct font for spaces.
15147         * platform/qt/FontQt.cpp:
15148         (WebCore::generateComponents):
15150 2007-07-20  Lars Knoll  <lars@trolltech.com>
15152         Reviewed by Simon.
15154         spaces where not correctly taken into account for both offsetForPosition and selectionRectForText. Because of that selections sort of worked in LTR text, but completely failed in RTL.
15156         * platform/qt/FontQt.cpp:
15157         (WebCore::TextRunComponent::isSpace):
15158         (WebCore::TextRunComponent::TextRunComponent):
15159         (WebCore::generateComponents):
15160         (WebCore::Font::drawText):
15161         (WebCore::Font::offsetForPosition):
15162         (WebCore::Font::selectionRectForText):
15164 2007-07-20  Lars Knoll  <lars@trolltech.com>
15166         Reviewed by Simon.
15168         fix up some smaller issues in selection handling. It's still not perfect and selections in mixed rtl/ltr text are still broken, but it's getting there.
15170         * platform/qt/FontQt.cpp:
15171         (WebCore::Font::offsetForPosition):
15172         (WebCore::cursorToX):
15173         (WebCore::Font::selectionRectForText):
15175 2007-07-20  Lars Knoll  <lars@trolltech.com>
15177         Reviewed by Simon.
15179         make offsetForPosition and selectionRectForText work correctly with small caps.
15181         * platform/qt/FontQt.cpp:
15182         (WebCore::Font::offsetForPosition):
15183         (WebCore::cursorToX):
15184         (WebCore::Font::selectionRectForText):
15186 2007-07-20  Lars Knoll  <lars@trolltech.com>
15188         Reviewed by Simon.
15190         clip the drawn text correctly when needed.
15192         * platform/qt/FontQt.cpp:
15193         (WebCore::Font::drawText):
15195 2007-07-20  Lars Knoll  <lars@trolltech.com>
15197         Reviewed by Simon.
15199         Fix offsetForPosition and selectionRectForText methods.
15201         * platform/qt/FontQt.cpp:
15202         (WebCore::Font::offsetForPosition):
15203         (WebCore::cursorToX):
15204         (WebCore::Font::selectionRectForText):
15206 2007-07-20  Lars Knoll  <lars@trolltech.com>
15208         Reviewed by Simon.
15210         fix BiDi text rendering.
15212         * platform/qt/FontQt.cpp:
15213         (WebCore::TextRunComponent::TextRunComponent):
15214         (WebCore::generateComponents):
15215         (WebCore::Font::drawText):
15217 2007-07-20  Mark Rowe  <mrowe@apple.com>
15219         Reviewed by Maciej.
15221         Move FTPDirectoryTokenizer::m_templateDocumentData to be a function-scoped static
15222         to avoid creating a global initializer.  This fixes the build for x86_64.
15224         * loader/FTPDirectoryDocument.cpp:
15225         (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate):
15227 2007-07-19  Geoffrey Garen  <ggaren@apple.com>
15229         Reviewed by Maciej Stachowiak.
15230         
15231         Fixed <rdar://problem/5347849> Cache eviction of live decoded data is 
15232         thrash-y
15233         
15234         The solution here is to evict live decoded data based on a strict LRU
15235         model. This should work well as a "scrolling window."
15237         With this patch, I see a substantial reduction in CPU while scrolling
15238         through a page with large images on a low memory system. Layout tests
15239         pass.
15241         * loader/Cache.h: Changed from a size-based vector of LRU lists to a
15242         single LRU list in order to implement strict LRU.
15243         
15244         * loader/CachedResource.h: Removed tracking of access count, since that
15245         was the old cache eviction model.
15247 2007-07-19  Oliver Hunt  <oliver@apple.com>
15249         Reviewed by Maciej.
15251         <rdar://problem/5076807> REGRESSION: Can't undo conversion of inline text (by hitting ESC)
15252         <rdar://problem/5346167> DOM key events triggered during IME composition differ in webkit/mac vs all windows browsers
15254         We now basically match the behaviour of IE/Windows. This means that during composition keydown and autorepeat
15255         keys generate keydown events with a keyCode of 229, which correlates to the windows VK_PROCESSKEY message.
15256         keyup events are generated with the keyCode of the actual key that was pressed.
15258         The only difference is on the first keydown of a composition, in which IE will use keyCode == 229, and we will
15259         send an event with the keyCode for the actual key that was pressed.
15261         * page/EventHandler.cpp:
15262         (WebCore::EventHandler::keyEvent):
15263         * platform/PlatformKeyboardEvent.h:
15264         (WebCore::PlatformKeyboardEvent::setWindowsKeyCode):
15266 2007-07-19  Brady Eidson  <beidson@apple.com>
15268         Reviewed by Sam
15270         <rdar://problem/5134929> REGRESSION: Colon detected as delimiting an empty port is stripped
15272         The fix for this was in KURL::parse() which had a slightly changed rule that would strip the colon if there
15273         was no port.
15275         An additional canonicalization fix was made in window.location.host to match the expected behavior of leaving
15276         the colon in place - before this fix, if the colon was there but no port was there, we'd see the port as 0.
15278         * bindings/js/kjs_window.cpp:
15279         (KJS::Location::put): Call setHostAndPort instead of setHost and setPort seperately
15281         * manual-tests/location-host-canonicalization.html: Added.
15283         * platform/KURL.cpp:
15284         (WebCore::KURL::setHostAndPort): Set the host and port as one string component then reparse the URL
15285         (WebCore::KURL::parse): Change one line to consider the empty colon as part of the host name
15286         * platform/KURL.h:
15288 2007-07-19  Anders Carlsson  <andersca@apple.com>
15290         Reviewed by Adam.
15292         <rdar://problem/5288617>
15293         Crash playing a very large QuickTime movie in Safari
15294         
15295         <rdar://problem/5271174>
15296         http://bugs.webkit.org/show_bug.cgi?id=14148
15297         LEAK: Serious memory consumption and leak when loading QT movies.
15298         
15299         Don't keep plugin stream data in memory since some plugin resources (like QT movies)
15300         can be really big. If a plug-in wants data in a file, create a file and write data to it 
15301         as it's coming from the wire, instead of using a big buffer.
15302         
15303         * loader/ResourceLoader.cpp:
15304         (WebCore::ResourceLoader::ResourceLoader):
15305         (WebCore::ResourceLoader::addData):
15306         (WebCore::ResourceLoader::willStopBufferingData):
15307         * loader/ResourceLoader.h:
15308         (WebCore::ResourceLoader::setShouldBufferData):
15309         * plugins/win/PluginStreamWin.cpp:
15310         (WebCore::PluginStreamWin::PluginStreamWin):
15311         (WebCore::PluginStreamWin::start):
15312         (WebCore::PluginStreamWin::startStream):
15313         (WebCore::PluginStreamWin::destroyStream):
15314         (WebCore::PluginStreamWin::didReceiveData):
15315         (WebCore::PluginStreamWin::didFinishLoading):
15316         * plugins/win/PluginStreamWin.h:
15318 2007-07-19  Geoffrey Garen  <ggaren@apple.com>
15320         Reviewed by Darin Adler.
15321         
15322         Fixed <rdar://problem/5348384> Restore old return value behavior of 
15323         stringByEvaluatingJavaScriptFromString
15324         
15325         Return an empty string unless you have a string, boolean, or number
15326         result.
15328         * WebCore.xcodeproj/project.pbxproj:
15329         * page/mac/WebCoreFrameBridge.mm:
15330         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
15332 2007-07-19  Darin Adler  <darin@apple.com>
15334         Reviewed by Alexey.
15336         - fix http://bugs.webkit.org/show_bug.cgi?id=14666
15337           remove unused xxx-encodings.txt for all platforms other than Mac
15339         * platform/gdk/gdk-encodings.txt: Removed.
15340         * platform/win/win-encodings.txt: Removed.
15341         * platform/wx/wx-encodings.txt: Removed.
15343         * platform/character-sets.txt: Moved into mac subdirectory since it's only used for Mac; at some
15344         point I hope to remove it completely.
15345         * platform/make-charset-table.pl: Ditto.
15346         * platform/mac/character-sets.txt: Copied from platform/character-sets.txt.
15347         * platform/mac/make-charset-table.pl: Copied from platform/make-charset-table.pl.
15349         * DerivedSources.make: Moved CharsetData.cpp into the MACOS section.
15350         Changed the build rule to use Mac-specific paths for everything and got rid of
15351         make variables.
15353         * WebCore.vcproj/build-generated-files.sh: Removed code to set ENCODINGS_FILE and ENCODINGS_PREFIX.
15354         * WebCore.xcodeproj/project.pbxproj: Ditto.
15355         * make-generated-sources.sh: Ditto.
15357         * Projects/gdk/webcore-gdk.bkl: Removed code to pass gdk-encodings.txt to make-generated-sources.sh.
15358         * Projects/wx/webcore-wx.bkl: Ditto, but for wx-encodings.txt.
15360 2007-07-19  Antti  <antti@apple.com>
15362         Reviewed by Darin.
15364         Fix <rdar://problem/5257371>
15365         Dashcode Client crash when clicking on placemarks in Maps widget in WebCore::DeprecatedPtrListImpl::addIterator
15366         
15367         FlexibleBoxes should never have inline children. Don't move children out from last remaining anonymous block.
15369         * rendering/RenderBlock.cpp:
15370         (WebCore::RenderBlock::removeChild): real fix
15371         * rendering/RenderFlexibleBox.cpp:
15372         (WebCore::RenderFlexibleBox::layoutVerticalBox): just to be sure, this is checked elsewhere too
15374 2007-07-19  Anders Carlsson  <andersca@apple.com>
15376         Reviewed by Darin.
15378         <rdar://problem/5322268>
15379         Safari Crash at http://www.exlibrisgroup.com/sfx_openurl.htm
15380         
15381         Add a real copy constructor and assignment operator for CollectionInfo
15382         so that the vectors in the cache maps will be copied correctly.
15383         
15384         * html/HTMLCollection.cpp:
15385         (WebCore::HTMLCollection::CollectionInfo::CollectionInfo):
15386         (WebCore::HTMLCollection::CollectionInfo::swap):
15387         * html/HTMLCollection.h:
15388         (WebCore::HTMLCollection::CollectionInfo::operator=):
15389         (WebCore::HTMLCollection::CollectionInfo::copyCacheMap):
15391 2007-07-19  David Hyatt  <hyatt@apple.com>
15393         Fix for 5237574, Colloquy main view does not size correctly.  Make
15394         sure to reset the baseilne when calculating a row's height/baseline, so
15395         that old values don't stick around.
15397         Reviewed by Tim Hatcher
15399         * rendering/RenderTableSection.cpp:
15400         (WebCore::RenderTableSection::calcRowHeight):
15402 2007-07-19  Antti  <antti@apple.com>
15404         Reviewed by John.
15405         
15406         Fix <rdar://problem/5346697>
15407         REGRESSION(r23773): Visibile children on invisible layer are not painted (fast/layers/layer-visibility.html fails)
15408         
15409         Test m_hasVisibleContent instead of renderer()->style()->visibility(). 
15410         This takes children into account too.
15412         Regression spotted by Mitz.
15414         * rendering/RenderLayer.cpp:
15415         (WebCore::RenderLayer::paintLayer):
15417 2007-07-18  Oliver Hunt  <oliver@apple.com>
15419         Rubber stamped by maciej
15421         Rollout patch from r24437.
15423         * page/EventHandler.cpp:
15424         (WebCore::EventHandler::keyEvent):
15426 2007-07-18  Oliver Hunt  <oliver@apple.com>
15428         Reviewed by Kevin M.
15430         Fix for <rdar://problem/5346167> DOM key events triggered during
15431                 IME composition differ in webkit/mac vs all windows browsers
15433         We no longer send DOM key events during IME composition.  This behaviour 
15434         matches the behaviour of WebKit/Win.
15436         * page/EventHandler.cpp:
15437         (WebCore::EventHandler::keyEvent):
15439 2007-07-18  Sam Weinig  <sam@webkit.org>
15441         Reviewed by Oliver.
15443         Fix for http://bugs.webkit.org/show_bug.cgi?id=14646
15444         WebKit border radius properties are unavailable via JavaScript
15446         Test: fast/dom/getComputedStyle-borderRadius.html
15448         * css/CSSComputedStyleDeclaration.cpp:
15449         (WebCore::getBorderRadiusCornerValue): Helper function that returns a single value if
15450         width and the height of the corner radius are equal, and otherwise a pair.
15451         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
15453 2007-07-18  Anders Carlsson  <andersca@apple.com>
15455         Reviewed by Darin.
15457         <rdar://problem/5262136> Double form repost alert going forward on britishairways.com
15458         
15459         When checking if the request has changed and a new policy callback needs to be sent, 
15460         ignore the request headers. NSURLConnection in Leopard will always call willSendRequest,
15461         with a request that was different from the one passed to -[NSURLConnection connectionWithRequest:]
15462         (a few Accept headers are added).
15464         * loader/FrameLoader.cpp:
15465         (WebCore::FrameLoader::checkNavigationPolicy):
15466         * platform/network/ResourceRequestBase.cpp:
15467         (WebCore::equalIgnoringHeaderFields):
15468         (WebCore::operator==):
15469         * platform/network/ResourceRequestBase.h:
15471 2007-07-18  Anders Carlsson  <andersca@apple.com>
15473         Reviewed by Darin.
15475         <rdar://problem/5340098>
15476         http://bugs.webkit.org/show_bug.cgi?id=13366
15477         REGRESSION (r10935): AOL beta music player doesn't play
15479         The AOL beta music player has a typo, causing it to create an <embed"> element inside of
15480         an <object> element
15481         Because of this, it will not be treated as an embed tag, so its name will not be added
15482         to the document's named item map. Furthermore, since the <object> contains a child that
15483         is not a <param>, the object's name won't be added either.
15484         
15485         The (somewhat ugly) fix is to add <object> to the named map only if it has <param> or
15486         unknown elements as children.
15487         
15488         * html/HTMLObjectElement.cpp:
15489         (WebCore::HTMLObjectElement::updateDocNamedItem):
15491 2007-07-18  Timothy Hatcher  <timothy@apple.com>
15493         Reviewed by Adam.
15495         <rdar://problem/5343767> Should have a way to disable the Web Inspector
15497         This change facilitates the ability to turn the Web Inspector on and off.
15499         Makes the InspectorClient be required to create a new Page. This also means that
15500         InspectorController will never be NULL. Adds a new function on Page to test
15501         if the inspector is enabled.
15503         * WebCore.exp: New symbol for the Page constructor.
15504         * WebCore.pro: Add InspectorClientGdk.cpp.
15505         * WebCoreSources.bkl: ditto.
15506         * html/HTMLDocument.cpp:
15507         (WebCore::HTMLDocument::createTokenizer):
15508         * loader/FrameLoader.cpp:
15509         (WebCore::FrameLoader::detachFromParent): Don't null check the InspectorCOntroller.
15510         (WebCore::FrameLoader::dispatchDidCommitLoad): Ditto.
15511         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest): Ditto.
15512         (WebCore::FrameLoader::dispatchWillSendRequest): Ditto.
15513         (WebCore::FrameLoader::dispatchDidReceiveResponse): Ditto.
15514         (WebCore::FrameLoader::dispatchDidReceiveContentLength): Ditto.
15515         (WebCore::FrameLoader::dispatchDidFinishLoading): Ditto.
15516         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Ditto.
15517         * page/ContextMenuController.cpp:
15518         (WebCore::ContextMenuController::handleContextMenuEvent): Ask the InspectorController if it is enabled.
15519         (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
15520         * page/InspectorController.cpp:
15521         (WebCore::InspectorController::enabled): Ask the Page's settings if developer extras are enabled.
15522         (WebCore::InspectorController::inspect): Check if the InspectorController is enabled.
15523         (WebCore::InspectorController::focusNode): Ditto.
15524         (WebCore::InspectorController::highlight): Ditto.
15525         (WebCore::InspectorController::hideHighlight): Ditto.
15526         (WebCore::InspectorController::addMessageToConsole): Ditto.
15527         (WebCore::InspectorController::attachWindow): Ditto.
15528         (WebCore::InspectorController::detachWindow): Ditto.
15529         (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
15530         (WebCore::InspectorController::didCommitLoad): Ditto.
15531         (WebCore::InspectorController::frameDetachedFromParent): Ditto.
15532         (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto.
15533         (WebCore::InspectorController::identifierForInitialRequest): Ditto.
15534         (WebCore::InspectorController::willSendRequest): Ditto.
15535         (WebCore::InspectorController::didReceiveResponse): Ditto.
15536         (WebCore::InspectorController::didReceiveContentLength): Ditto.
15537         (WebCore::InspectorController::didFinishLoading): Ditto.
15538         (WebCore::InspectorController::didFailLoading): Ditto.
15539         * page/InspectorController.h:
15540         * page/Page.cpp:
15541         (WebCore::Page::Page): Require an InspectorClient.
15542         (WebCore::Page::~Page): Always call pageDestroyed on the InspectorController.
15543         (WebCore::Page::inspectorEnabled): Check the WebCore settings if the developer extras are enabled.
15544         * page/Page.h:
15545         * page/gdk/InspectorClientGdk.cpp: Added.
15546         (WebCore::InspectorClientGdk::inspectorDestroyed): Empty stub calling notImplemented.
15547         (WebCore::InspectorClientGdk::createPage): Ditto.
15548         (WebCore::InspectorClientGdk::showWindow): Ditto.
15549         (WebCore::InspectorClientGdk::closeWindow): Ditto.
15550         (WebCore::InspectorClientGdk::attachWindow): Ditto.
15551         (WebCore::InspectorClientGdk::detachWindow): Ditto.
15552         (WebCore::InspectorClientGdk::highlight): Ditto.
15553         (WebCore::InspectorClientGdk::hideHighlight): Ditto.
15554         (WebCore::InspectorClientGdk::inspectedURLChanged): Ditto.
15555         * page/gdk/InspectorClientGdk.h: Added.
15556         * platform/graphics/svg/SVGImage.cpp:
15557         (WebCore::SVGImage::dataChanged): Pass in a dummy InspectorClient.
15558         * platform/graphics/svg/SVGImageEmptyClients.h:
15559         (WebCore::SVGEmptyInspectorClient::~SVGEmptyInspectorClient): Empty dummy implementation.
15560         (WebCore::SVGEmptyInspectorClient::inspectorDestroyed): Ditto.
15561         (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
15562         (WebCore::SVGEmptyInspectorClient::showWindow): Ditto.
15563         (WebCore::SVGEmptyInspectorClient::closeWindow): Ditto.
15564         (WebCore::SVGEmptyInspectorClient::attachWindow): Ditto.
15565         (WebCore::SVGEmptyInspectorClient::detachWindow): Ditto.
15566         (WebCore::SVGEmptyInspectorClient::highlight): Ditto.
15567         (WebCore::SVGEmptyInspectorClient::hideHighlight): Ditto.
15568         (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
15570 2007-07-18  Anders Carlsson  <andersca@apple.com>
15572         Make some headers private instead of project.
15573         
15574         * WebCore.xcodeproj/project.pbxproj:
15576 2007-07-18  John Sullivan  <sullivan@apple.com>
15578         Reviewed by Maciej and Kevin Decker
15580         - fixed <rdar://problem/5315926> REGRESSION: ~.4% PLT regression from r23949 (canonicalization change)
15582         * loader/mac/LoaderNSURLExtras.m:
15583         (canonicalURL):
15584         Rolled out the fix for 5249730 that caused this regression. 5249730 is addressed a different way now.
15586 2007-07-18  Sam Weinig  <sam@webkit.org>
15588         Build fix.
15590         * WebCore.xcodeproj/project.pbxproj:
15591         * loader/gdk/FrameLoaderClientGdk.cpp:
15592         (WebCore::FrameLoaderClientGdk::objectContentType):
15593         * platform/graphics/win/ImageWin.cpp:
15594         * platform/network/cf/ResourceResponseCFNet.cpp:
15595         * platform/win/ClipboardWin.cpp:
15596         (WebCore::createGlobalImageFileDescriptor):
15598 2007-07-18  Sam Weinig  <sam@webkit.org>
15600         Rubber-stamped by Adam Roben.
15602         Rename MimeTypeRegistry to MIMETypeRegistry and xmlhttprequest to XMLHttpRequest
15604         * WebCore.exp:
15605         * WebCore.pro:
15606         * WebCore.vcproj/WebCore.vcproj:
15607         * bindings/js/JSXMLHttpRequest.cpp:
15608         * bindings/js/kjs_binding.cpp:
15609         * bindings/js/kjs_dom.cpp:
15610         * dom/Document.cpp:
15611         * html/HTMLFormElement.cpp:
15612         (WebCore::HTMLFormElement::formData):
15613         * html/HTMLObjectElement.cpp:
15614         (WebCore::HTMLObjectElement::containsJavaApplet):
15615         * loader/FrameLoader.cpp:
15616         (WebCore::FrameLoader::requestObject):
15617         * loader/mac/LoaderNSURLExtras.m:
15618         (suggestedFilenameWithMIMEType):
15619         * platform/MIMETypeRegistry.cpp: Copied from platform/MimeTypeRegistry.cpp.
15620         (WebCore::initialiseSupportedImageMIMETypes):
15621         (WebCore::initialiseMIMETypeRegistry):
15622         (WebCore::MIMETypeRegistry::getMIMETypeForPath):
15623         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
15624         (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
15625         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
15626         (WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
15627         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
15628         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
15629         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes):
15630         * platform/MIMETypeRegistry.h: Copied from platform/MimeTypeRegistry.h.
15631         * platform/MimeTypeRegistry.cpp: Removed.
15632         * platform/MimeTypeRegistry.h: Removed.
15633         * platform/gdk/MIMETypeRegistryGdk.cpp: Copied from platform/gdk/MimeTypeRegistryGdk.cpp.
15634         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15635         * platform/gdk/MimeTypeRegistryGdk.cpp: Removed.
15636         * platform/graphics/BitmapImage.cpp:
15637         * platform/graphics/Image.cpp:
15638         (WebCore::Image::supportsType):
15639         * platform/mac/DragDataMac.mm:
15640         * platform/mac/MIMETypeRegistryMac.mm: Copied from platform/mac/MimeTypeRegistryMac.mm.
15641         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15642         (WebCore::MIMETypeRegistry::getExtensionsForMIMEType):
15643         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
15644         * platform/mac/MimeTypeRegistryMac.mm: Removed.
15645         * platform/mac/PasteboardMac.mm:
15646         (WebCore::Pasteboard::writeImage):
15647         * platform/qt/MIMETypeRegistryQt.cpp: Copied from platform/qt/MimeTypeRegistryQt.cpp.
15648         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15649         * platform/qt/MimeTypeRegistryQt.cpp: Removed.
15650         * platform/win/MIMETypeRegistryWin.cpp: Copied from platform/win/MimeTypeRegistryWin.cpp.
15651         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
15652         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15653         * platform/win/MimeTypeRegistryWin.cpp: Removed.
15654         * rendering/RenderPartObject.cpp:
15655         (WebCore::RenderPartObject::updateWidget):
15656         * xml/xmlhttprequest.cpp: Removed.
15657         * xml/xmlhttprequest.h: Removed.
15658         * xml/XMLHttpRequest.cpp: Copied from xml/xmlhttprequest.cpp.
15659         * xml/XMLHttpRequest.h: Copied from xml/xmlhttprequest.h.
15661 2007-07-18  Sam Weinig  <sam@webkit.org>
15663         Rubber-stamped by Adam Roben.
15665         Rename csshelper.h, csshelper.cpp, cssparser.h, cssparser.cpp,
15666         cssstyleselector.h, and cssstyleselector.cpp to be CamelCase.
15668         * WebCore.pro:
15669         * WebCore.vcproj/WebCore.vcproj:
15670         * bindings/objc/DOM.mm:
15671         * bindings/objc/DOMHTML.mm:
15672         * css/CSSGrammar.y:
15673         * css/CSSMediaRule.cpp:
15674         * css/CSSMutableStyleDeclaration.cpp:
15675         * css/CSSPrimitiveValue.cpp:
15676         * css/CSSStyleSheet.cpp:
15677         * css/MediaList.cpp:
15678         * css/MediaQueryExp.cpp:
15679         * css/csshelper.cpp: Removed.
15680         * css/csshelper.h: Removed.
15681         * css/CSSHelper.cpp: Copied from css/csshelper.cpp.
15682         * css/CSSHelper.h: Copied from css/csshelper.h.
15683         * css/cssparser.cpp: Removed.
15684         * css/cssparser.h: Removed.
15685         * css/CSSParser.cpp: Copied from css/cssparser.cpp.
15686         * css/CSSParser.h: Copied from css/cssparser.h.
15687         * css/cssstyleselector.cpp: Removed.
15688         * css/cssstyleselector.h: Removed.
15689         * css/CSSStyleSelector.cpp: Copied from css/cssstyleselector.cpp.
15690         * css/CSSStyleSelector.h: Copied from css/cssstyleselector.h.
15691         * dom/Document.cpp:
15692         * dom/Element.cpp:
15693         * dom/StyledElement.cpp:
15694         * editing/ApplyStyleCommand.cpp:
15695         * editing/markup.cpp:
15696         * html/CanvasGradient.cpp:
15697         * html/CanvasRenderingContext2D.cpp:
15698         * html/CanvasStyle.cpp:
15699         * html/HTMLAnchorElement.cpp:
15700         * html/HTMLBaseElement.cpp:
15701         * html/HTMLBodyElement.cpp:
15702         * html/HTMLDocument.cpp:
15703         * html/HTMLEmbedElement.cpp:
15704         * html/HTMLFormElement.cpp:
15705         * html/HTMLFrameElementBase.cpp:
15706         * html/HTMLImageElement.cpp:
15707         * html/HTMLImageLoader.cpp:
15708         * html/HTMLLinkElement.cpp:
15709         * html/HTMLObjectElement.cpp:
15710         * html/HTMLOptGroupElement.cpp:
15711         * html/HTMLOptionElement.cpp:
15712         * html/HTMLSelectElement.cpp:
15713         * html/HTMLTableElement.cpp:
15714         * html/HTMLTablePartElement.cpp:
15715         * html/HTMLTokenizer.cpp:
15716         * ksvg2/css/SVGCSSParser.cpp:
15717         * ksvg2/css/SVGCSSStyleSelector.cpp:
15718         * ksvg2/svg/SVGAElement.cpp:
15719         * ksvg2/svg/SVGClipPathElement.cpp:
15720         * ksvg2/svg/SVGGradientElement.cpp:
15721         * ksvg2/svg/SVGLength.cpp:
15722         * ksvg2/svg/SVGMaskElement.cpp:
15723         * ksvg2/svg/SVGStyledElement.cpp:
15724         * ksvg2/svg/SVGUseElement.cpp:
15725         * page/DOMWindow.cpp:
15726         * page/mac/FrameMac.mm:
15727         * page/mac/WebCoreFrameBridge.mm:
15728         * rendering/HitTestResult.cpp:
15729         * rendering/RenderObject.cpp:
15730         * rendering/RenderStyle.cpp:
15731         * rendering/RenderThemeMac.mm:
15733 2007-07-18  Brady Eidson  <beidson@apple.com>
15735         Rubberstamped by Adam
15737         * platform/win/SharedBufferWin.cpp:
15738         (WebCore::SharedBuffer::createWithContentsOfFile): Correct license on this newly checked in file from yesterday
15740 2007-07-18  Maciej Stachowiak  <mjs@apple.com>
15742         Reviewed by Oliver.
15744         - fixed <rdar://problem/5340603> REGRESSION: javascript being written to the screen in Safari
15746         Test Case: fast/tokenizer/badscript.html
15747         
15748         * html/HTMLTokenizer.cpp:
15749         (WebCore::HTMLTokenizer::parseTag): Don't apply our self-closing
15750         <script> quirk in cases where the / appears in a mangled attribtue
15751         value.
15753 2007-07-17  Peter Kasting  <zerodpx@gmail.com>
15755         Reviewed by Hyatt.
15757         http://bugs.webkit.org/show_bug.cgi?id=13618
15758         Don't set link targets to "_blank" on middle-click; rely on the policy
15759         delegate to do the right thing.
15761         * html/HTMLAnchorElement.cpp:
15762         (WebCore::HTMLAnchorElement::defaultEventHandler):
15764 2007-07-17  Oliver Hunt  <oliver@apple.com>
15766         Reviewed by Maciej.
15768         Fix for <rdar://problem/4799967> Safari and other WebKit 
15769         apps sometimes crash in WebCore::FontData::platformInit
15771         Always retain/release our font handle, instead of only retaining
15772         in the presence of GC.
15774         * platform/mac/FontPlatformData.h:
15775         (WebCore::FontPlatformData::FontPlatformData):
15776         (WebCore::FontPlatformData::~FontPlatformData):
15778 2007-07-17  Sam Weinig  <sam@webkit.org>
15780         Reviewed by Geoff Garen.
15782         Fix for <rdar://problem/5333957>
15783                 http://bugs.webkit.org/show_bug.cgi?id=14610
15785         Original patch by Feng Qian.
15787         - Clear the selection object when disconnecting a frame.
15789         Test: http/tests/security/cross-frame-access-selection.html
15791         * loader/FrameLoader.cpp:
15792         (WebCore::FrameLoader::clear):
15793         * page/DOMWindow.cpp:
15794         (WebCore::DOMWindow::disconnectFrame):
15795         (WebCore::DOMWindow::clear):
15796         * page/DOMWindow.h:
15797         * page/Frame.cpp:
15798         (WebCore::Frame::clearScriptProxy):
15799         (WebCore::Frame::clearDOMWindow):
15800         * page/Frame.h:
15802 2007-07-17  Oliver Hunt  <oliver@apple.com>
15804         Reviewed by Sam.
15806         Fix for <rdar://problem/5154518> REGRESSION: Hitting return does
15807         nothing in ruby terminal at http://tryruby.hobix.com/
15809         Calling event.preventDefault() during a keydown event should not 
15810         prevent the keypress event from firing.
15812         * WebCore.xcodeproj/project.pbxproj:
15813         * page/EventHandler.cpp:
15814         (WebCore::EventHandler::keyEvent):
15815         (WebCore::EventHandler::defaultKeyboardEventHandler):
15817 2007-07-17  Anders Carlsson  <andersca@apple.com>
15819         Reviewed by Geoff.
15821         <rdar://problem/4993463> 
15822         http://bugs.webkit.org/show_bug.cgi?id=12732
15823         REGRESSION: Comments fields on ircimages not showing up in nightly
15825         Postpone setting the frame name to just right before we request the frame. Otherwise, 
15826         two calls to FrameTree::uniqueChildName will return the same frame name and in that case only
15827         one Frame object will actually be created and multiple iframe elements will refer to it.
15828         
15829         * html/HTMLFrameElementBase.cpp:
15830         (WebCore::HTMLFrameElementBase::openURL):
15831         (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
15832         (WebCore::HTMLFrameElementBase::setNameAndOpenURLCallback):
15833         (WebCore::HTMLFrameElementBase::insertedIntoDocument):
15834         (WebCore::HTMLFrameElementBase::attach):
15835         * html/HTMLFrameElementBase.h:
15837 2007-07-17  Brady Eidson  <beidson@apple.com>
15839         Reviewed by Steve
15841         Required for <rdar://problem/4516185> - FTP Directory Listings
15843         * WebCore.vcproj/WebCore.vcproj: Added SharedBufferWin
15844         
15845         * platform/SharedBuffer.cpp: Windows doesn't get the default empty resource anymore
15846         * platform/win/SharedBufferWin.cpp: Added.
15847         (WebCore::SharedBuffer::createWithContentsOfFile):
15849 2007-07-17  Brady Eidson  <beidson@apple.com>
15851         Reviewed by Tim Hatcher
15853         Tweak the class names we give to the icon table cell to make it easier to style
15855         * loader/FTPDirectoryDocument.cpp:
15856           (WebCore::FTPDirectoryTokenizer::appendEntry): The the table cell a "IconCell" class name and
15857           either a "FileType" or "DirectoryType" class name depending on the type
15859 2007-07-17  Holger Hans Peter Freyther  <zecke@selfish.org>
15861         Reviewed by NOBODY.
15863         Build fix after r24366 add an additional ResourceRequest parameter to
15864         the download method.
15866         * loader/gdk/FrameLoaderClientGdk.cpp:
15867         (WebCore::FrameLoaderClientGdk::download):
15868         * loader/gdk/FrameLoaderClientGdk.h:
15870 2007-07-17  Adam Roben  <aroben@apple.com>
15872         Fix Bug 14324: Cannot remove/customize the "Inspect Element" contextual menu item
15873         http://bugs.webkit.org/show_bug.cgi?id=14324
15875         Reviewed by Tim.
15877         No regression test possible.
15879         * page/ContextMenuController.cpp:
15880         (WebCore::ContextMenuController::handleContextMenuEvent): Add the
15881         Inspect Element item to the menu before passing it to the
15882         ContextMenuClient so that the UI delegate has a chance to
15883         modify/remove the item.
15885 2007-07-17  Adam Roben  <aroben@apple.com>
15887         Remove ContextMenuClient::shouldIncludeInspectElementItem
15889         Reviewed by Tim.
15891         No regression test possible.
15893         * page/ContextMenuClient.h:
15894         * page/ContextMenuController.cpp:
15895         (WebCore::ContextMenuController::handleContextMenuEvent): Use Settings
15896         to determine whether to include the Inspect Element item.
15897         * page/gdk/ContextMenuClientGdk.cpp:
15898         * page/gdk/ContextMenuClientGdk.h:
15899         * platform/graphics/svg/SVGImageEmptyClients.h:
15901 2007-07-17  Adam Roben  <aroben@apple.com>
15903         Initialize ContextMenuController::m_page
15905         Somehow this variable had never been initialized before.
15907         Reviewed by Tim.
15909         * page/ContextMenuController.cpp:
15910         (WebCore::ContextMenuController::ContextMenuController):
15911         * page/ContextMenuController.h:
15912         * page/Page.cpp:
15913         (WebCore::Page::Page):
15915 2007-07-17  Adam Roben  <aroben@apple.com>
15917         Add Settings::developerExtrasEnabled
15919         Reviewed by Tim.
15921         * WebCore.exp:
15922         * page/Settings.cpp:
15923         * page/Settings.h:
15925 2007-07-17  Justin Garcia  <justin.garcia@apple.com>
15927         Reviewed by Antti.
15929         <rdar://problem/5206311> 
15930         Whitespace can't be removed when editing text pasted into from web page
15931         
15932         The whitespace comes from table rows that aren't being removed after they are
15933         emptied out during a deletion.
15935         * editing/DeleteSelectionCommand.cpp:
15936         (WebCore::isTableCell):
15937         (WebCore::isTableRow):
15938         (WebCore::isTableCellEmpty):
15939         (WebCore::isTableRowEmpty):
15940         (WebCore::DeleteSelectionCommand::initializePositionData): Remember the table
15941         rows that contained the start and end of the selection.
15942         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
15943         Remove table rows that come before the end of the selection
15944         that was removed (except for the row that contained the start of the selection
15945         and any before that).
15946         Remove table rows that are come after the start of the selection
15947         that was removed (except for the row that contained the end of the selection
15948         and any after that).
15949         (WebCore::DeleteSelectionCommand::doApply): Call the new function.
15950         * editing/DeleteSelectionCommand.h:
15952 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
15954         Reviewed by Kevin Decker.
15956         Removed ASSERT that was breaking the pageout test. It's trivial to
15957         reproduce this ASSERT when navigating between pages that change their
15958         names, but nothing bad seems to happen.
15960         * page/Page.cpp:
15961         (WebCore::Page::goToItem):
15963 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
15965         Build fix.
15966         
15967         * plugins/win/PluginViewWin.cpp: Pass false for lockHistory like we
15968         do elsewhere.
15970 2007-07-17  Holger Hans Peter Freyther  <zecke@selfish.org>
15972         Reviewed by Maciej.
15974         Implement the callback responsible for handling HTTP headers. This
15975         callback gets called for every header.
15976         We will add these headers to our ResourceResponse and on the 'end-of-header'
15977         indicator we will update the ResourceResponse and dispatch it.
15979         This patch adds various set methods to ResourceResponse. This improves
15980         the readability of the headerCallback and avoids storing a CURL handle inside
15981         the ResourceResponse which would be needed to implement ResourceResponse::doUpdateResourceResponse
15983         Add a destructor for ResourceHandleManager which would free the resources and remove
15984         a unused variable.
15986         * platform/network/ResourceHandleInternal.h:
15987         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
15988         * platform/network/ResourceResponse.cpp:
15989         (WebCore::ResourceResponse::setUrl):
15990         (WebCore::ResourceResponse::setMimeType):
15991         (WebCore::ResourceResponse::setExpectedContentLength):
15992         (WebCore::ResourceResponse::setTextEncodingName):
15993         (WebCore::ResourceResponse::setSuggestedFilename):
15994         * platform/network/ResourceResponse.h:
15995         * platform/network/curl/ResourceHandleCurl.cpp:
15996         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
15997         * platform/network/curl/ResourceHandleManager.cpp:
15998         (WebCore::ResourceHandleManager::~ResourceHandleManager):
15999         (WebCore::ResourceHandleManager::sharedInstance):
16000         (WebCore::headerCallback):
16001         * platform/network/curl/ResourceHandleManager.h:
16003 2007-07-17  Sam Weinig  <sam@webkit.org>
16005         Reviewed by Adam Roben.
16007         Convert JS undefined to the empty string when calling alert, confirm, and prompt. 
16009         Test: fast/dom/Window/alert-undefined.html
16011         * page/DOMWindow.idl:
16013 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
16015         Reviewed by Kevin McCulough.
16017         Fixed failing layout test.
16018         
16019         Renamed "FrameLoadTypeInternal" to "FrameLoadTypeRedirectWithLockedHistory".
16020         This is almost certainly not a correct name for the original intent
16021         of this load type, but it's a correct name for its current behavior.
16022         
16023         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
16024         When history is supposed to be locked, and no current history item
16025         exists, only add a new history item if you're the top-level frame.
16026         
16027         This rule, combined with the rule that setting iframe.src should not
16028         create a history item, is pretty hackish. On the other hand, it
16029         matches WinIE and doesn't cause any test regressions. So I'm OK with
16030         it as a short-term solution until the solution described in 
16031         <rdar://problem/5339292> can be implemented.
16033 2007-07-17  Tristan O'Tierney  <tristan@apple.com>
16035         Reviewed by Maciej Stachowiak.
16037         <rdar://problem/5294691> Source of file is misrepresented if downloaded by typing in URL in Safari address bar
16039         * loader/FrameLoaderClient.h:
16040         * loader/MainResourceLoader.cpp:        
16041         (WebCore::MainResourceLoader::continueAfterContentPolicy):
16042         Added an extra request parameter, initialRequest, to the download() method
16043         by passing up the resource handle's request.
16044         
16045         * platform/graphics/svg/SVGImageEmptyClients.h:
16046         (WebCore::SVGEmptyFrameLoaderClient::download):
16047         Added an extra parameter to the empty SVG download method.
16048         
16049 2007-07-17  Antti  <antti@apple.com>
16051         Reviewed by home-bradee.
16053         <rdar://problem/5336372>
16054         Icon database uses too much memory
16055         
16056         XRaying Safari startup memory consumption revealed that icon database is eating quite
16057         a bit of RAM if Icon.db is large (which it probably is if it has been in use for a while, 
16058         mine used for getting figures below was 2.6MB). 
16059         
16060         Note that the wins are less impressive with smaller Icon.db.
16061         
16062         This patch addresses three separate issues
16063         
16064         - SQLite fails to free the memory used by temporary tables. Icon database uses a temporary table
16065           on startup for pruning unused page urls. This wastes around 1MB. Addressed by rewriting
16066           pruning so it does not need a temporary table. The new method is also quite a bit faster speeding
16067           up Safari launch time by around 100ms
16068         - SQLite has it's own memory cache limited by default to 3MB. Icon database does not really need that much.
16069           Dropped the cache size to 300kB saving ~1MB on startup. 
16070           Smaller cache slows down startup by ~30ms (more than compensated by faster pruning above)
16071         - Don't populate m_pageURLToIconURLMap with all urls from database on startup, instead let it get populated
16072           when urls are accessed (user opens history menu for example). This shouldn't have any real performance impact 
16073           as the accesses are icon loads that need to hit the database anyway. This saves ~700kB.
16074           
16075         All in all with this Icon.db these changes reduce allocated memory by around 2.7MB on startup. Release build
16076         Safari RPRVT (empty start page) goes from 12.4MB to 10.4MB (TCMalloc pooling probably explaining why the win 
16077         looks bit smaller here).
16079         * loader/icon/IconDatabase.cpp:
16080         (WebCore::IconDatabase::IconDatabase):
16081         (WebCore::IconDatabase::open):
16082         (WebCore::IconDatabase::deleteAllPreparedStatements):
16083         (WebCore::IconDatabase::retainIconForPageURL):
16084         (WebCore::IconDatabase::releaseIconForPageURL):
16085         (WebCore::IconDatabase::establishIconIDForIconURL):
16086         (WebCore::IconDatabase::pruneUnretainedIconsOnStartup):
16087         * loader/icon/IconDatabase.h:
16089 2007-07-17  Darin Adler  <darin@apple.com>
16091         Reviewed by Mitz.
16093         - fix http://bugs.webkit.org/show_bug.cgi?id=14569
16094           Repro crash due to saved state not being cleared when select and textarea elements
16095           are adopted by another document
16097         Test: fast/forms/saved-state-adoptNode-crash.html
16099         * dom/Document.h:
16100         (WebCore::Document::registerFormElementWithState): Updated parameter type to be
16101         HTMLFormControlElementWithState.
16102         (WebCore::Document::unregisterFormElementWithState): Ditto.
16103         Also removed isFormElementRegistered function and changed the type of the
16104         m_formElementsWithState ListHashSet.
16105         * dom/Document.cpp: (WebCore::Document::formElementsState): Updated to use new type,
16106         for set contents and to use new saveState() function and only save state for elements
16107         that return true.
16109         * html/HTMLGenericFormElement.h: Added HTMLFormControlElementWithState class,
16110         derived from HTMLGenericFormElement, and moved down all the behavior related to
16111         saving form control element state. Also removed the unnecessary default parameter
16112         to the HTMLGenericFormElement constructor.
16113         * html/HTMLGenericFormElement.cpp:
16114         (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState): Added.
16115         Calls registerFormElementWithState.
16116         (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState): Added.
16117         Calls unregisterFormElementWithState.
16118         (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument): Added.
16119         Calls unregisterFormElementWithState.
16120         (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument): Added.
16121         Calls registerFormElementWithState.
16122         (WebCore::HTMLFormControlElementWithState::closeRenderer): Moved to this class from
16123         the base class.
16125         * html/HTMLInputElement.h: Updated the base class name and overrode saveState instead
16126         of stateValue.
16127         * html/HTMLInputElement.cpp: Updated the base class name.
16128         (WebCore::HTMLInputElement::init): Removed the call to registerFormElementWithState.
16129         (WebCore::HTMLInputElement::~HTMLInputElement): Removed the call to
16130         unregisterFormElementWithState. Also changed the code to only call the
16131         unregisterForDidRestoreFromCacheCallback function for type PASSWORD (consistency
16132         and efficiency).
16133         (WebCore::HTMLInputElement::setInputType): Removed calls to registerFormElementWithState
16134         and unregisterFormElementWithState; we now let the element stay registered and simply
16135         don't save or restore state for password fields.
16136         (WebCore::HTMLInputElement::saveState): Updated function name and signature to replace
16137         the old stateValue function. Returns false for password fields.
16138         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Removed the call to
16139         unregisterFormElementWithState.
16140         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Removed the call to
16141         registerFormElementWithState.
16143         * html/HTMLSelectElement.h: Updated the base class name and overrode saveState instead
16144         of stateValue.
16145         * html/HTMLSelectElement.cpp: Updated the base class name.
16146         (WebCore::HTMLSelectElement::HTMLSelectElement): Removed the call to
16147         registerFormElementWithState.
16148         (WebCore::HTMLSelectElement::~HTMLSelectElement): Removed the call to
16149         unregisterFormElementWithState.
16150         (WebCore::HTMLSelectElement::saveState): Updated function name and signature to
16151         replace the old stateValue function.
16152         (WebCore::HTMLSelectElement::setLength): Updated to use document() instead of
16153         ownerDocument(); the latter is just a slower virtual-function way of doing the
16154         same thing in all cases except for Document and XPathNamespace.
16156         * html/HTMLTextAreaElement.h: Update the base class name, overrode saveState instead
16157         of stateValue, and removed the now-unnecessary explicit destructor.
16158         * html/HTMLTextAreaElement.cpp: Updated the base class name.
16159         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Removed the call to
16160         registerFormElementWithState.
16161         (WebCore::HTMLTextAreaElement::saveState): Updated function name and signature to replace
16162         the old stateValue function.
16164 2007-07-17  Sam Weinig  <sam@webkit.org>
16166         Reviewed by Darin.
16168         - Make HTMLFrameOwnerElement::contentWindow() return a DOMWindow instead of a Frame
16169         - Remove the unnecessary hack in HTMLFrameElement.idl and HTMLIFrameElement.idl that
16170           converted from Frame to Window now that it is not necessary.
16171         - Remove now unused [NullCheck] extended attribute from CodeGeneratorJS.pm.
16173         * bindings/scripts/CodeGeneratorJS.pm:
16174         * html/HTMLDocument.idl:
16175         * html/HTMLFrameElement.idl:
16176         * html/HTMLFrameOwnerElement.cpp:
16177         (WebCore::HTMLFrameOwnerElement::contentWindow):
16178         * html/HTMLFrameOwnerElement.h:
16179         * html/HTMLIFrameElement.idl:
16181 2007-07-16  Sam Weinig  <sam@webkit.org>
16183         Reviewed by Adam Roben.
16185         Move self, opener, parent, top, window, and frames from kjs_window
16186         to DOMWindow and auto-generate the bindings for them.
16188         * bindings/js/kjs_window.cpp:
16189         (KJS::Window::getValueProperty):
16190         * bindings/js/kjs_window.h:
16191         (KJS::Window::):
16192         * page/DOMWindow.cpp:
16193         (WebCore::DOMWindow::self):
16194         (WebCore::DOMWindow::opener):
16195         (WebCore::DOMWindow::parent):
16196         (WebCore::DOMWindow::top):
16197         * page/DOMWindow.h:
16198         (WebCore::DOMWindow::window):
16199         (WebCore::DOMWindow::frames):
16200         * page/DOMWindow.idl:
16202 2007-07-16  Geoffrey Garen  <ggaren@apple.com>
16204         Reviewed by Sam Weinig.
16205         
16206         Fixed <rdar://problem/5334483> REGRESSION: JavaScript-induced 
16207         window.open loads not added to back/forward list
16208         
16209         I did an audit of our history rules in loading and tried to establish
16210         some sane uniformity.
16211         
16212         The uniform rule is:
16213             - HTTP redirects and HTTP redirects simulated by <meta http-equiv>
16214             add a history item if and only if the redirect takes > 1 second.
16215             - Other navigations, including JavaScript navigations, always
16216             add a history item, except for location.replace navigations.
16218         In the future, we'll want to refine the second case to be more like the
16219         first. I've filed <rdar://problem/5339292> about that.
16221         * bindings/js/JSHTMLDocumentCustom.cpp:
16222         (WebCore::JSHTMLDocument::setLocation): Don't pass 'true' for 
16223         userGesture unconditionally. userGesture is used to determine popup 
16224         blocking, not history item creation.
16226         * bindings/js/kjs_window.cpp: Pass 'false' for lockHistory in all loads
16227         except location.replace, which intends to lock history.
16229         * loader/FrameLoader.cpp: Distinguish between lockHistory and 
16230         userGesture. The former determines whether a new history item gets
16231         created. The latter determines whether JavaScript can open popup
16232         windows. Start passing these variables in functions that used to
16233         swallow or conflate them.
16234         
16235         (WebCore::FrameLoader::requestFrame): Pass 'true' for lockHistory here
16236         because that's usually correct when setting the 'src' attribute of a
16237         child frame, and we want to avoid regressing <rdar://problem/4921797>.
16239         (WebCore::FrameLoader::load): Use the lockHistory variable to determine
16240         whether to start a history-creating load. Using userGesture for this
16241         purpose is wrong, as explained above.
16243         * loader/FrameLoader.h: Renamed one variant of scheduleRedirection to
16244         scheduleHTTPRedirection because the behavior there of measuring elapsed
16245         time is specific to the HTTP redirection case.
16247         * page/ContextMenuController.cpp:
16248         (WebCore::ContextMenuController::contextMenuItemSelected): lockHistory
16249         can always be false here because this navigation is never the result of
16250         a redirection.
16252 2007-07-16  Sam Weinig  <sam@webkit.org>
16254         Reviewed by Adam and Maciej.
16256         Move the frameElement attribute from kjs_window to DOMWindow and
16257         auto-generate the bindings for it. 
16259         * bindings/js/kjs_window.cpp:
16260         (KJS::Window::getValueProperty):
16261         * bindings/js/kjs_window.h:
16262         (KJS::Window::):
16263         * bindings/scripts/CodeGeneratorJS.pm:
16264         * page/DOMWindow.cpp:
16265         (WebCore::DOMWindow::frameElement):
16266         (WebCore::DOMWindow::devicePixelRatio):
16267         * page/DOMWindow.h:
16268         * page/DOMWindow.idl:
16270 2007-07-16  Sam Weinig  <sam@webkit.org>
16272         Reviewed by Adam.
16274         Move more functions from kjs_window to DOMWindow and auto-generate
16275         the bindings for them.
16277         * bindings/js/kjs_window.cpp:
16278         (KJS::WindowFunc::callAsFunction):
16279         * bindings/js/kjs_window.h:
16280         (KJS::Window::):
16281         * page/DOMWindow.cpp:
16282         (WebCore::DOMWindow::print):
16283         (WebCore::DOMWindow::stop):
16284         (WebCore::DOMWindow::alert):
16285         (WebCore::DOMWindow::confirm):
16286         (WebCore::DOMWindow::prompt):
16287         (WebCore::DOMWindow::find):
16288         * page/DOMWindow.h:
16289         * page/DOMWindow.idl:
16291 2007-07-17  Mark Rowe  <mrowe@apple.com>
16293         Gdk build fix.
16295         * platform/gdk/ChromeClientGdk.h:
16297 2007-07-16  Brady Eidson  <beidson@apple.com>
16299         Reviewed by Adam
16301         Begin the arduous task of localizing FTP directory listings while removing a global initializer!
16303         * loader/FTPDirectoryDocument.cpp:
16304         (WebCore::processFilesizeString):
16306         * page/mac/WebCoreViewFactory.h:
16308         * platform/LocalizedStrings.h:
16310         * platform/gdk/TemporaryLinkStubs.cpp:
16311         (WebCore::unknownFileSizeText):
16313         * platform/mac/LocalizedStringsMac.mm:
16314         (WebCore::unknownFileSizeText):
16316         * platform/qt/Localizations.cpp:
16317         (WebCore::unknownFileSizeText):
16319 2007-07-16  Sam Weinig  <sam@webkit.org>
16321         Reviewed by Oliver.
16323         Remove more redundant isSafeScript checks.
16325         * bindings/js/kjs_window.cpp:
16326         (KJS::Window::getOwnPropertySlot):
16328 2007-07-16  Sam Weinig  <sam@webkit.org>
16330         Reviewed by Oliver.
16332         Turn off -Wshorten-64-to-32 warning for 64-bit builds.
16334         * Configurations/Base.xcconfig:
16336 2007-07-16  Anders Carlsson  <andersca@apple.com>
16338         Reviewed by Oliver.
16340         <rdar://problem/5336276>
16341         ASSERT(cs->accessCount() > 0) when instantiating widget templates in DashCode
16343         If the cache is disabled, accessCount will always be 0. Account for this in the assert.
16344         
16345         * html/HTMLTokenizer.cpp:
16346         (WebCore::HTMLTokenizer::reset):
16347         (WebCore::HTMLTokenizer::notifyFinished):
16349 2007-07-16  Brady Eidson  <beidson@apple.com>
16351         Reviewed by Darin.
16353         Append FTP row entries to the first TBODY instead of the TABLE element itself, 
16354         as many TABLE elements end up with an implicit TBODY and that's where most people would
16355         expect it to be added.
16357         * html/HTMLTableElement.h:
16358         (WebCore::HTMLTableElement::firstTBody): Added this accessor
16360         * loader/FTPDirectoryDocument.cpp:
16361         (WebCore::FTPDirectoryTokenizer::appendEntry): Add to the first tbody if it exists
16363 2007-07-16  Justin Garcia  <justin.garcia@apple.com>
16365         Reviewed by Adele.
16367         <rdar://problem/5240265> 
16368         REGRESSION: Clicking a <button> clears the selection in contenteditable areas
16370         * page/FocusController.cpp:
16371         (WebCore::clearSelectionIfNeeded): Don't clear the selection if
16372         the mouse press that caused the focus shift occurred in 
16373         a -webkit-user-select: ignore region.
16375 2007-07-16  David Hyatt  <hyatt@apple.com>
16377         Fix for 5335829, avoid creating a pathological # of FontData objects
16378         on Windows.  The MLang service actually caches and reuses HFONTs, which
16379         means it is safe to use our FontPlatformData -> FontData cache.
16381         Reviewed by olliej
16383         * platform/win/FontCacheWin.cpp:
16384         (WebCore::FontCache::getFontDataForCharacters):
16386 2007-07-16  Adam Roben  <aroben@apple.com>
16388         Added a manual test to test calling window.print on a subframe.
16390         Reviewed by Darin.
16392         * manual-tests/resources/print-subframe.html: Added.
16393         * manual-tests/window-print-subframe.html: Added.
16395 2007-07-16  Adam Roben  <aroben@apple.com>
16397         Replace Frame::print with Chrome::print
16399         This also adds a Frame* parameter to Chrome::print and
16400         ChromeClient::print so that it knows which Frame to print.
16402         Reviewed by Darin.
16404         All tests pass.
16406         * bindings/js/kjs_window.cpp:
16407         (KJS::WindowFunc::callAsFunction): Call Chrome::print.
16408         * editing/JSEditor.cpp: Ditto.
16410         * bridge/win/FrameWin.cpp: Removed Frame::print.
16411         * page/Frame.h: Ditto.
16412         * page/mac/FrameMac.mm: Ditto.
16413         * page/qt/FrameQt.cpp: Ditto.
16414         * platform/gdk/FrameGdk.cpp: Ditto.
16415         * page/mac/WebCoreFrameBridge.h: Removed -print.
16417         * page/Chrome.cpp: Added Frame* parameter to Chrome::print and pass it
16418         up to the ChromeClient.
16419         * page/Chrome.h: Ditto.
16420         * page/ChromeClient.h: Ditto.
16421         * platform/gdk/TemporaryLinkStubs.cpp: Ditto.
16422         * platform/graphics/svg/SVGImageEmptyClients.h: Ditto.
16424 2007-07-16  Adele Peterson  <adele@apple.com>
16426         Reviewed by Brady.
16428         Fix for <rdar://problem/5321490> REGRESSION: visibility:hidden property doesn't hide parts of file input element and listbox
16429         http://bugs.webkit.org/show_bug.cgi?id=14565
16431         Tests:
16432         fast/forms/hidden-input-file.html
16433         fast/forms/hidden-listbox.html
16435         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject):
16436         Only paint if the control is supposed to be visible.
16437         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
16438         ditto.  We already had checks to prevent drawing the text that considered the option's style too, but if visibility: hidden
16439         was just set on the listbox then a lot of extra work was being done, and the scrollbar was drawing too.  This change fixes that.
16441 2007-07-16  David Hyatt  <hyatt@apple.com>
16443         Fix for Radar 5338081, text-shadow should be reset on form controls so that
16444         it doesn't inherit in when set e.g., on the <body>.
16446         Reviewed by beth
16448         * css/html4.css:
16450 2007-07-16  Holger Hans Peter Freyther  <zecke@selfish.org>
16452         Reviewed by Niko.
16454         FrameView, PlatformScrollbar and changes to the way we draw
16456         Fix the lifetime of PlatformScrollbar, use a default width and
16457         height and fix drawing of the PlatformScrollbar and other widgets
16458         the following way: FrameGdk handles the expose events of the Frame
16459         and will make the frame redraw and now it will draw the childrent of
16460         the FrameView as well. This approach has the issue of honoring the
16461         z-order of elements inside the RenderTree. Honoring the z-order will
16462         be a bit more work
16464         Widget can now handle Widget::setGtkWidget call where the GtkWidget
16465         has not yet a GdkWindow allocated. We will lazily set the GdkDrawable.
16467         In preparation of honoring the z-order of the RenderTree for RenderWidgets
16468         it is started to store native objects inside the GraphicsContext. Doing this
16469         nicely eliminates the need of RenderThemeGdk to do any drawing to a temporary
16470         GdkPixmap. This should fix themes with rounded buttons.
16472         ScrollView implement add- and removeChild to get a working PlatformScrollbar
16475         * platform/Widget.h:
16476         * platform/gdk/FrameGdk.cpp:
16477         (frame_gdk_expose_child): Will send the expose to all children
16478         (WebCore::FrameGdk::handleGdkEvent): Painting changes, move to mouseMoved
16479         * platform/gdk/PlatformScreenGdk.cpp:
16480         (WebCore::screenDepth): gdkDrawable
16481         * platform/gdk/PlatformScrollBarGdk.cpp:
16482         (PlatformScrollbar::PlatformScrollbar): Fix ownership
16483         (PlatformScrollbar::~PlatformScrollbar): Fix ownership
16484         (PlatformScrollbar::paint): Widget::paint will do the right thing soon
16485         * platform/gdk/RenderThemeGdk.cpp: No need for using a GdkPixmap, draw directly
16486         (WebCore::RenderThemeGdk::paintCheckbox): No need for using a GdkPixmap, draw directly
16487         (WebCore::RenderThemeGdk::paintRadio): No need for using a GdkPixmap, draw directly
16488         (WebCore::RenderThemeGdk::paintButton): No need for using a GdkPixmap, draw directly
16489         * platform/gdk/RenderThemeGdk.h: remove the copyContext call
16490         * platform/gdk/ScrollViewGdk.cpp: gdkDrawable
16491         (WebCore::ScrollView::updateView): gdkDrawable
16492         (WebCore::ScrollView::update): clear the area to fix repainting issues
16493         (WebCore::ScrollView::setGtkWidget): gdkDrawable
16494         (WebCore::ScrollView::addChild): implement
16495         (WebCore::ScrollView::removeChild): implement
16496         * platform/gdk/TemporaryLinkStubs.cpp: Not needed header removed
16497         * platform/gdk/WidgetGdk.cpp:
16498         (WebCore::Widget::gdkDrawable): Renamed from drawable
16499         (WebCore::Widget::setGtkWidget): use gdkDrawable
16500         (WebCore::Widget::setCursor): gdkDrawable
16501         (WebCore::Widget::show): gdkDrawable
16502         (WebCore::Widget::hide): gdkDrawable
16503         * platform/graphics/GraphicsContext.h: Allow to set the GdkDrawable, e.g. used inside a expose event
16504         * platform/graphics/cairo/GraphicsContextCairo.cpp:
16505         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
16506         (WebCore::GraphicsContext::setGdkDrawable):
16507         (WebCore::GraphicsContext::gdkDrawable):
16509 2007-07-16  Holger Hans Peter Freyther  <zecke@selfish.org>
16511         Reviewed by Maciej.
16513         Lazily update the scrollbars (e.g. on loading a page) to
16514         generate less expose events, which will lead to laying out less often
16515          and will fix http://bugs.webkit.org/show_bug.cgi?id=14020.
16517         * platform/gdk/ScrollViewGdk.cpp:
16518         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
16519         (WebCore::ScrollView::update):
16520         (WebCore::ScrollView::resizeContents):
16521         (WebCore::ScrollView::updateScrollbars):
16523 2007-07-16  Rob Buis  <buis@kde.org>
16525         Reviewed by Maciej.
16527         http://bugs.webkit.org/show_bug.cgi?id=14462
16528         non empty <style> element doesn't work
16530         Return an empty sheet for empty <style> elements
16531         instead of a null sheet. Clean up StyleElement a bit.
16533         * dom/StyleElement.cpp:
16534         (WebCore::StyleElement::StyleElement):
16535         (WebCore::StyleElement::sheet):
16536         (WebCore::StyleElement::childrenChanged):
16537         (WebCore::StyleElement::createSheet):
16538         * dom/StyleElement.h:
16539         (WebCore::StyleElement::setLoading):
16540         * html/HTMLStyleElement.cpp:
16541         (WebCore::HTMLStyleElement::HTMLStyleElement):
16542         (WebCore::HTMLStyleElement::sheet):
16543         * html/HTMLStyleElement.h:
16544         (WebCore::HTMLStyleElement::setLoading):
16545         * ksvg2/svg/SVGStyleElement.cpp:
16546         (WebCore::SVGStyleElement::sheet):
16547         (WebCore::SVGStyleElement::sheetLoaded):
16548         * ksvg2/svg/SVGStyleElement.h:
16550 2007-07-15  Oliver Hunt  <oliver@apple.com>
16552         Reviewed by Adam.
16554         Fix for fix for <rdar://problem/5336602> REGRESSION: tab characters
16555                         cannot be entered into text fields
16556                         http://bugs.webkit.org/show_bug.cgi?id=14032
16558         Need to use UChar not char.
16560         * html/HTMLInputElement.cpp:
16561         (WebCore::HTMLInputElement::constrainValue):
16563 2007-07-15  Sam Weinig  <sam@webkit.org>
16565         Reviewed by Geoff Garen.
16567         Remove redundant calls to isSafeScript()
16569         * bindings/js/JSDOMWindowCustom.cpp:
16570         (WebCore::JSDOMWindow::customPut):
16571         * bindings/js/kjs_window.cpp:
16572         (KJS::Window::put):
16574 2007-07-15  Geoffrey Garen  <ggaren@apple.com>
16576         Reviewed by Maciej Stachowiak.
16577         
16578         Removed incorrect error log, seen while running layout tests.
16579         
16580         Perhaps at some point FrameLoadTypeInteral had a specific meaning
16581         that prevented it from being used in non-child frame, non-redirect
16582         situations. However, that meaning has been lost and nobody remembers
16583         how to get it back.
16584         
16585         We currently use FrameLoadTypeInternal for any load that is not
16586         initiated by a user gesture, so it's trivial to produce this error
16587         log, even though nothing has gone wrong.
16589         * loader/FrameLoader.cpp:
16590         (WebCore::FrameLoader::updateHistoryForInternalLoad):
16592 2007-07-15  Oliver Hunt  <oliver@apple.com>
16594         Reviewed by Maciej
16596         Fix for <rdar://problem/5336602> REGRESSION: tab characters cannot be entered into text fields
16597                 http://bugs.webkit.org/show_bug.cgi?id=14032
16599         constrainValue attempted to block control characters from being inserted 
16600         by a simple less than ' ' check, which prevent tab characters from being
16601         inserted.  This patch adds an additional check to allow the tab character 
16602         again
16604         * html/HTMLInputElement.cpp:
16605         (WebCore::HTMLInputElement::constrainValue):
16607 2007-07-14  Brady Eidson  <beidson@apple.com>
16609         Third shot at blind Qt/GDK build fix
16611         * platform/gdk/TemporaryLinkStubs.cpp:
16612         (FTPDirectoryDocument::createTokenizer):
16613         * platform/qt/TemporaryLinkStubs.cpp:
16614         (FTPDirectoryDocument::createTokenizer):
16616 2007-07-14  Brady Eidson  <beidson@apple.com>
16618         Reviewed by Sam
16620         Windows build fix
16622         * WebCore.vcproj/WebCore.vcproj:
16624 2007-07-14  Sam Weinig  <sam@webkit.org>
16626         Fix Tiger build.
16628         * config.h:
16630 2007-07-14  Brady Eidson  <beidson@apple.com>
16632         Blind attempt at (hopefully) fixing the Qt and GDK builds
16634         * platform/gdk/TemporaryLinkStubs.cpp:
16635         (FTPDirectoryDocument::FTPDirectoryDocument):
16636         * platform/qt/TemporaryLinkStubs.cpp:
16637         (FTPDirectoryDocument::FTPDirectoryDocument):
16639 2007-07-14  Brady Eidson  <beidson@apple.com>
16641         Reviewed by Sam Weinig
16643         Initial check-in for <rdar://problem/3154486> - Supporting FTP directory listings in the browser
16645         Development has taken place on both Leopard and Windows (windows enabling patch will follow shortly)
16646         Support will only exist on platforms whose network layers (ie, ResourceHandle) support piping the raw
16647         FTP Directory data into the engine.  
16649         This is known to include Leopard, Windows, and CURL based platforms - probably others
16650         Known incompatible platforms include Tiger.
16652         The FTP listing page is built in HTML.  An external HTML document can be provided as a template for the 
16653         directory listing.  This document is parsed, and expected to have a <table> with a certain class in it.
16654         As FTP directory listings come in, each entry is added to this table as a row.
16656         If no HTML template is provided to work with, a very basic empty document is hard coded that contains only 
16657         this special table.
16659         Upgrades to the look and feel of the directory listings can take place largely in this HTML template which,
16660         admittedly, is conspicuously absent in this initial checkin
16662         * WebCore.exp: New Settings symbols for WebKit
16663         * WebCore.xcodeproj/project.pbxproj:
16665         * config.h: If BUILDING_ON_TIGER, disable FTP directory listing support
16667         * dom/DOMImplementation.cpp:
16668         (WebCore::DOMImplementation::createDocument): Create an FTPDirectoryDocument if the mime type is 
16669           "application/x-ftp-directory"
16671         * loader/FTPDirectoryDocument.cpp: Added.
16672         (WebCore::FTPDirectoryTokenizer::isWaitingForScripts):
16673         (WebCore::FTPDirectoryTokenizer::checkBuffer):
16674         (WebCore::FTPDirectoryTokenizer::FTPDirectoryTokenizer): Building on HTML tokenizer, this facilitates 
16675           parsing FTP Directory listings in the engine
16676         (WebCore::FTPDirectoryTokenizer::appendEntry): Add a table row for a directory listing to the document
16677         (WebCore::FTPDirectoryTokenizer::createTDForFilename): Create the TD for the filename with the anchor in it
16679         (WebCore::processFilesizeString): Prettify the filesize
16680         (WebCore::wasLastDayOfMonth):
16681         (WebCore::processFileDateString): Prettify the date
16682         (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine):
16683         (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate): Loads the HTML template that FTP directory listings
16684           can build on top of
16685         (WebCore::FTPDirectoryTokenizer::createBasicDocument): Creates a most basic document (body and one table) to
16686           append the rows to in case the document template is not loaded and parsed
16687         (WebCore::FTPDirectoryTokenizer::write): Add the FTP listing to the buffer and parse entries out of it
16688         (WebCore::FTPDirectoryTokenizer::finish): 
16690         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument): Special document-type for FTP directory listings
16691         (WebCore::FTPDirectoryDocument::createTokenizer):
16692         * loader/FTPDirectoryDocument.h: Added.
16693         (WebCore::FTPDirectoryDocument::isImageDocument):
16694         
16695         * loader/FTPDirectoryParser.cpp: Added.
16696         (WebCore::parseOneFTPLine): Adapted from ParseFTPList.cpp from Firefox - parses most known
16697           FTP directory listing styles into discrete FTP directory entries
16698         * loader/FTPDirectoryParser.h: Added.
16699         (WebCore::ListState::ListState): Maintains FTP Parser state
16700         (WebCore::ListResult::ListResult): Represents one FTP directory listing
16701         (WebCore::ListResult::clear):
16703         * loader/FrameLoader.cpp:
16704         (WebCore::FrameLoader::checkContentPolicy): If the Settings say to bypass the policy check for 
16705           "application/x-ftp-directory", skip it.  This will allow people to test this feature even if their 
16706           browser/WebKit app would otherwise not allow it
16708         * page/Settings.cpp:
16709         (WebCore::Settings::Settings):
16710         (WebCore::Settings::setFTPDirectoryTemplatePath): Set the path to the FTP listing document template
16711         (WebCore::Settings::setForceFTPDirectoryListings): Set to bypass the policy delegate check for mime type
16712           "application/x-ftp-directory"
16713         * page/Settings.h:
16714         (WebCore::Settings::ftpDirectoryTemplatePath):
16715         (WebCore::Settings::forceFTPDirectoryListings):
16717         * platform/Logging.cpp: Add an "LogFTP" logging channel
16718         * platform/Logging.h:
16719         * platform/mac/LoggingMac.mm:
16720         (WebCore::InitializeLoggingChannelsIfNecessary):
16722         * platform/MimeTypeRegistry.cpp:
16723         (WebCore::initialiseSupportedNonImageMimeTypes): Add "application/x-ftp-directory"
16725         * platform/SharedBuffer.cpp:
16726         (WebCore::SharedBuffer::createWithContentsOfFile): Stub for now
16727         * platform/SharedBuffer.h:
16729         * platform/mac/SharedBufferMac.mm:
16730         (WebCore::SharedBuffer::createWithContentsOfFile): Load contents of the file into an NSData, then
16731           wrap that NSData
16733 2007-07-14  Alexey Proskuryakov  <ap@webkit.org>
16735         Reviewed by Darin.
16737         http://bugs.webkit.org/show_bug.cgi?id=14618
16738         REGRESSION(13464): drivehq.com login form doesn't work
16740         Test: http/tests/misc/post-submit-button.html
16742         * html/HTMLInputElement.cpp:
16743         (WebCore::HTMLInputElement::appendFormData): Append a submit even if its value is empty.
16745 2007-07-13  Oliver Hunt  <oliver@apple.com>
16747         Reviewed by Sam.
16749         Fix for 
16750             <rdar://problem/5335265> REGRESSION: WebCore::DragController crashes if WebDragSourceActionDHTML cleared
16751             http://bugs.webkit.org/show_bug.cgi?id=13652
16753         Reorder logic for drag initiation: we can always preflight the clipboard, regardless as to whether 
16754         we are performing any dhtml drag handling    
16756         * page/EventHandler.cpp:
16757         (WebCore::EventHandler::handleDrag):
16759 2007-07-13  Matt Lilek  <pewtermoose@gmail.com>
16761         Reviewed by Tim Hatcher.
16763         Bug 14401: Semi-regression: Can no longer copy anything from the inspector
16764         http://bugs.webkit.org/show_bug.cgi?id=14401
16766         * page/inspector/inspector.css:
16768 2007-07-13  Beth Dakin  <bdakin@apple.com>
16770         Reviewed by Hyatt.
16772         Fix for <rdar://problem/5304742> A hang occurs when attempting to 
16773         display web clip banner at http://www.signonsandiego.com/sports/
16774         chargers/index.html
16776         Here is the actual fix. 
16777         * rendering/RenderInline.cpp:
16778         (WebCore::RenderInline::absoluteRects): Set topLevel to 
16779         false when we recurse to get our children's absoluteRects.
16780         * rendering/RenderInline.h: New boolean parameter 
16781         topLevel that defaults to true.
16782         * rendering/RenderObject.cpp:
16783         (WebCore::RenderObject::absoluteRects):
16784         * rendering/RenderObject.h:
16786         And these are just other implementations/declarations of this 
16787         (virtual) function that have to add the parameter. No behavior 
16788         change here.
16789         * rendering/RenderPath.cpp:
16790         (WebCore::RenderPath::absoluteRects):
16791         * rendering/RenderPath.h:
16792         * rendering/RenderSVGContainer.cpp:
16793         (WebCore::RenderSVGContainer::absoluteRects):
16794         * rendering/RenderSVGContainer.h:
16795         * rendering/RenderSVGHiddenContainer.cpp:
16796         (WebCore::RenderSVGHiddenContainer::absoluteRects):
16797         * rendering/RenderSVGHiddenContainer.h:
16798         * rendering/RenderSVGImage.cpp:
16799         (WebCore::RenderSVGImage::absoluteRects):
16800         * rendering/RenderSVGImage.h:
16801         * rendering/RenderSVGInlineText.cpp:
16802         (WebCore::RenderSVGInlineText::absoluteRects):
16803         * rendering/RenderSVGInlineText.h:
16804         * rendering/RenderSVGTSpan.cpp:
16805         (WebCore::RenderSVGTSpan::absoluteRects):
16806         * rendering/RenderSVGTSpan.h:
16807         * rendering/RenderSVGText.cpp:
16808         (WebCore::RenderSVGText::absoluteRects):
16809         * rendering/RenderSVGText.h:
16810         * rendering/RenderText.cpp:
16811         (WebCore::RenderText::absoluteRects):
16812         * rendering/RenderText.h:
16813         * rendering/RenderView.cpp:
16814         (WebCore::RenderView::absoluteRects):
16815         * rendering/RenderView.h:
16817 2007-07-13  Mitz Pettel  <mitz@webkit.org>
16819         Reviewed by Hyatt.
16821         - fix http://bugs.webkit.org/show_bug.cgi?id=13438 <rdar://problem/5153030>
16822               Run rounding makes word-break:break-all/word not functional
16824         Test: fast/text/word-break-run-rounding.html
16826         * rendering/RenderText.cpp:
16827         (WebCore::RenderText::calcPrefWidths): Update the maximum width only on word
16828         boundaries to avoid rounding errors.
16829         * rendering/bidi.cpp:
16830         (WebCore::RenderBlock::findNextLineBreak): Integrated breakAll with the
16831         midWordBreak/wrapW mechanism. Also made the wrapW upper bound more accurate
16832         by resetting it when tmpW is committed.
16834 2007-07-13  Sam Weinig  <sam@webkit.org>
16836         Reviewed by Geoff Garen.
16838         Patch for <rdar://problem/5318394>
16839         http site can read/write content of https site in same domain
16841         Add protocol and port checks in isSafeScript.
16843         * bindings/js/kjs_window.cpp:
16844         (KJS::Window::isSafeScript):
16846 2007-07-13  Anders Carlsson  <andersca@apple.com>
16848         Reviewed by Mitz Pettel.
16850         <rdar://problem/5298870> 
16851         REGRESSION: In Yahoo Mail modal dialog, OK and Cancel buttons do not work, and descriptive text is missing (14327)
16852         
16853         http://bugs.webkit.org/show_bug.cgi?id=14327
16854         REGRESSION (r21367): dialogArguments not set in window generated by showModalDialog
16856         When creating popup windows/dialogs, prevent the window properties from being cleared by the initial frame load.
16857         
16858         * loader/FrameLoader.cpp:
16859         (WebCore::FrameLoader::FrameLoader):
16860         (WebCore::FrameLoader::createWindow):
16861         (WebCore::FrameLoader::clear):
16862         (WebCore::FrameLoader::begin):
16863         (WebCore::FrameLoader::open):
16864         * loader/FrameLoader.h:
16865         (WebCore::FrameLoader::setShouldClearWindowProperties):
16866         * manual-tests/modal-dialog-arguments.html: Added.
16868 2007-07-13  Steve Falkenburg  <sfalken@apple.com>
16870         Update ResourceError related code to account for changes in CF interfaces.
16872         Reviewed by Darin, Ada.
16874         * platform/network/ResourceError.h: Change Mac conditionals to CF to share more code.
16875         * platform/network/cf/ResourceErrorCF.cpp:
16876         (WebCore::ResourceError::ResourceError): Modified based on CFErrorRef changes
16877         (WebCore::ResourceError::unpackPlatformError): Ported from ResourceErrorMac.mm.
16878         (WebCore::ResourceError::operator CFErrorRef): Ported from ResourceErrorMac.mm.
16879         (WebCore::ResourceError::operator CFStreamError): Modified based on CFErrorRef changes.
16881 2007-07-13  Antti Koivisto  <antti@apple.com>
16883         Reviewed by Adele.
16884         
16885         Fix <rdar://problem/5192256>
16886         click() in onchange handler causes another change event (causes hang at http://forums.whirlpool.net.au/)
16887         
16888         Guard against generating a simulated event from within a simulated event in the same node. Try to
16889         match Firefox behavior.
16891         * dom/EventTargetNode.cpp:
16892         (WebCore::EventTargetNode::dispatchSimulatedMouseEvent):
16893         (WebCore::EventTargetNode::dispatchSimulatedClick):
16894         * dom/Node.cpp:
16895         (WebCore::Node::Node):
16896         * dom/Node.h:
16898 2007-07-13  Antti Koivisto  <antti@apple.com>
16900         Reviewed by Darin.
16901         
16902         Fix <rdar://problem/5333387>
16903         Combination of selection and click() on checkbox crashes
16904         
16905         Ensure there is no pending style update before doing synchronous paint. Under certain
16906         circumstances this ends up doing style recalc in middle of paint() which may
16907         for example tear down the rendering tree being painted, with bad results.
16909         * dom/ContainerNode.cpp:
16910         (WebCore::ContainerNode::setActive):
16912 2007-07-13  Antti Koivisto  <antti@apple.com>
16914         Reviewed by Adele.
16915         
16916         Fix <rdar://problem/5333365>
16917         Calling click() is very slow
16918         
16919         There is a 100ms delay in ContainerNode::setActive() to do an activation effect. It is used for
16920         simulated mouse activations (using keyboard for example). However, it shouldn't be done when calling from javascript 
16921         (through click() interface) since it hangs script execution.
16923         * html/HTMLElement.cpp:
16924         (WebCore::HTMLElement::click):
16926 2007-07-13  Mitz Pettel  <mitz@webkit.org>
16928         Reviewed by Dave Hyatt.
16930         - fix http://bugs.webkit.org/show_bug.cgi?id=13873
16931           Incomplete repaint of replaced element's box shadow
16933         Tests: fast/repaint/box-shadow-h.html
16934                fast/repaint/box-shadow-v.html
16936         * rendering/RenderHTMLCanvas.cpp:
16937         (WebCore::RenderHTMLCanvas::layout): Added a call to adjustOverflowForBoxShadow().
16938         * rendering/RenderImage.cpp:
16939         (WebCore::RenderImage::layout): Ditto.
16940         * rendering/RenderPartObject.cpp:
16941         (WebCore::RenderPartObject::layout): Ditto.
16942         * rendering/RenderReplaced.cpp:
16943         (WebCore::RenderReplaced::RenderReplaced): Initialize m_hasOverflow.
16944         (WebCore::RenderReplaced::~RenderReplaced): Added. Removes this object from the
16945         overflow rect map if it has overflow.
16946         (WebCore::RenderReplaced::shouldPaint): Account for overflow.
16947         (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Added. Creates or
16948         removes an entry for this object in the global overflow rect map.
16949         (WebCore::RenderReplaced::overflowHeight): Added.
16950         (WebCore::RenderReplaced::overflowWidth): Added.
16951         (WebCore::RenderReplaced::overflowLeft): Added.
16952         (WebCore::RenderReplaced::overflowTop): Added.
16953         (WebCore::RenderReplaced::overflowRect): Added.
16954         * rendering/RenderReplaced.h:
16956 2007-07-13  Mitz Pettel  <mitz@webkit.org>
16958         Reviewed by Dave Hyatt.
16960         - fix http://bugs.webkit.org/show_bug.cgi?id=14395
16961           When a <p> is inside <li> two <BR>s are rendered
16963         Test: fast/lists/marker-before-empty-inline.html
16965         * rendering/RenderBlock.h:
16966         * rendering/RenderListItem.cpp:
16967         (WebCore::getParentOfFirstLineBox): Changed to skip empty inline flows that
16968         do not actually generate any line boxes. Limited the nested lists quirk to
16969         the case where the list is a child of the list item, to match Firefox.
16970         * rendering/bidi.cpp:
16971         (WebCore::requiresLineBox): Added. Factored out of skipWhitespace.
16972         (WebCore::RenderBlock::generatesLineBoxesForInlineChild): Added. Checkes
16973         whether the child or any of its siblings following it will generate a line
16974         box in the flow.
16975         (WebCore::RenderBlock::skipWhitespace):
16977 2007-07-13  Holger Hans Peter Freyther  <zecke@selfish.org>
16979         Reviewed by Alexey.
16981         Move HTTP methods to parse Content-Type from xmlhttprequest.cpp
16982         which is LGPL to HTTPParsers.cpp. As both files were written by the
16983         same author and the advice to move them came from him I think this move
16984         is what is meant to be done.
16986         Move filenameFromHTTPContentDisposition to HTTPParsers as well. This parse
16987         function uses Vector<String>::split and doesn't honor quoting. This needs
16988         to be fixed in later versions.
16990         http://bugs.webkit.org/show_bug.cgi?id=5954 and http://bugs.webkit.org/show_bug.cgi?id=14059
16991         benefit from this change.
16993         * platform/network/HTTPParsers.cpp:
16994         (WebCore::filenameFromHTTPContentDisposition):
16995         (WebCore::extractMIMETypeFromMediaType):
16996         (WebCore::extractCharsetFromMediaType):
16997         * platform/network/HTTPParsers.h:
16998         * platform/network/cf/ResourceResponseCFNet.cpp:
16999         * xml/xmlhttprequest.cpp:
17000         (WebCore::XMLHttpRequest::responseMIMEType):
17001         (WebCore::XMLHttpRequest::didReceiveResponse):
17003 2007-07-13  Mark Rowe  <mrowe@apple.com>
17005         Reviewed by Mitz.
17007         Build fix.  Stub out ChromeClientGdk::print and SVGEmptyChromeClient::print.
17009         * platform/gdk/ChromeClientGdk.h:
17010         * platform/gdk/TemporaryLinkStubs.cpp:
17011         (ChromeClientGdk::print):
17012         * platform/graphics/svg/SVGImageEmptyClients.h:
17013         (WebCore::SVGEmptyChromeClient::print):
17015 2007-07-12  Alice Liu  <alice.liu@apple.com>
17017         Reviewed by Maciej and Steve.
17019         fixed <rdar://4982432> window.print() needs to be implemented
17021         * bridge/win/FrameWin.cpp:
17022         (WebCore::Frame::print):
17023         * page/Chrome.cpp:
17024         (WebCore::Chrome::print):
17025         * page/Chrome.h:
17026         * page/ChromeClient.h:
17027         * platform/win/TemporaryLinkStubs.cpp:
17029 2007-07-11  Justin Garcia  <justin.garcia@apple.com>
17031         Reviewed by Harrison.
17032         
17033         <rdar://problem/5300379> Mail hung on option-delete
17034         
17035         We were starting backward iteration at [container, 0] and
17036         emitting for container over and over.
17038         * editing/TextIterator.cpp:
17039         (WebCore::SimplifiedBackwardsTextIterator::advance): Don't 
17040         emit characters for a node if we're starting iteration at 
17041         [container, 0].  Don't emit characters for exiting containers
17042         if we've already done so.
17044 2007-07-12  Kevin Decker  <kdecker@apple.com>
17046         Reviewed by Mark Rowe.
17048         <rdar://problem/5039463> find a good gray that works well for full frame plug-ins; consistent look for plugins
17050         * loader/PluginDocument.cpp:
17051         (WebCore::PluginTokenizer::createDocumentStructure): Changed values to a darker gray, per request from the HI team.
17053 2007-07-11  Sam Weinig  <sam@webkit.org>
17055         Reviewed by Maciej.
17057         Patch for <rdar://problem/5329841>
17058         Calling window.closed on a closed window causes Safari to crash
17060         - Replaces the Frame member variable in KJS::Window for more appropriate DOMWindow
17061         - Adds additional new null checks as necessary
17062         - Removes bogus toBoolean method
17063         - Removes unused scheduleClose method
17065         Test: fast/dom/Window/window-closed-crash.html
17067         * bindings/js/JSCustomXPathNSResolver.cpp:
17068         (WebCore::JSCustomXPathNSResolver::create):
17069         * bindings/js/JSDOMWindowCustom.cpp:
17070         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
17071         (WebCore::JSDOMWindow::customPut):
17072         * bindings/js/JSXMLHttpRequest.cpp:
17073         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
17074         * bindings/js/kjs_events.cpp:
17075         (WebCore::JSAbstractEventListener::handleEvent):
17076         (WebCore::JSLazyEventListener::parseCode):
17077         * bindings/js/kjs_window.cpp:
17078         (KJS::Window::Window):
17079         (KJS::Window::impl):
17080         (KJS::Window::interpreter):
17081         (KJS::Window::location):
17082         (KJS::Window::find):
17083         (KJS::allowPopUp):
17084         (KJS::createWindow):
17085         (KJS::canShowModalDialog):
17086         (KJS::canShowModalDialogNow):
17087         (KJS::showModalDialog):
17088         (KJS::Window::getValueProperty):
17089         (KJS::Window::childFrameGetter):
17090         (KJS::Window::indexGetter):
17091         (KJS::Window::namedItemGetter):
17092         (KJS::Window::getOwnPropertySlot):
17093         (KJS::Window::put):
17094         (KJS::Window::isSafeScript):
17095         (KJS::Window::setListener):
17096         (KJS::Window::getListener):
17097         (KJS::Window::clear):
17098         (KJS::WindowFunc::callAsFunction):
17099         (KJS::Window::updateLayout):
17100         (KJS::ScheduledAction::execute):
17101         (KJS::Window::disconnectFrame):
17102         (KJS::Location::put):
17103         (KJS::LocationFunc::callAsFunction):
17104         * bindings/js/kjs_window.h:
17105         * page/mac/WebCoreFrameBridge.mm:
17106         (updateRenderingForBindings):
17108 2007-07-12  Mark Rowe  <mrowe@apple.com>
17110         Reviewed by Ada.
17112         <rdar://problem/5329877> REGRESSION: Document::setTransformSource leaks an xmlDocPtr if called more than once per document
17114         * dom/Document.cpp:
17115         (WebCore::Document::setTransformSource): Free any existing m_transformSource before overwriting it, rather than simply leaking it.
17116         * dom/Document.h:
17118 2007-07-12  Holger Hans Peter Freyther  <zecke@selfish.org>
17120         Reviewed by Mark Rowe.
17122         Fix compilation of the CURL backend after the removing of accessors from ResourceHandle in r24202
17124         * platform/network/curl/ResourceHandleManager.cpp:
17125         (WebCore::ResourceHandleManager::setupPOST):
17126         (WebCore::ResourceHandleManager::startJob):
17128 2007-07-12  Mark Rowe  <mrowe@apple.com>
17130         Reviewed by Darin.
17132         <rdar://problem/5327189> Logic error in DeprecatedString::to{,U}Int{,64} can lead to reading past end of buffer
17134         The fix for reading past the end of the buffer is to verify we are not at the end of the string before checking
17135         for a leading '+' character.  Rather than fixing the logic error in four nearly-identical functions I chose to
17136         extract the common functionality into the toIntegralType helper function which the four functions call through to.
17138         * platform/DeprecatedString.cpp:
17139         (WebCore::isCharacterAllowedInBase):
17140         (WebCore::toIntegralType):
17141         (WebCore::DeprecatedString::toInt):
17142         (WebCore::DeprecatedString::toInt64):
17143         (WebCore::DeprecatedString::toUInt):
17144         (WebCore::DeprecatedString::toUInt64):
17146 2007-07-12  George Staikos  <staikos@kde.org>
17148         Reviewed by Alexey.
17150         Remove unused variables and fix rendering of comoboxes.
17152         * platform/graphics/qt/ImageQt.cpp:
17153         (WebCore::BitmapImage::draw):
17154         * platform/qt/RenderThemeQt.cpp:
17155         (WebCore::RenderThemeQt::paintMenuList):
17157 2007-07-11  Oliver Hunt  <oliver@apple.com>
17159         Reviewed by Maciej
17161         Fix for <rdar://problem/5329712> GMail crash when trying to compose new message
17163         * platform/win/FontDataWin.cpp:
17164         (WebCore::FontData::containsCharacters):
17166 2007-07-11  Alexey Proskuryakov  <ap@webkit.org>
17168         Reviewed by Darin.
17170         http://bugs.webkit.org/show_bug.cgi?id=14584
17171         XMLHttpRequest treats null login/password incorrectly
17173         Test: http/tests/xmlhttprequest/null-auth.php
17175         * xml/xmlhttprequest.cpp:
17176         (WebCore::XMLHttpRequest::open):
17177         * xml/xmlhttprequest.h:
17178         Split the open() method into three to distinguish between missing and null credentials.
17180         * bindings/js/JSXMLHttpRequest.cpp:
17181         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction): Call the appropriate open().
17183 2007-07-11  Oliver Hunt  <oliver@apple.com>
17185         Build fix for windows
17187         * page/Frame.cpp:
17188         (WebCore::Frame::firstRectForRange):
17190 2007-07-11  Oliver Hunt  <oliver@apple.com>
17192         Reviewed by Maciej.
17194         Fix <rdar://problem/5329481> Character range rect code for IME support needs to be crossplatform
17196         Move -[WebCoreFrameBridge firstRectForDOMRange:] to Frame::firstRectForRange
17198         * page/Frame.cpp:
17199         (WebCore::Frame::firstRectForRange):
17200         * page/Frame.h:
17201         * page/mac/WebCoreFrameBridge.mm:
17202         (-[WebCoreFrameBridge firstRectForDOMRange:]):
17204 2007-07-11  Steve Falkenburg  <sfalken@apple.com>
17206         Static analysis build fix.
17207         
17208         Only specify /analyze (PREfast) if it is available.
17209         Prevents entire project from rebuilding each time.        
17211         Reviewed by Hyatt.
17213         * WebCore.vcproj/WebCore.vcproj:
17215 2007-07-11  George Staikos  <staikos@kde.org>
17217         Reviewed by Olliej.
17219         Make comboboxes update when the current item is changed.
17221         * platform/qt/PopupMenuQt.cpp:
17222         (WebCore::PopupMenu::updateFromElement):
17223         * platform/qt/QWebPopup.cpp:
17224         (WebCore::QWebPopup::activeChanged):
17226 2007-07-11  George Staikos  <staikos@kde.org>
17228         Reviewed by Brady.
17230         Add a destructor to cleanup the SQL handle.
17232         * loader/icon/SQLDatabase.h:
17233         (WebCore::SQLDatabase::~SQLDatabase):
17235 2007-07-11  Holger Hans Peter Freyther  <zecke@selfish.org>
17237         Reviewed by Darin.
17239         As of http://bugs.webkit.org/show_bug.cgi?id=14527 move the
17240         WebCore/ForwardingHeader/JavaScriptCore to JavaScriptCore
17242         * ForwardingHeaders/JavaScriptCore: Removed.
17243         * ForwardingHeaders/JavaScriptCore/APICast.h: Removed.
17244         * ForwardingHeaders/JavaScriptCore/JSBase.h: Removed.
17245         * ForwardingHeaders/JavaScriptCore/JSContextRef.h: Removed.
17246         * ForwardingHeaders/JavaScriptCore/JSLock.h: Removed.
17247         * ForwardingHeaders/JavaScriptCore/JSObjectRef.h: Removed.
17248         * ForwardingHeaders/JavaScriptCore/JSStringRef.h: Removed.
17249         * ForwardingHeaders/JavaScriptCore/JSStringRefCF.h: Removed.
17250         * ForwardingHeaders/JavaScriptCore/JSValueRef.h: Removed.
17251         * ForwardingHeaders/JavaScriptCore/JavaScriptCore.h: Removed.
17253 2007-07-11  Anders Carlsson  <andersca@apple.com>
17255         Fix build.
17256         
17257         * platform/network/cf/ResourceHandleCFNet.cpp:
17258         (WebCore::willSendRequest):
17259         (WebCore::didReceiveResponse):
17260         (WebCore::didReceiveData):
17261         (WebCore::didFinishLoading):
17262         (WebCore::didFail):
17263         (WebCore::didReceiveChallenge):
17265 2007-07-11  George Staikos  <staikos@kde.org>
17267         Repair the build.
17269         * platform/network/qt/ResourceHandleQt.cpp:
17270         (WebCore::ResourceHandle::start):
17272 2007-07-11  Adele Peterson  <adele@apple.com>
17274         Reviewed by Darin.
17276         Fix for <rdar://problem/5230188> REGRESSION: Active/inactive marked text is not distinguished in textfields and textareas
17278         We were previously trying to leave room for 1px of space between the text and the underline.
17279         This change removes that requirement so that if we don't have room for the extra space, we still draw the thick underline
17280         touching the text.
17282         * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextUnderline):
17284 2007-07-11  Anders Carlsson  <andersca@apple.com>
17286         Reviewed by Darin and Geoff.
17288         <rdar://problem/5313508>
17289         REGRESSION (Leopard): http/tests/xmlhttprequest/basic-auth.html hangs
17290         
17291         Leopard Foundation now ignores credentials passed in as part of the URL so we need to pass them ourselves.
17292         
17293         For the asynchronous case, we simply keep track of the URL and if it has a user name and password, we
17294         pass those if we're asked to authenticate.
17295                 
17296         For the synchronous case, implement a new connection delegate and run it in a separate mode so 
17297         no other sources will fire.
17299         * platform/network/mac/ResourceHandleMac.mm:
17300         (WebCore::ResourceHandle::loadResourceSynchronously):
17301         (-[WebCoreResourceHandleAsDelegate dealloc]):
17302         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
17303         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
17304         (-[WebCoreSynchronousLoader _isDone]):
17305         (-[WebCoreSynchronousLoader dealloc]):
17306         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]):
17307         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]):
17308         (-[WebCoreSynchronousLoader connection:didReceiveResponse:]):
17309         (-[WebCoreSynchronousLoader connection:didReceiveData:]):
17310         (-[WebCoreSynchronousLoader connectionDidFinishLoading:]):
17311         (-[WebCoreSynchronousLoader connection:didFailWithError:]):
17312         (-[WebCoreSynchronousLoader _data]):
17313         (-[WebCoreSynchronousLoader _response]):
17314         (-[WebCoreSynchronousLoader _error]):
17315         (+[WebCoreSynchronousLoader loadRequest:returningResponse:error:]):
17317 2007-07-11  Darin Adler  <darin@apple.com>
17319         Reviewed by Sam Weinig.
17321         - fix <rdar://problem/5315265> REGRESSION: Leopard launch time -
17322           there are about 190 stats of icudt36b files during launch
17324         * platform/TextEncodingRegistry.cpp: (WebCore::atomicCanonicalTextEncodingName):
17325         Add a special case for the empty string so we don't load the extended text
17326         encodings just so we can return 0 for that case.
17328 2007-07-11  Anders Carlsson  <andersca@apple.com>
17330         Reviewed by Darin.
17332         Remove a bunch of unneeded accessors from ResourceHandle.
17333         
17334         * loader/icon/IconLoader.cpp:
17335         (WebCore::IconLoader::didReceiveResponse):
17336         (WebCore::IconLoader::didFail):
17337         (WebCore::IconLoader::didFinishLoading):
17338         * platform/network/ResourceHandle.cpp:
17339         * platform/network/ResourceHandle.h:
17341 2007-07-09  Justin Garcia  <justin.garcia@apple.com>
17343         Reviewed by Darin.
17344         
17345         <rdar://problem/5234383> REGRESSION: Sentence breaker method returning entire document length
17346         
17347         The functions for moving the caret to the next/previous sentence boundary
17348         were in many cases moving to the beginning/end of the document.  The functions that 
17349         should move the caret to an equivalent position in the next/previous sentence behaved
17350         like the aforementioned functions ought to.  Put the code from the second two functions
17351         in the first and made sure that the second two are properly FIXMEd.  They're rarely 
17352         used (filed 5323691).
17353         
17354         * editing/SelectionController.cpp:
17355         (WebCore::SelectionController::modify): Added an option for sentenceBoundary granularity,
17356         so that we can test the functions that were broken from JS.
17357         * editing/visible_units.cpp:
17358         (WebCore::startOfSentence): Removed the FIXME about 5234383.
17359         (WebCore::endSentenceBoundary): Make this function do what nextSentencePositionBoundary
17360         current does.
17361         (WebCore::endOfSentence): Removed the FIXME about 5234383.
17362         (WebCore::previousSentencePosition): Removed an incorrect FIXME.
17363         (WebCore::nextSentencePositionBoundary): Tweaked FIXME.  This function is
17364         identical, not close to endSentenceBoundary.
17365         (WebCore::nextSentencePosition): Removed an incorrect FIXME.
17367 2007-07-11  Rob Buis  <buis@kde.org>
17369         Reviewed by Darin.
17371         http://bugs.webkit.org/show_bug.cgi?id=14453
17372         REGRESSION: www.nzherald.co.nz almost all the formating is gone
17374         Be less strict for the hex color definition.
17376         * css/CSSGrammar.y:
17377         * css/cssparser.cpp:
17378         (WebCore::CSSParser::lex):
17379         (WebCore::CSSParser::text):
17380         * css/tokenizer.flex:
17382 2007-07-11  Rob Buis  <buis@kde.org>
17384         Reviewed by Oliver.
17386         Forgot to commit this as part of commit r24146. Now we are sure
17387         createElement creates elements in the xhtml namespace only.
17389         * ksvg2/svg/SVGDocument.cpp:
17390         * ksvg2/svg/SVGDocument.h:
17392 2007-07-10  Sam Weinig  <sam@webkit.org>
17394         Reviewed by Oliver.
17396         Move more attributes from the pure JS bindings in KJS::Window
17397         to the implementation in DOMWindow and autogenerate the new bindings
17399         Test: fast/dom/Window/get-set-properties.html
17401         * bindings/js/JSDOMWindowCustom.cpp:
17402         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Change to use propHashTable in
17403         JSDOMWindow instead of KJS::Window
17404         * bindings/js/kjs_window.cpp:
17405         (KJS::Window::getValueProperty):
17406         (KJS::Window::put):
17407         * bindings/js/kjs_window.h:
17408         (KJS::Window::):
17409         * bindings/scripts/CodeGeneratorJS.pm: Cleanup getValueProperty and put generation
17410         to reduce code duplication. 
17411         * page/DOMWindow.cpp:
17412         (WebCore::DOMWindow::closed):
17413         (WebCore::DOMWindow::length):
17414         (WebCore::DOMWindow::name):
17415         (WebCore::DOMWindow::setName):
17416         (WebCore::DOMWindow::status):
17417         (WebCore::DOMWindow::setStatus):
17418         (WebCore::DOMWindow::defaultStatus):
17419         (WebCore::DOMWindow::setDefaultStatus):
17420         * page/DOMWindow.h:
17421         (WebCore::DOMWindow::defaultstatus):
17422         (WebCore::DOMWindow::setDefaultstatus):
17423         * page/DOMWindow.idl:
17425 2007-07-10  Sam Weinig  <sam@webkit.org>
17427         Reviewed by Geoff.
17429         Fix for <rdar://problem/5326791> XSS vulnerability: ability to set window.defaultStatus,
17430         window.defaultstatus and window.status cross domains
17432         Test: http/tests/security/cross-frame-access-put.html
17434         * bindings/js/kjs_window.cpp:
17435         (KJS::Window::put): Adds isSafeScript check for defaultStatus,
17436         defaultstatus and status cases.
17438 2007-07-10  Sam Weinig  <sam@webkit.org>
17440         Fix build for BuildBot.
17442         * page/DOMWindow.cpp:
17443         (WebCore::DOMWindow::outerHeight):
17444         (WebCore::DOMWindow::outerWidth):
17445         (WebCore::DOMWindow::screenX):
17446         (WebCore::DOMWindow::screenY):
17448 2007-07-10  Brady Eidson  <beidson@apple.com>
17450         Reviewed by Sam
17452         <rdar://problem/5326653> - REGRESSION: [WebBackForwardList forwardListCount] might return incorrect result
17454         No layout test because this is an API issue that can't be tested in DRT or the browser
17456         * history/BackForwardList.cpp:
17457         (WebCore::BackForwardList::forwardListCount): If the index is NoCurrentItemIndex, return 0
17459 2007-07-10  Sam Weinig  <sam@webkit.org>
17461         Reviewed by Darin.
17463         Move more readonly attributes from pure JS bindings in KJS::Window
17464         to the implementation in DOMWindow and autogenerate the new bindings.
17466         * bindings/js/kjs_window.cpp:
17467         (KJS::Window::getValueProperty):  Sort the hashmap comment into categories
17468         to make further migration easier.
17469         * bindings/js/kjs_window.h: Sort the enum into categories to make further
17470         migration easier.
17471         (KJS::Window::):
17472         * page/DOMWindow.cpp: Add new methods.
17473         (WebCore::DOMWindow::focus):
17474         (WebCore::DOMWindow::blur):
17475         (WebCore::DOMWindow::offscreenBuffering):
17476         (WebCore::DOMWindow::outerHeight):
17477         (WebCore::DOMWindow::outerWidth):
17478         (WebCore::DOMWindow::innerHeight):
17479         (WebCore::DOMWindow::innerWidth):
17480         (WebCore::DOMWindow::screenX):
17481         (WebCore::DOMWindow::screenY):
17482         (WebCore::DOMWindow::scrollX):
17483         (WebCore::DOMWindow::scrollY):
17484         (WebCore::DOMWindow::getComputedStyle):
17485         (WebCore::DOMWindow::getMatchedCSSRules): Add null Document assertion.
17486         (WebCore::DOMWindow::devicePixelRatio): Add null Frame and Page checks.
17487         * page/DOMWindow.h:
17488         (WebCore::DOMWindow::screenLeft):
17489         (WebCore::DOMWindow::screenTop):
17490         (WebCore::DOMWindow::pageXOffset):
17491         (WebCore::DOMWindow::pageYOffset):
17492         * page/DOMWindow.idl:
17494 2007-07-10  Oliver Hunt  <oliver@apple.com>
17496         Reviewed by Maciej.
17498         Fix for <rdar://problem/5326417> Editor::unmarkText needs to be crossplatform
17500         Missed this in earlier patch to make text marking platform independent.
17502         * editing/Editor.cpp:
17503         (WebCore::Editor::unmarkText):
17504            Add platform independent impl
17505         * editing/mac/EditorMac.mm:
17506            Remove the old mac path.
17508 2007-07-10  Geoffrey Garen  <ggaren@apple.com>
17510         Reviewed by Tim Hatcher.
17512         Added a Page counter. This helped me while investigating 
17513         <rdar://problem/5314463> 40MB of WebKit memory still allocated after 
17514         closing large email in Mail
17516         * WebCore.xcodeproj/project.pbxproj:
17517         * page/Page.cpp:
17518         (WebCore::):
17519         (WebCore::PageCounter::~PageCounter):
17520         (WebCore::Page::Page):
17521         (WebCore::Page::~Page):
17523 2007-07-10  Timothy Hatcher  <timothy@apple.com>
17525         Reviewed by Geoff.
17527         <rdar://problem/5326126> InspectorResource holds onto more data than it needs
17529         Reduces the fixed size of InspectorResource from 630 bytes to 224 bytes. Now
17530         selectively pick out parts of the ResourceRequest and ResourceResponse objects
17531         for the info needed and store that directly in InspectorResource.
17533         The ResourceRequest and ResourceResponse objects hold a reference to the original
17534         NSURL object, so almost double the data was being kept around. So the struct size
17535         reduction is just the tip of the ice burg on what this really saves.
17537         In a test of 100,000 XMLHTTPRequests using a 85 byte long data URL, I see ~21 MB less
17538         RSIZE compared to Safari running without this change.
17540         * page/InspectorController.cpp:
17541         (WebCore::InspectorResource::InspectorResource):
17542         (WebCore::InspectorResource::type):
17543         (WebCore::addSourceToFrame):
17544         (WebCore::scriptObjectForRequest):
17545         (WebCore::scriptObjectForResponse):
17546         (WebCore::InspectorController::addScriptResource):
17547         (WebCore::InspectorController::addAndUpdateScriptResource):
17548         (WebCore::updateResourceRequest):
17549         (WebCore::updateResourceResponse):
17550         (WebCore::InspectorController::updateScriptResourceRequest):
17551         (WebCore::InspectorController::updateScriptResourceResponse):
17552         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
17553         (WebCore::InspectorController::identifierForInitialRequest):
17554         (WebCore::InspectorController::willSendRequest):
17555         (WebCore::InspectorController::didReceiveResponse):
17556         (WebCore::InspectorController::didFailLoading):
17557         * page/InspectorController.h:
17559 2007-07-10  Darin Adler  <darin@apple.com>
17561         Reviewed by Brady.
17563         - fix crash introduced by my patch for 5318732, only seen in release builds
17565         * page/Page.cpp: (WebCore::Page::~Page): Added a missing null check.
17567 2007-07-10  Andrea Cavalli  <amc82@cam.ac.uk>
17569         Reviewed by George Staikos.
17571         Fixed render theme for text field.
17573         * platform/qt/RenderThemeQt.cpp:
17574         (WebCore::RenderThemeQt::paintTextField):
17576 2007-07-10  Qing Zhao  <qing@staikos.net>
17578         Reviewed by George Staikos.
17580         Draw focus rings for nodes that are not rendered by QStyle.
17582         * platform/graphics/qt/GraphicsContextQt.cpp:
17583         (WebCore::focusRingColor):
17584         (WebCore::GraphicsContext::drawFocusRing):
17585         * platform/qt/RenderThemeQt.cpp:
17586         (WebCore::RenderThemeQt::supportsFocusRing):
17587         (WebCore::RenderThemeQt::supportsFocus):
17589 2007-07-10  Nikolas Zimmermann  <zimmermann@kde.org>
17591         Reviewed by Geoff.
17593         Fix 'unsigned int' overflow in CodeGeneratorJS.pm.
17594         This fixes hashing of "SVG_FEBLEND_MODE_NORMAL". Its hashvalue exceeded 2^32, which
17595         is no problem in perl but in the cpp code. Emulate C/C++ behaviour by using "% 2^32" in
17596         the perl code. Testcase available in feature-branch soon (js-svg-constructors.svg).
17598         * bindings/scripts/CodeGeneratorJS.pm:
17600 2007-07-10  Geoffrey Garen  <ggaren@apple.com>
17602         Reviewed by Maciej Stachowiak.
17604         Disabled Arena recycling in RenderArena. PLT shows no regression 
17605         (possibly a small speedup), and this can reduce allocated memory in 
17606         WebKit clients by about 120K (4K per Arena * 30 Arenas).
17607         
17608         I happened upon this optimization while investigating 
17609         <rdar://problem/5314463> WebKit hangs on to 40MB RAM after closing 
17610         large email in Mail (appears to be render tree arena allocator), 
17611         although I don't think it will come close to fixing that bug 
17612         completely.
17614         * rendering/RenderArena.cpp:
17615         (WebCore::RenderArena::~RenderArena): Use FinishArenaPool, which frees
17616         the ArenaPool's Arenas immediately.
17618 2007-07-10  Mitz Pettel  <mitz@webkit.org>
17620         Reviewed by Hyatt.
17622         - fix http://bugs.webkit.org/show_bug.cgi?id=14449
17623           REGRESSION (r14345-r14375): Absolutely positioned image does not scale to containing element's height
17625         Test: fast/replaced/absolute-position-percentage-height.html
17627         * rendering/RenderBox.cpp:
17628         (WebCore::RenderBox::calcReplacedHeightUsing): For positioned elements, evaluate
17629         the percentage with respect to the container's final height.
17631 2007-07-10  Brady Eidson  <beidson@apple.com>
17633         Reviewed by Mark Rowe
17635         Add 64-bit integer converters to our string classes for future work
17637         * platform/DeprecatedString.cpp:
17638         (WebCore::DeprecatedString::toInt64):
17639         (WebCore::DeprecatedString::toUInt64):
17640         * platform/DeprecatedString.h:
17642         * platform/PlatformString.h:
17643         * platform/String.cpp:
17644         (WebCore::String::toInt64):
17645         (WebCore::String::toUInt64):
17647         * platform/StringImpl.cpp:
17648         (WebCore::StringImpl::toInt64):
17649         (WebCore::StringImpl::toUInt64):
17650         * platform/StringImpl.h:
17652 2007-07-10  Darin Adler  <darin@apple.com>
17654         Reviewed by Anders.
17656         - fix <rdar://problem/5318732> REGRESSION: In Mail, a crash occurs when attempting to send
17657           a HTML based message (nytimes.com, washingtonpost.com, latimes.com)
17659         Did an audit of calls to get the inspector and most other uses of Page* and added null
17660         checks since Frame* can outlast its Page*.
17662         * loader/FrameLoader.cpp:
17663         (WebCore::FrameLoader::createWindow): Added null check.
17664         (WebCore::FrameLoader::loadSubframe): Ditto.
17665         (WebCore::FrameLoader::load): Ditto.
17666         (WebCore::FrameLoader::transitionToCommitted): Ditto.
17667         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ditto.
17668         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Ditto.
17669         (WebCore::FrameLoader::addExtraFieldsToRequest): Ditto.
17670         (WebCore::FrameLoader::loadResourceSynchronously): Ditto.
17671         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Ditto.
17672         (WebCore::FrameLoader::requestFromDelegate): Ditto.
17673         (WebCore::FrameLoader::canGoBackOrForward): Ditto.
17674         (WebCore::FrameLoader::getHistoryLength): Ditto.
17675         (WebCore::FrameLoader::historyURL): Ditto.
17676         (WebCore::FrameLoader::cachePageForHistoryItem): Ditto.
17677         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Ditto.
17678         (WebCore::FrameLoader::goToItem): Ditto.
17679         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Ditto.
17680         (WebCore::FrameLoader::dispatchDidCommitLoad): Ditto.
17681         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest): Ditto.
17682         (WebCore::FrameLoader::dispatchWillSendRequest): Ditto.
17683         (WebCore::FrameLoader::dispatchDidReceiveResponse): Ditto.
17684         (WebCore::FrameLoader::dispatchDidReceiveContentLength): Ditto.
17685         (WebCore::FrameLoader::dispatchDidFinishLoading): Ditto.
17686         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Ditto.
17688         * page/ContextMenuController.h:
17689         * page/ContextMenuController.cpp:
17690         (WebCore::ContextMenuController::ContextMenuController): Removed unneeded and
17691         unused Page* parameter.
17692         (WebCore::openNewWindow): Added null check.
17693         (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
17695         * page/InspectorController.h:
17696         (WebCore::InspectorController::pageDestroyed): Added. Since this object is
17697         owned by the Page and has a back-pointer to it, it needs an explicit disconnect.
17698         There's already a higher-level one, but this is more reliable than that.
17699         * page/InspectorController.cpp:
17700         (WebCore::InspectorController::windowScriptObjectAvailable): Added null check.
17701         (WebCore::InspectorController::windowUnloading): Ditto.
17703         * page/Page.cpp:
17704         (WebCore::Page::Page): Updated for change in parameters of ContextMenuController 
17705         constructor.
17706         (WebCore::Page::~Page): Added call to InspectorController pageDestroyed().
17708         * page/Chrome.cpp: Updated includes.
17709         * page/DragController.cpp: Ditto.
17711 2007-07-10  Adam Treat  <adam@staikos.net>
17713         Reviewed by George Staikos.
17715         Bring scroll wheel out of Ludicrous Speed.
17717         * platform/qt/WheelEventQt.cpp:
17718         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
17720 2007-07-09  Geoffrey Garen  <ggaren@apple.com>
17722         Reviewed by Maciej Stachowiak.
17724         Fixed http://bugs.webkit.org/show_bug.cgi?id=13241 | <rdar://problem/5126396>
17725         onload fires before content is finished loading (woot.com)
17726         
17727         * dom/Document.cpp:
17728         (WebCore::Document::close): Try to go through the normal "Am I done loading?"
17729         machinery before dispatching the load event. As the comment indicates, 
17730         we can't do this in all cases, so the fix isn't perfect. However, a perfect 
17731         solution would require much riskier sweeping changes to the loader, which 
17732         are best left for later, I think.
17734         * xml/XSLTProcessor.cpp:
17735         (WebCore::XSLTProcessor::createDocumentFromSource): Removed a slightly
17736         worse solution to the same problem.
17738 2007-07-10  Rob Buis  <buis@kde.org>
17740         Reviewed by Maciej.
17742         http://bugs.webkit.org/show_bug.cgi?id=8007
17743         createElement() and XHTML (A dynamically created table not rendered as such)
17745         Follow the HTML5 rules of making the name lowercase and then
17746         creating the element in the xhtml namespace.
17748         * dom/Document.cpp:
17749         (WebCore::Document::createElement):
17750         * dom/Document.h:
17751         * html/HTMLDocument.cpp:
17752         * html/HTMLDocument.h:
17754 2007-07-09  Qing Zhao  <qing@staikos.net>
17756         Reviewed by George Staikos.
17758         Add qt context menu support.
17760         * WebCore.pro:
17761         * platform/ContextMenu.h:
17762         * platform/ContextMenuItem.h:
17763         (WebCore::PlatformMenuItemDescriptionType::PlatformMenuItemDescriptionType):
17764         * platform/qt/ContextMenuItemQt.cpp:
17765         (WebCore::ContextMenuItem::ContextMenuItem):
17766         (WebCore::ContextMenuItem::~ContextMenuItem):
17767         (WebCore::ContextMenuItem::releasePlatformDescription):
17768         (WebCore::ContextMenuItem::type):
17769         (WebCore::ContextMenuItem::setType):
17770         (WebCore::ContextMenuItem::action):
17771         (WebCore::ContextMenuItem::setAction):
17772         (WebCore::ContextMenuItem::title):
17773         (WebCore::ContextMenuItem::setTitle):
17774         (WebCore::ContextMenuItem::platformSubMenu):
17775         (WebCore::ContextMenuItem::setSubMenu):
17776         (WebCore::ContextMenuItem::setChecked):
17777         (WebCore::ContextMenuItem::setEnabled):
17778         (WebCore::ContextMenuItem::enabled):
17779         * platform/qt/ContextMenuQt.cpp:
17780         (WebCore::ContextMenu::ContextMenu):
17781         (WebCore::ContextMenu::~ContextMenu):
17782         (WebCore::ContextMenu::appendItem):
17783         (WebCore::ContextMenu::itemCount):
17784         (WebCore::ContextMenu::insertItem):
17785         (WebCore::ContextMenu::setPlatformDescription):
17786         (WebCore::ContextMenu::platformDescription):
17788 2007-07-09  Anders Carlsson  <andersca@apple.com>
17790         Build fix.
17791         
17792         * plugins/win/PluginViewWin.cpp:
17793         (WebCore::PluginViewWin::performRequest):
17795 2007-07-09  Anders Carlsson  <andersca@apple.com>
17797         Reviewed by Geoff.
17799         Get rid of the node argument in our various script execution functions.
17800         
17801         * bindings/js/kjs_proxy.cpp:
17802         (WebCore::KJSProxy::evaluate):
17803         * bindings/js/kjs_proxy.h:
17804         * bindings/js/kjs_window.cpp:
17805         (KJS::ScheduledAction::execute):
17806         * dom/XMLTokenizer.cpp:
17807         (WebCore::XMLTokenizer::endElementNs):
17808         (WebCore::XMLTokenizer::notifyFinished):
17809         * html/HTMLScriptElement.cpp:
17810         (WebCore::HTMLScriptElement::evaluateScript):
17811         * html/HTMLTokenizer.cpp:
17812         (WebCore::HTMLTokenizer::scriptExecution):
17813         * loader/FrameLoader.cpp:
17814         (WebCore::FrameLoader::changeLocation):
17815         (WebCore::FrameLoader::urlSelected):
17816         (WebCore::FrameLoader::submitForm):
17817         (WebCore::FrameLoader::replaceContentsWithScriptResult):
17818         (WebCore::FrameLoader::executeScript):
17819         * loader/FrameLoader.h:
17820         * page/mac/WebCoreFrameBridge.mm:
17821         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
17822         (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]):
17824 2007-07-09  Justin Garcia  <justin.garcia@apple.com>
17826         Rolling the fix for 5290534 back in now that 5310404 has been fixed in Mail.
17828         * editing/DeleteSelectionCommand.cpp:
17829         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
17831 2007-07-09  Geoffrey Garen  <ggaren@apple.com>
17833         Reviewed by Anders Carlsson.
17835         A little more FrameLoader cleanup while working on <rdar://problem/5126396>.
17836         
17837         Rename: "checkEmitLoadEvent" => "checkCallImplicitClose" because the function
17838         doesn't emit the load event; it just calls implicitClose.
17839         
17840         Rename: "m_wasLoadEventEmitted" => "m_didCallImplicitClose" because the variable
17841         tracks whether implicitClose was called.
17843         * dom/Document.cpp:
17844         (WebCore::Document::implicitClose): Turned 12 lines of code into 6, adding ASSERT.
17845         * loader/FrameLoader.h: Removed bogus declaration of non-existent emitLoadEvent().
17847 2007-07-09  Justin Garcia  <justin.garcia@apple.com>
17849         Reviewed by John.
17850         
17851         REGRESSION: Crash when deleting table content in Leopard Mail
17853         * editing/DeleteSelectionCommand.cpp:
17854         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Use a RefPtr
17855         for the next node to delete, in case it is destroyed when the
17856         current node is deleted.  In the crash reported in the radar, we
17857         crash because the next node is the div that holds the delete button
17858         and it's destroyed when the node that contains the selection is removed.
17860 2007-07-09  Adam Treat  <adam@staikos.net>
17862         Reviewed by George Staikos.
17864         Convert QWebFrame from a QFrame to a pure QObject to eliminate all
17865         traces of widgets.
17867         * page/qt/EventHandlerQt.cpp:
17868         (WebCore::EventHandler::passSubframeEventToSubframe):
17869         * platform/ScrollView.h:
17870         * platform/Widget.h:
17871         * platform/qt/PlatformScrollBarQt.cpp:
17872         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
17873         (WebCore::PlatformScrollbar::handleMousePressEvent):
17874         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
17875         * platform/qt/PopupMenuQt.cpp:
17876         (WebCore::PopupMenu::show):
17877         * platform/qt/ScrollViewQt.cpp:
17878         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
17879         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
17880         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
17881         (WebCore::ScrollView::updateContents):
17882         (WebCore::ScrollView::update):
17883         (WebCore::ScrollView::geometryChanged):
17884         (WebCore::ScrollView::windowToContents):
17885         (WebCore::ScrollView::contentsToWindow):
17886         (WebCore::ScrollView::convertChildToSelf):
17887         (WebCore::ScrollView::convertSelfToChild):
17888         (WebCore::ScrollView::scrollbarUnderMouse):
17889         (WebCore::ScrollView::addChild):
17890         (WebCore::ScrollView::paint):
17891         * platform/qt/WidgetQt.cpp:
17892         (WebCore::WidgetPrivate::WidgetPrivate):
17893         (WebCore::WidgetPrivate::~WidgetPrivate):
17894         (WebCore::WidgetPrivate::setGeometry):
17895         (WebCore::WidgetPrivate::geometry):
17896         (WebCore::Widget::frameGeometry):
17897         (WebCore::Widget::setFocus):
17898         (WebCore::Widget::setCursor):
17899         (WebCore::Widget::show):
17900         (WebCore::Widget::hide):
17901         (WebCore::Widget::qwebframe):
17902         (WebCore::Widget::setQWebFrame):
17903         (WebCore::Widget::qwidget):
17904         (WebCore::Widget::setQWidget):
17905         (WebCore::Widget::setFrameGeometry):
17906         (WebCore::Widget::isEnabled):
17907         (WebCore::Widget::setEnabled):
17908         (WebCore::Widget::setIsSelected):
17909         (WebCore::Widget::invalidate):
17910         (WebCore::Widget::invalidateRect):
17911         (WebCore::Widget::removeFromParent):
17912         (WebCore::Widget::geometryChanged):
17913         (WebCore::Widget::convertToContainingWindow):
17914         (WebCore::Widget::convertFromContainingWindow):
17915         (WebCore::Widget::convertChildToSelf):
17916         (WebCore::Widget::convertSelfToChild):
17917         (WebCore::Widget::containingWindow):
17919 2007-07-09  Anders Carlsson  <andersca@apple.com>
17921         Reviewed by Oliver.
17923         Add DocumentLoader::isLoadingMainResource.
17925         * WebCore.exp:
17927 2007-07-09  John Sullivan  <sullivan@apple.com>
17929         Reviewed by Darin
17931         * WebCore.exp:
17932         * WebCore.xcodeproj/project.pbxproj:
17933         exported String::createCFString, needed for <rdar://problem/5320208>
17935 2007-07-09  Mitz Pettel  <mitz@webkit.org>
17937         Reviewed by Maciej.
17939         Test case for the bug below, which is http://bugs.webkit.org/show_bug.cgi?id=14207
17941         * manual-tests/flash-unload-tab.html: Added.
17943 2007-07-09  Maciej Stachowiak  <mjs@apple.com>
17945         Reviewed by Oliver.
17947         <rdar://problem/5295734> Repro crash closing tab/window @ maps.google.com in
17948         WTF::HashSet<KJS::RuntimeObjectImp*, WTF::PtrHash<KJS::RuntimeObjectImp*>,
17949         WTF::HashTraits<KJS::RuntimeObjectImp*> >::add + 11
17950         
17951         Automated test case is not possible. Did not bother with manual test this time.
17953         * bindings/js/kjs_dom.cpp:
17954         (WebCore::getRuntimeObject): Check that runtime root isn't null, as well as instance;
17955         this should cover the case where the plugin is already shut down and onunload time.
17957 2007-07-08  Maciej Stachowiak  <mjs@apple.com>
17959         Reviewed by Sam.
17961         - fixed <rdar://problem/5220706> REGRESSION (TOT): repro crash in -[WebView(WebViewInternal) _addObject:forIdentifier:] [14425]
17962         http://bugs.webkit.org/show_bug.cgi?id=14425
17964         * bindings/js/kjs_window.cpp:
17965         (KJS::createWindow): No longer take an immediate argument - always do immediate loads
17966         on a newly created Window. Also, do a load of "" to make sure that the right info makes
17967         it to the app.
17968         (KJS::showModalDialog): Updated for above.
17969         (KJS::WindowFunc::callAsFunction): Updated for above.
17970         * dom/Document.cpp:
17971         (WebCore::Document::shouldBeAllowedToLoadLocalResources): If our URL is about:blank,
17972         we're allowed if our opener is (since the opener must have written the contents).
17973         * loader/FrameLoader.cpp:
17974         (WebCore::FrameLoader::changeLocation): Add a variant which takes a KURL, which it
17975         expects to be pre-completed. This is to avoid completing "" to the opener URL.
17976         (WebCore::FrameLoader::urlSelected): Allow loading empty URLs.
17977         * loader/FrameLoader.h:
17978         
17979         Test case is manual only, since it takes particular app behavior to reproduce:
17980         
17981         * manual-tests/new-window-subresource-crash.html: Added.
17983 2007-07-08  Mitz Pettel  <mitz@webkit.org>
17985         Reviewed by Maciej.
17987         - fix leaks introduced in r24099
17989         * dom/Element.cpp:
17990         (WebCore::Element::~Element): Do not delete the cached computed style here.
17991         (WebCore::Element::detach): Delete the computed style here instead.
17992         (WebCore::Element::computedStyle): Removed a redundant ref() which was
17993         causing the leak. Changed to return 0 if the element is not attached,
17994         because in that case there is currently no way to tell when to delete the computed
17995         style.
17997 2007-07-08  Mitz Pettel  <mitz@webkit.org>
17999         Reviewed by Darin.
18001         - fix http://bugs.webkit.org/show_bug.cgi?id=12384
18002           getComputedStyle with td.style.display='none' reports '' for all properties except display
18004         Test: fast/css/computed-style-without-renderer.html
18006         Implement rich computed style for elements that do not have a renderer.
18008         * css/CSSComputedStyleDeclaration.cpp:
18009         (WebCore::getPositionOffsetValue): Changed to take a RenderStyle instead of
18010         a RenderObject.
18011         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to
18012         use the computed style returned by the node instead of going through the
18013         renderer. Changed properties that compute by measuring the renderer to
18014         fall back on returning the length from the RenderStyle if a renderer does
18015         not exist.
18016         (WebCore::CSSComputedStyleDeclaration::length): Changed to return the number
18017         of properties we can compute even if the element has no renderer.
18018         (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties): Changed
18019         to use the computed style returned by the node instead of going through the
18020         renderer.
18021         * dom/Element.cpp:
18022         (WebCore::ElementRareData::ElementRareData): Added a computed style member,
18023         used to cache computed style for elements that do not have a renderer.
18024         (WebCore::ElementRareData::resetComputedStyle): Added.
18025         (WebCore::Element::~Element): Delete the cached computed style.
18026         (WebCore::Element::recalcStyle): Added code to delete the cached computed
18027         style when necessary.
18028         (WebCore::Element::computedStyle): Added. Returns the style used in rendering
18029         the element, if available. Otherwise uses the style selector to compute style
18030         for the element.
18031         * dom/Element.h:
18032         * dom/Node.cpp:
18033         (WebCore::Node::computedStyle): Added. This method returns either the style
18034         used in rendering the node, or the style that would be used if the node
18035         had a renderer.
18036         * dom/Node.h:
18038 2007-07-08  Mitz Pettel  <mitz@webkit.org>
18040         Reviewed by Darin.
18042         - fix http://bugs.webkit.org/show_bug.cgi?id=14544
18043           Scroll wheel events are ignored when the cursor is over an iframe's border
18045         * page/mac/EventHandlerMac.mm:
18046         (WebCore::EventHandler::passWheelEventToWidget): Changed to return false if
18047         the event coordinates are not inside the widget's NSView hierarchy.
18049 2007-07-08  Rob Buis  <buis@kde.org>
18051         Reviewed by Mitz.
18053         http://bugs.webkit.org/show_bug.cgi?id=10752
18054         The inspector should not respond to Make Text Smaller/Bigger commands
18056         Use the -webkit-text-size-adjust property to ignore text sizing        
18057         and do not take the zoom factor into account for line height when
18058         -webkit-text-size-adjust is set to none.
18060         * css/cssstyleselector.cpp:
18061         (WebCore::CSSStyleSelector::applyProperty):
18062         * page/inspector/inspector.css:
18064 2007-07-08  Darin Adler  <darin@apple.com>
18066         Reviewed by Maciej.
18068         - fix <rdar://problem/5318994> Integer overflow in WebCore's Base64.cpp:base64Encode
18070         * platform/Base64.cpp:
18071         (WebCore::base64Encode): Check against a maximum size.
18072         (WebCore::base64Decode): Ditto.
18074 2007-07-08  Darin Adler  <darin@apple.com>
18076         Reviewed by Maciej.
18078         - fix <rdar://problem/5124665> WebCore secondary-thread assertion should use linked-on-or-after check instead of building on Tiger check
18080         * platform/ThreadCheck.h: Renamed _WebCoreThreadViolationCheck to reportThreadViolation
18081         since it's in the WebCore namespace and also we shouldn't use leading underscores since
18082         those are reserved for the compiler and standard library. Added a new function named
18083         setDefaultThreadViolationBehavior and an enum for the parameter. Removed the
18084         threadViolationIsException parameter from WebCoreReportThreadViolation since we use
18085         a global variable for it now. Got rid of the unnecessary use of do while (0) in the
18086         WebCoreThreadViolationCheck macro -- since it's only a single function call it's already
18087         a statement and doesn't need to be turned into one with the do while (0) trick.
18089         * platform/mac/ThreadCheck.mm:
18090         (WebCore::readThreadViolationBehaviorFromUserDefaults): Moved the code to read from
18091         NSUserDefaults into this helper function. Changed it to use stringForKey instead of
18092         objectForKey so we don't get a "method not found" if someone puts something other than
18093         a string in there. Updated to use the new globals.
18094         (WebCore::setDefaultThreadViolationBehavior): Added.
18095         (WebCore::reportThreadViolation): Simplified, now that most of the work is in the
18096         readThreadViolationBehaviorFromUserDefaults function.
18097         (WebCoreReportThreadViolation): Changed to use a global variable instead of parameter
18098         to determine how to report a violation. Added LogOnFirstThreadViolation, which will
18099         log only once for each function that violates.
18101         * WebCore.exp: Updated for above changes.
18103 2007-07-08  Mitz Pettel  <mitz@webkit.org>
18105         Reviewed by Darin.
18107         - fix http://bugs.webkit.org/show_bug.cgi?id=14221
18108           Repro crash (ASSERTION FAILED: oldText in RenderBlock::updateFirstLetter() during relayout of :before content with first-letter style)
18110         Test: fast/css-generated-content/before-with-first-letter.html
18112         * rendering/RenderContainer.cpp:
18113         (WebCore::RenderContainer::updateBeforeAfterContentForContainer): If a child
18114         of the existing 'before' container is not text, do not assume that it is an
18115         image, since it can also be an inline wrapping a first-letter. In that case,
18116         do not update its style (so in particular, keep it a FIRST_LETTER type style)
18117         and leave it to updateFirstLetter() to take care of.
18119 2007-07-07  Sam Weinig  <sam@webkit.org>
18121         Reviewed by Oliver Hunt.
18123         Bailout early in Window::put() if attribute is readonly to avoid
18124         extra calls to isSafeScript().
18126         * bindings/js/kjs_window.cpp:
18127         (KJS::Window::put):
18129 2007-07-07  Darin Adler  <darin@apple.com>
18131         Reviewed by Oliver Hunt.
18133         - fix <rdar://problem/5292364> REGRESSION: ZX Spectrum 3.0 widget - graphic anomalies in widget window frame
18135         Updated Dashboard quirk so it affects fill, stroke, and clip, rather than just stroke.
18137         Test: fast/canvas/fill-stroke-clip-reset-path.html
18139         * html/CanvasRenderingContext2D.h: Added clearPathForDashboardBackwardCompatibilityMode.
18140         * html/CanvasRenderingContext2D.cpp:
18141         (WebCore::CanvasRenderingContext2D::clearPathForDashboardBackwardCompatibilityMode): Added.
18142         (WebCore::CanvasRenderingContext2D::fill): Call the new function.
18143         (WebCore::CanvasRenderingContext2D::stroke): Replaced in-line code with a call to the new function.
18144         (WebCore::CanvasRenderingContext2D::clip): Call the new function.
18146 2007-07-07  Rob Buis  <buis@kde.org>
18148         Reviewed and tweaked by Darin.
18150         http://bugs.webkit.org/show_bug.cgi?id=8994
18151         Canvas doesn't reset on resize
18153         Also reset the rendering context when resetting the canvas.
18155         * html/HTMLCanvasElement.cpp:
18156         (WebCore::HTMLCanvasElement::reset):
18157         (WebCore::HTMLCanvasElement::drawingContext):
18159 2007-07-07  Alexey Proskuryakov  <ap@webkit.org>
18161         Reviewed by Maciej.
18163         http://bugs.webkit.org/show_bug.cgi?id=14525
18164         Support exslt:node-set()
18166         Test: fast/xsl/exslt-node-set.xml
18168         * xml/XSLTExtensions.cpp: Added.
18169         (WebCore::exsltNodeSetFunction): A copy of exslt:node-set() implementation
18170         from libexslt 1.1.11 (shipped with Tiger).
18171         (WebCore::registerXSLTExtensions): This function registers any WebCore-provided
18172         extensions on a context. Currently, the only extension is exslt:node-set().
18173         * xml/XSLTExtensions.h: Added.
18175         * xml/XSLTProcessor.cpp:
18176         (WebCore::XSLTProcessor::transformToString):
18177         Register extensions when creating a context.
18179         * WebCore.pro:
18180         * WebCore.vcproj/WebCore.vcproj:
18181         * WebCore.xcodeproj/project.pbxproj:
18182         * WebCoreSources.bkl:
18183         Add XSLTExtensions.{h,cpp} to projects.
18185 2007-07-06  Maciej Stachowiak  <mjs@apple.com>
18187         Reviewed by Oliver.
18189         - fixed <rdar://problem/5133420> ASSERT in WebDocumentLoaderMac::decreaseLoadCount() un-discarding Gmail message
18190         
18191         test case: fast/loader/early-load-cancel.html
18193         * loader/ResourceLoader.cpp:
18194         (WebCore::ResourceLoader::didCancel): Don't send cancel-related client callbacks
18195         if we never even sent willSendRequest because we were deferred.
18197 2007-07-06  Oliver Hunt  <oliver@apple.com>
18199         Reviewed by Maciej.
18201         Pulled a number of methods from WebKit and WebCoreFrameBridge into 
18202         C++ objects.
18204         * WebCore.exp:
18205         * WebCore.xcodeproj/project.pbxproj:
18206         * editing/Editor.cpp:
18207         (WebCore::Editor::replaceMarkedText):
18208             From -[WebCoreFrameBridge replaceMarkedTextWithText:]
18209         * editing/Editor.h:
18210         * page/Frame.cpp:
18211         (WebCore::Frame::setMarkedTextRange):
18212             Pulled platform independent logic from Mac specific implementation
18213         (WebCore::Frame::selectRangeInMarkedText):
18214             Converted from -[WebHTMLView _selectRangeInMarkedText:]
18215         * page/Frame.h:
18216         * page/mac/FrameMac.mm:
18217         (WebCore::Frame::setMarkedTextRange):
18218             Now only does Mac specific logic when manipulating initial
18219             NSAttributedString
18220         * page/mac/WebCoreFrameBridge.h:
18221         * page/mac/WebCoreFrameBridge.mm:
18222             Removed -[WebCoreFrameBridge replaceMarkedTextWithText:]
18224 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18226         Reviewed by Darin.
18228         - fix http://bugs.webkit.org/show_bug.cgi?id=14545
18229           REGRESSION (r21854-r21869): Repro crash in RenderBlock::updateFirstLetter @ nola.com/rose/
18231         Test: fast/css/first-letter-capitalized.html
18233         * rendering/RenderBlock.cpp:
18234         (WebCore::RenderBlock::updateFirstLetter): Moved the call to setFirstLetter
18235         further down so that the first letter is not destroyed if a text transform
18236         is applied to the remaining text fragment when it is add to the render tree.
18237         * rendering/RenderText.cpp:
18238         (WebCore::RenderText::previousCharacter): Factored out of setTextInternal.
18239         (WebCore::RenderText::setTextInternal): Changed to call previousCharacter().
18240         * rendering/RenderText.h:
18241         * rendering/RenderTextFragment.cpp:
18242         (WebCore::RenderTextFragment::previousCharacter): Override to return the
18243         character in the original string before the start of the fragment. 
18244         * rendering/RenderTextFragment.h:
18246 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18248         Reviewed by Beth.
18250         - fix http://bugs.webkit.org/show_bug.cgi?id=14536
18251           Unnecessary layout done when mousing down in text field
18253         No test possible because there is no change in functionality.
18255         * rendering/RenderTextControl.cpp:
18256         (WebCore::RenderTextControl::setStyle): Reset the height and the width in
18257         the old style to avoid getting a layout hint as a result of having mutated
18258         the old style during layout.
18259         (WebCore::RenderTextControl::layout): Update children's layout if an inner
18260         block's dimensions should change. This need for layout was previously masked
18261         by the bug.
18263 2007-07-06  Brady Eidson  <beidson@apple.com>
18265         Fix builds that use IconDatabaseNone.cpp - better, this time
18267         * loader/icon/IconDatabaseNone.cpp:
18268         (WebCore::IconDatabase::isOpen):
18270 2007-07-06  Brady Eidson  <beidson@apple.com>
18272         Fix builds that use IconDatabaseNone.cpp
18274         * loader/icon/IconDatabaseNone.cpp:
18275         (WebCore::IconDatabase::databasePath): 
18277 2007-07-06  John Sullivan  <sullivan@apple.com>
18279         Reviewed by Brady
18280         
18281         - WebCore part of fix for: 
18282           <rdar://problem/5310739> Time Machine shouldn't back up WebKit's icon database files
18283         
18284         * loader/icon/IconDatabase.h:
18285         * loader/icon/IconDatabase.cpp:
18286         (WebCore::IconDatabase::isOpen): 
18287         made this method const (necessary to make IconDatabase::databasePath const)
18288         (WebCore::IconDatabase::databasePath): 
18289         new method, returns SQLDatabase's path if open, otherwise empty string
18290         
18291         * loader/icon/SQLDatabase.cpp:
18292         (WebCore::SQLDatabase::open):
18293         don't append a null character to the m_path ivar. The appended null character was making the path()
18294         method return a String with a trailing null, which is bad. However, there were no callers to the
18295         path() method until now. Instead of appending a null character to the ivar, use charactersWithNullTermination()
18296         instead of characters() when opening the database.
18297         
18298         * loader/icon/SQLDatabase.h:
18299         (WebCore::SQLDatabase::isOpen):
18300         made this method const (necessary to make IconDatabase::databasePath const)
18301         (WebCore::SQLDatabase::path):
18302         made this method const (not required for these changes, but seemed worth doing at the same time)
18304         * WebCore.exp:
18305         added symbol for IconDatabase::databasePath
18307 2007-07-06  George Staikos  <staikos@kde.org>
18309         No real functional change - just move the localizations out and
18310         stick some placeholder text in.
18312         * platform/qt/Localizations.cpp: Added.
18313         (WebCore::submitButtonDefaultLabel):
18314         (WebCore::inputElementAltText):
18315         (WebCore::resetButtonDefaultLabel):
18316         (WebCore::defaultLanguage):
18317         (WebCore::searchableIndexIntroduction):
18318         (WebCore::fileButtonChooseFileLabel):
18319         (WebCore::fileButtonNoFileSelectedLabel):
18320         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
18321         (WebCore::contextMenuItemTagDownloadLinkToDisk):
18322         (WebCore::contextMenuItemTagCopyLinkToClipboard):
18323         (WebCore::contextMenuItemTagOpenImageInNewWindow):
18324         (WebCore::contextMenuItemTagDownloadImageToDisk):
18325         (WebCore::contextMenuItemTagCopyImageToClipboard):
18326         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
18327         (WebCore::contextMenuItemTagCopy):
18328         (WebCore::contextMenuItemTagGoBack):
18329         (WebCore::contextMenuItemTagGoForward):
18330         (WebCore::contextMenuItemTagStop):
18331         (WebCore::contextMenuItemTagReload):
18332         (WebCore::contextMenuItemTagCut):
18333         (WebCore::contextMenuItemTagPaste):
18334         (WebCore::contextMenuItemTagNoGuessesFound):
18335         (WebCore::contextMenuItemTagIgnoreSpelling):
18336         (WebCore::contextMenuItemTagLearnSpelling):
18337         (WebCore::contextMenuItemTagSearchWeb):
18338         (WebCore::contextMenuItemTagLookUpInDictionary):
18339         (WebCore::contextMenuItemTagOpenLink):
18340         (WebCore::contextMenuItemTagIgnoreGrammar):
18341         (WebCore::contextMenuItemTagSpellingMenu):
18342         (WebCore::contextMenuItemTagShowSpellingPanel):
18343         (WebCore::contextMenuItemTagCheckSpelling):
18344         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
18345         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
18346         (WebCore::contextMenuItemTagFontMenu):
18347         (WebCore::contextMenuItemTagBold):
18348         (WebCore::contextMenuItemTagItalic):
18349         (WebCore::contextMenuItemTagUnderline):
18350         (WebCore::contextMenuItemTagOutline):
18351         (WebCore::contextMenuItemTagWritingDirectionMenu):
18352         (WebCore::contextMenuItemTagDefaultDirection):
18353         (WebCore::contextMenuItemTagLeftToRight):
18354         (WebCore::contextMenuItemTagRightToLeft):
18355         (WebCore::contextMenuItemTagInspectElement):
18356         (WebCore::searchMenuNoRecentSearchesText):
18357         (WebCore::searchMenuRecentSearchesText):
18358         (WebCore::searchMenuClearRecentSearchesText):
18359         (WebCore::AXWebAreaText):
18360         (WebCore::AXLinkText):
18361         (WebCore::AXListMarkerText):
18362         (WebCore::AXImageMapText):
18363         (WebCore::AXHeadingText):
18364         * platform/qt/TemporaryLinkStubs.cpp:
18366 2007-07-06  Geoffrey Garen  <ggaren@apple.com>
18368         Reviewed by Anders Carlsson.
18370         A little more FrameLoader cleanup while working on <rdar://problem/5126396>.
18371         
18372         Moved url() and URL() methods next to each other to highlight their subtlety.
18374         * loader/FrameLoader.cpp:
18375         (WebCore::FrameLoader::url):
18376         * loader/FrameLoader.h:
18378 2007-07-06  Geoffrey Garen  <ggaren@apple.com>
18380         Reviewed by Anders Carlsson.
18382         A little FrameLoader cleanup while working on <rdar://problem/5126396>.
18383         
18384         Renamed endIfNotLoading() to endIfNotLoadingMainResource() because "loading"
18385         and "loadingMainResource" have distinct meanings and this function
18386         honors the latter.
18388         (WebCore::FrameLoader::endIfNotLoadingMainResource): Protect after the
18389         early return to avoid ref count churn.
18390         * loader/FrameLoader.h:
18391         (WebCore::FrameLoader::isLoadingMainResource): Inlined this function.
18393 2007-07-06  Adam Treat  <adam@staikos.net>
18395         Reviewed by George Staikos.
18397         Convert QWebFrame to a QFrame from a scroll area.
18399         * page/qt/EventHandlerQt.cpp:
18400         (WebCore::EventHandler::passSubframeEventToSubframe):
18401         (WebCore::EventHandler::passWheelEventToWidget):
18402         (WebCore::EventHandler::createDraggingClipboard):
18403         (WebCore::EventHandler::passMousePressEventToScrollbar):
18404         * platform/ScrollView.h:
18405         * platform/Widget.h:
18406         * platform/qt/PlatformScrollBar.h:
18407         * platform/qt/PlatformScrollBarQt.cpp:
18408         (WebCore::PlatformScrollbar::setRect):
18409         (WebCore::PlatformScrollbar::frameGeometry):
18410         (WebCore::PlatformScrollbar::setFrameGeometry):
18411         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
18412         (WebCore::PlatformScrollbar::handleMousePressEvent):
18413         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
18414         * platform/qt/ScrollViewQt.cpp:
18415         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
18416         (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
18417         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
18418         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
18419         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
18420         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
18421         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
18422         (WebCore::ScrollView::ScrollView):
18423         (WebCore::ScrollView::~ScrollView):
18424         (WebCore::ScrollView::setScrollArea):
18425         (WebCore::ScrollView::horizontalScrollBar):
18426         (WebCore::ScrollView::verticalScrollBar):
18427         (WebCore::ScrollView::updateContents):
18428         (WebCore::ScrollView::update):
18429         (WebCore::ScrollView::visibleWidth):
18430         (WebCore::ScrollView::visibleHeight):
18431         (WebCore::ScrollView::visibleContentRect):
18432         (WebCore::ScrollView::setContentsPos):
18433         (WebCore::ScrollView::resizeContents):
18434         (WebCore::ScrollView::setFrameGeometry):
18435         (WebCore::ScrollView::geometryChanged):
18436         (WebCore::ScrollView::contentsX):
18437         (WebCore::ScrollView::contentsY):
18438         (WebCore::ScrollView::contentsWidth):
18439         (WebCore::ScrollView::contentsHeight):
18440         (WebCore::ScrollView::windowToContents):
18441         (WebCore::ScrollView::contentsToWindow):
18442         (WebCore::ScrollView::scrollOffset):
18443         (WebCore::ScrollView::maximumScroll):
18444         (WebCore::ScrollView::scrollBy):
18445         (WebCore::ScrollView::scrollRectIntoViewRecursively):
18446         (WebCore::ScrollView::hScrollbarMode):
18447         (WebCore::ScrollView::vScrollbarMode):
18448         (WebCore::ScrollView::suppressScrollbars):
18449         (WebCore::ScrollView::setHScrollbarMode):
18450         (WebCore::ScrollView::setVScrollbarMode):
18451         (WebCore::ScrollView::setScrollbarsMode):
18452         (WebCore::ScrollView::setStaticBackground):
18453         (WebCore::ScrollView::inWindow):
18454         (WebCore::ScrollView::updateScrollbars):
18455         (WebCore::ScrollView::scrollbarUnderMouse):
18456         (WebCore::ScrollView::addChild):
18457         (WebCore::ScrollView::removeChild):
18458         (WebCore::ScrollView::paint):
18459         (WebCore::ScrollView::wheelEvent):
18460         (WebCore::ScrollView::scroll):
18461         (WebCore::ScrollView::windowResizerRect):
18462         (WebCore::ScrollView::resizerOverlapsContent):
18463         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
18464         (WebCore::ScrollView::setParent):
18465         (WebCore::ScrollView::addToDirtyRegion):
18466         (WebCore::ScrollView::scrollBackingStore):
18467         (WebCore::ScrollView::updateBackingStore):
18468         * platform/qt/WidgetQt.cpp:
18469         (WebCore::WidgetPrivate::canvas):
18470         (WebCore::WidgetPrivate::setGeometry):
18471         (WebCore::WidgetPrivate::geometry):
18472         (WebCore::Widget::setQWidget):
18473         (WebCore::Widget::paint):
18474         (WebCore::Widget::originalGeometry):
18475         (WebCore::Widget::geometryChanged):
18477 2007-07-06  Anders Carlsson  <andersca@apple.com>
18479         Reviewed by Mitz.
18481         <rdar://problem/5280532> 
18482         REGRESSION: Can't access nested embed by document.name if object is not immediate parent
18483         
18484         Traverse up the tree looking for an object element.
18485         
18486         * html/HTMLEmbedElement.cpp:
18487         (WebCore::HTMLEmbedElement::getInstance):
18489 2007-07-06  George Staikos  <staikos@kde.org>
18491         Qt build fix: Don't clobber qmake variables that are already set.
18493         * WebCore.pro:
18495 2007-07-05  Maciej Stachowiak  <mjs@apple.com>
18497         Reviewed by Antti.
18499         - <rdar://problem/5311093> JavaScriptCore fails to build with strict-aliasing warnings
18501         * platform/StringHash.h:
18502         (WTF::): Adapt to newer way to do storage types.
18504 2007-07-06  Bernhard Rosenkraenzer  <bero@arklinux.org>
18506         Reviewed by Sam.
18508         Fix for http://bugs.webkit.org/show_bug.cgi?id=13985
18509         Bug 13985: WebCore/rendering/RenderTable.cpp fails to compile with gcc 4.2.x
18511         * rendering/RenderTable.cpp:
18512         (WebKit::RenderTable::calcBorderLeft)
18513         (WebKit::RenderTable::calcBorderRight)
18515 2007-07-06  Maxime Britto  <mbritto@pleyo.com>
18517         Reviewed by Maciej.
18519         Fix http://bugs.webkit.org/show_bug.cgi?id=13038
18520         Bug 13038: ASSERTION FAILED: item->target().isEmpty() || m_mainFrame->tree()->find(item->target()) == m_mainFrame
18522         Modify an ASSERT in goToItem related to going back/forward in history.  We don't need to check the frameset if the target is _blank.
18523         The attached test case is a manual one since it relies on having pages opened in tabs in Safari.
18525         * manual-tests/goBack-blank-tab-page.html: Added.
18526         * manual-tests/resources/before-go-back.html: Added.
18527         * manual-tests/resources/will-go-back.html: Added.
18528         * page/Page.cpp:
18529         (WebCore::Page::goToItem):
18531 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18533         Reviewed by Maciej.
18535         - fix http://bugs.webkit.org/show_bug.cgi?id=14400
18536           Assertion failure (SHOULD NEVER BE REACHED) going back on YouTube
18538         Test: fast/forms/button-state-restore.html
18540         * dom/Document.h:
18541         (WebCore::Document::isFormElementRegistered): Added.
18542         * html/HTMLGenericFormElement.cpp:
18543         (WebCore::HTMLGenericFormElement::closeRenderer): Restore saved form
18544         element state only if the element is registered with the document to
18545         have its state saved.
18547 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18549         Reviewed by Maciej.
18551         - fix http://bugs.webkit.org/show_bug.cgi?id=14487
18552           Incomplete repaint of background and border of boxes with -webkit-border-fit:lines
18554         Test: fast/repaint/border-fit-lines.html
18556         * rendering/RenderObject.cpp:
18557         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Do a full repaint if
18558         -webkit-border-fit:lines was specified.
18560 2007-07-06  Tony Chang  <idealisms@gmail.com>
18562         Reviewed by Maciej.
18564         http://bugs.webkit.org/show_bug.cgi?id=14516
18565         Bug 14516: crash loading multipart/x-mixed-replace data on windows safari
18567         NULL check m_resourceData to prevent a crash in Safari on Windows.
18569         * loader/ResourceLoader.cpp:
18570         (WebCore::ResourceLoader::clearResourceData):
18572 2007-07-06  Jungshik Shin  <jungshik.shin@gmail.com>
18574         Reviewed by Alexey.
18576         - Add UTF-32 encoding support 
18577           http://bugs.webkit.org/show_bug.cgi?id=13415
18579         Test:
18580          - fast/encoding/utf-32-big-endian-bom.html
18581          - fast/encoding/utf-32-big-endian-nobom.xml
18582          - fast/encoding/utf-32-little-endian-bom.html
18583          - fast/encoding/utf-32-little-endian-nobom.xml
18585         * loader/TextResourceDecoder.cpp:
18586         (WebCore::TextResourceDecoder::checkForBOM):
18587         (WebCore::TextResourceDecoder::checkForHeadCharset):
18588         * platform/TextDecoder.cpp:
18589         (WebCore::TextDecoder::checkForBOM):
18590         * platform/TextDecoder.h:
18591         * platform/TextEncoding.cpp:
18592         (WebCore::UTF32BigEndianEncoding):
18593         (WebCore::UTF32LittleEndianEncoding):
18594         * platform/TextEncoding.h:
18596 2007-07-06  Holger Hans Peter Freyther  <zecke@selfish.org>
18598         Reviewed by Maciej.
18600         Start implementening RenderThemeGdk/Gtk using GtkStyle. The approach is
18601         to allocate one native control for each widget type. And use margins, spacing,
18602         style properties from the Widget. And for drawing use GtkStyle on the rect supplied.
18604         This should allow nice integration and be relative resource friendly. Mozilla is using
18605         a similiar approach. They seem to share the GdkPixmap among several operations and this
18606         will be an obvious candidate for improvements. Create a normally big enough GdkPixmap and
18607         use that for drawing and then set clip regions for cairo to make sure to not go beyond the
18608         width and height.
18610         The next steps will be to introduce states for the widgets, add more widgets, handle focus,
18611         and various other style attributes, honor the size and margin and use that to propagate this
18612         back to RenderStyle*.
18614         * platform/gdk/RenderThemeGdk.cpp:
18615         (WebCore::RenderThemeGdk::RenderThemeGdk):
18616         (WebCore::RenderThemeGdk::setCheckboxSize):
18617         (WebCore::RenderThemeGdk::paintCheckbox):
18618         (WebCore::RenderThemeGdk::setRadioSize):
18619         (WebCore::RenderThemeGdk::paintRadio):
18620         (WebCore::RenderThemeGdk::paintButton):
18621         (WebCore::RenderThemeGdk::copyToContext):
18622         (WebCore::RenderThemeGdk::gtkButton):
18623         (WebCore::RenderThemeGdk::gtkCheckbox):
18624         (WebCore::RenderThemeGdk::gtkRadioButton):
18625         (WebCore::RenderThemeGdk::gtkWindowContainer):
18626         * platform/gdk/RenderThemeGdk.h:
18628 2007-07-06  Rob Buis  <buis@kde.org>
18630         Reviewed by Adam.
18632         http://bugs.webkit.org/show_bug.cgi?id=14442
18633         Adding a stop with value 1.0 to a gradient that has already been used has no effect
18635         Implement start and end stop handling differently so they are not
18636         in the color stop array.
18638         * html/CanvasGradient.cpp:
18639         (WebCore::compareStops):
18640         (WebCore::CanvasGradient::getColor):
18641         (WebCore::CanvasGradient::findStop):
18643 2007-07-06  Adam Roben  <aroben@apple.com>
18645         Fix <rdar://problem/5301994> Garbled text still showing on some sites
18647         Replace calls to GetGlyphIndices with wkGetGlyphs.
18649         Reviewed by Alice.
18651         * platform/win/GlyphPageTreeNodeWin.cpp:
18652         (WebCore::GlyphPage::fill): Use wkGetGlyphs.
18653         * platform/win/FontDataWin.cpp:
18654         (WebCore::FontData::containsCharacters):
18656 2007-07-06  Matt Lilek  <pewtermoose@gmail.com>
18658         Not reviewed - Windows build fix.
18660         * bridge/win/FrameWin.cpp:
18661         (WebCore::imageFromSelection):
18663 2007-07-06  George Staikos  <staikos@kde.org>
18665         Reviewed by Maciej.
18667         Switch USE(ICONDATABASE) to ENABLE(ICONDATABASE) and activate the
18668         flag via the .pro file
18670         * WebCore.pro:
18671         * loader/icon/IconDatabase.h:
18673 2007-07-05  John Sullivan  <sullivan@apple.com>
18675         Reviewed by Adam
18677         - WebCore part of fix for <rdar://problem/5315033>
18679         * rendering/RenderObject.h:
18680         replaced PaintRestrictionSelectionOnlyWhiteText with PaintRestrictionSelectionOnlyBlackText
18681         (WebCore::RenderObject::PaintInfo::PaintInfo):
18682         replaced forceWhiteText with forceBlackText
18684         * rendering/RenderObject.cpp:
18685         (WebCore::RenderObject::addLineBoxRects):
18686         added a useSelectionHeight parameter, which defaults to false; this method is unimplemented
18687         at this level so this has no effect.
18689         * rendering/RenderText.h:
18690         * rendering/RenderText.cpp:
18691         (WebCore::RenderText::addLineBoxRects):
18692         added a useSelectionHeight parameter, which defaults to false. If true, use the vertical position
18693         and height returned by selectionRect rather than replacing it with the more tight-fitting position
18694         and height of the line box.
18696         * dom/Range.h:
18697         * dom/Range.cpp:
18698         (WebCore::Range::addLineBoxRects):
18699         added a useSelectionHeight parameter, which defaults to false. Passes this along to RenderObject.        
18701         * page/Frame.h:
18702         renamed parameter to selectionImage
18703         * page/Frame.cpp:
18704         (WebCore::Frame::selectionTextRects):
18705         pass true for addLineBoxRects new useSelectionHeight parameter, so the rects returned by this new
18706         method will match the height that the selection would be painted here
18707         (WebCore::Frame::paint):
18708         updated for white->black name changes
18709         
18710         * page/mac/FrameMac.mm:
18711         (WebCore::Frame::selectionImage):
18712         updated for white->black name changes
18713         
18714         * rendering/InlineFlowBox.cpp:
18715         (WebCore::InlineFlowBox::paintTextDecorations):
18716         updated for white->black name changes
18718         * rendering/RenderLayer.cpp:
18719         (WebCore::RenderLayer::paintLayer):
18720         updated for white->black name changes
18722         * rendering/InlineTextBox.cpp:
18723         (WebCore::InlineTextBox::paint):
18724         updated for white->black name changes, and actually use black instead of white. This was the goal
18725         of all the name changes.
18727 2007-07-05  Anders Carlsson  <andersca@apple.com>
18729         Reviewed by Oliver.
18731         Fix layout test failures.
18732         
18733         * loader/FrameLoader.cpp:
18734         (WebCore::FrameLoader::commitProvisionalLoad):
18735         Don't make a representation if we're creating the initial document.
18737 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18739         Fix Bug 14388: Input in text fields limited to 1024 characters
18740         http://bugs.webkit.org/show_bug.cgi?id=14388
18742         Slightly modified by Adam Roben.
18744         Reviewed by Adele.
18746         Tests: fast/forms/input-implicit-length-limit.html
18747                fast/forms/input-maxlength.html
18749         * html/HTMLInputElement.cpp: Bump limit to 524288.
18750         (WebCore::HTMLInputElement::init):
18751         (WebCore::HTMLInputElement::parseMappedAttribute):
18752         * html/HTMLInputElement.h:
18754 2007-07-05  Anders Carlsson  <andersca@apple.com>
18756         Build fix.
18757         
18758         * loader/FrameLoader.cpp:
18759         (WebCore::FrameLoader::init):
18761 2007-07-05  Sam Weinig  <sam@webkit.org>
18763         Reviewed by Geoff.
18765         Add focus, blur and close functions to DOMWindow implementation class
18766         and move bindings from Window to JSDOMWindow.
18768         * bindings/js/JSDOMWindowCustom.cpp:
18769         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18770         * bindings/js/kjs_window.cpp:
18771         (KJS::Window::getOwnPropertySlot):
18772         (KJS::WindowFunc::callAsFunction):
18773         * bindings/js/kjs_window.h:
18774         (KJS::Window::):
18775         * bindings/scripts/CodeGeneratorJS.pm: Move prototype function declaration from
18776         the implementation to the header.
18777         * page/DOMWindow.cpp:
18778         (WebCore::DOMWindow::focus):
18779         (WebCore::DOMWindow::blur):
18780         (WebCore::DOMWindow::close):
18781         * page/DOMWindow.h:
18782         * page/DOMWindow.idl:
18784 2007-07-05  Justin Garcia  <justin.garcia@apple.com>
18786         Reviewed by Harrison.
18788         <rdar://problem/5279521> REGRESSION: In Mail, a crash occurs at WebCore::Range::startPosition() when attempting to apply alignment to selected image/text in message body
18790         * editing/TextIterator.cpp:
18791         (WebCore::TextIterator::exitNode): Previously emitted content shouldn't have
18792         to come from a text node in order to emit a '\n' as we exit block containers.
18794 2007-07-05  Anders Carlsson  <andersca@apple.com>
18796         Reviewed by Geoff.
18798         <rdar://problem/5315284> REGRESSION: Leopard Launch Time - plugins are being accessed at startup.
18800         Set a response that has a MIME type of "text/html" on the document loader so WebKit won't refresh the 
18801         plugin database looking for a plug-in that can handle the document's MIME type (which will be null anyway).
18802                  
18803         * loader/FrameLoader.cpp:
18804         (WebCore::FrameLoader::init):
18806 2007-07-05  Anders Carlsson  <andersca@apple.com>
18808         Reviewed by Oliver.
18810         <rdar://problem/5106788>
18811         WebKit loads user style sheets too late as seen in Mail (breaks DataDetectors; Mail flashes wrong font)
18813         Let the document know when the user style sheet is loading so that it try not to display anything
18814         until the user style sheet has finished loading.
18815         
18816         * page/Frame.cpp:
18817         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
18818         (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
18819         (WebCore::UserStyleSheetLoader::setCSSStyleSheet):
18820         (WebCore::Frame::setUserStyleSheetLocation):
18822 2007-07-05  Sam Weinig  <sam@webkit.org>
18824         Reviewed by Darin.
18826         Move JSDOMWindow overriding getOwnPropertySlot logic from KJS::Window
18827         up into JSDOMWindow.  No change in functionality so no testcase required. 
18829         * bindings/js/JSDOMWindowCustom.cpp:
18830         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18831         * bindings/js/kjs_window.cpp:
18832         (KJS::Window::getOwnPropertySlot):
18833         * bindings/js/kjs_window.h:
18835 2007-07-05  Mitz Pettel  <mitz@webkit.org>
18837         Reviewed and Landed by Sam.
18839         - fix bug 14465 for window.showModalDialog
18841         * bindings/js/kjs_window.cpp:
18842         (KJS::parseModalDialogFeatures):
18843         (KJS::showModalDialog):
18845 2007-07-05  Sam Weinig  <sam@webkit.org>
18847         Reviewed by Mitz.
18849         Patch for http://bugs.webkit.org/show_bug.cgi?id=14465
18850         window.open() uses the literal "undefined" as the URL
18852         * bindings/js/kjs_window.cpp:
18853         (KJS::WindowFunc::callAsFunction): add checks for undefined and null values when setting the url.
18854         * manual-tests/open-url-undefined.html: Added.
18856 2007-07-05  Holger Hans Peter Freyther  <zecke@selfish.org>
18858         Reviewed by Rob Buis.
18860         Rework FontData and FontPlatformData for the Gdk work to make valgrind
18861         happy.
18863         Move destroying of FontConfig and Cairo objects held in FontPlatformData
18864         to FontData::platformDestroy. The ownership of these objects is held by
18865         FontData. This is following the Mac and Qt port at least.
18867         Currently it is possible that FontPlatformData will not create cairo resources
18868         in this case at least make sure the variables are initialized to 0.
18869         Initialize x,y of the cairo_glyph_t with zero to avoid extents.x_advance depending
18870         on subtracing with not defined values.
18872         FontPlatformData::hash. Using FontDescription is a bad idea as we don't have a clue
18873         about how it is packed, if holes are present, etc. The FcPattern and the m_fontMatrix
18874         should be good enough to describe the Font. All other objects are created using these
18875         variables
18877         Replace C-style casts with C++ casts, in this case reinterpret_cast.
18879         * platform/gdk/FontDataGdk.cpp:
18880         (WebCore::FontData::platformInit): Don't assert
18881         (WebCore::FontData::platformDestroy): Take over ownership
18882         (WebCore::FontData::platformWidthForGlyph): initialize
18883         (WebCore::FontData::setFont): be paranoid and assert
18884         * platform/gdk/FontPlatformData.h:
18885         (WebCore::FontPlatformData::FontPlatformData): Initialize everything
18886         (WebCore::FontPlatformData::hash): make valgrind happy and don't use m_fontDescription
18887         * platform/gdk/FontPlatformDataGdk.cpp:
18888         (WebCore::FontPlatformData::FontPlatformData):
18889         (WebCore::FontPlatformData::~FontPlatformData): FontData::platformDestroy will do this
18890         (WebCore::FontPlatformData::list): Don't use C-style casts.
18891         (WebCore::FontPlatformData::setFont): m_fontFace, m_fontMatrix, m_options might not be initialized
18892         (WebCore::FontPlatformData::operator==): Don't use C-style casts.
18894 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18896         Reviewed by Mark Rowe.
18898         http://bugs.webkit.org/show_bug.cgi?id=14445
18899         GraphicsContextCairo code style cleanup
18901         Follow the cr naming convention for cairo_t*.
18902         Remove trailing whitespace.
18903         Replace C casts with C++ casts.
18904         Avoid needless casts.
18906         * platform/graphics/cairo/GraphicsContextCairo.cpp:
18907         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
18908         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
18909         (WebCore::GraphicsContext::GraphicsContext):
18910         (WebCore::GraphicsContext::platformContext):
18911         (WebCore::GraphicsContext::savePlatformState):
18912         (WebCore::GraphicsContext::restorePlatformState):
18913         (WebCore::GraphicsContext::drawRect):
18914         (WebCore::adjustLineToPixelBoundaries):
18915         (WebCore::GraphicsContext::drawLine):
18916         (WebCore::GraphicsContext::drawEllipse):
18917         (WebCore::GraphicsContext::strokeArc): Save/restore the graphics state.
18918         (WebCore::GraphicsContext::drawConvexPolygon):
18919         (WebCore::GraphicsContext::fillRect):
18920         (WebCore::GraphicsContext::clip):
18921         (WebCore::GraphicsContext::drawFocusRing):
18922         (WebCore::GraphicsContext::roundToDevicePixels):
18923         (WebCore::GraphicsContext::translate):
18924         (WebCore::GraphicsContext::origin):
18925         (WebCore::GraphicsContext::setPlatformStrokeThickness):
18926         (WebCore::GraphicsContext::setPlatformStrokeStyle):
18927         (WebCore::GraphicsContext::setPlatformFont):
18928         (WebCore::GraphicsContext::concatCTM):
18929         (WebCore::GraphicsContext::addInnerRoundedRectClip):
18930         (WebCore::GraphicsContext::beginTransparencyLayer):
18931         (WebCore::GraphicsContext::endTransparencyLayer):
18932         (WebCore::GraphicsContext::clearRect):
18933         (WebCore::GraphicsContext::setLineCap):
18934         (WebCore::GraphicsContext::setLineJoin):
18935         (WebCore::GraphicsContext::setMiterLimit):
18936         (WebCore::GraphicsContext::setCompositeOperation):
18937         (WebCore::GraphicsContext::beginPath):
18938         (WebCore::GraphicsContext::addPath):
18939         (WebCore::GraphicsContext::rotate):
18940         (WebCore::GraphicsContext::scale):
18941         * platform/graphics/cairo/ImageBufferCairo.cpp:
18942         (WebCore::ImageBuffer::ImageBuffer):
18943         * platform/graphics/cairo/ImageCairo.cpp: Avoid the confusing ctxt/context naming scheme.
18944         (WebCore::BitmapImage::draw):
18945         (WebCore::Image::drawPattern):
18947 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18949         Reviewed by Mark Rowe.
18951         http://bugs.webkit.org/show_bug.cgi?id=14531
18952         Cairo SVGImage::nativeImageForCurrentFrame() has no return
18954         Return the Cairo surface from the frame cache.
18956         Also add a fall-through else macro with notImplemented() so that future
18957         ports do not make the same mistake.
18959         * platform/graphics/svg/SVGImage.cpp:
18960         (WebCore::SVGImage::nativeImageForCurrentFrame):
18962 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18964         Reviewed by Mark Rowe.
18966         http://bugs.webkit.org/show_bug.cgi?id=14513
18967         Cairo animated GIF support is broken
18969         Implement ImageSource::frameIsCompleteAtIndex() to enable animated GIFs.
18971         * platform/graphics/cairo/ImageSourceCairo.cpp:
18972         (WebCore::ImageSource::frameIsCompleteAtIndex):
18974 2007-07-04  Matt Perry  <mpComplete@gmail.com>
18976         Reviewed by Adam.
18978         Fix for http://bugs.webkit.org/show_bug.cgi?id=13400
18979         Bug 13400: REGRESSION (r20809-20814): No back entry created for navigations created by assigning to document.location
18980         <rdar://problem/5153025>
18982         Treat userGesture as always true for setLocation, forcing a back/forward
18983         entry to be created.
18985         * bindings/js/JSHTMLDocumentCustom.cpp:
18986         (WebCore::JSHTMLDocument::setLocation):
18988 2007-07-04  Adam Roben  <aroben@apple.com>
18990         Restore MouseEventWithHitTestResults::targetNode's old behavior
18992         Reviewed by Mark.
18994         Fixes fast/images/imagemap-case and fast/replace/image-map.
18996         * page/MouseEventWithHitTestResults.cpp:
18997         (WebCore::MouseEventWithHitTestResults::targetNode): Use the inner
18998         node, not the inner non-shared node.
19000 2007-07-04  Adam Roben  <aroben@apple.com>
19002         Mac, Qt, and Gdk build fixes.
19004         * page/EventHandler.h:
19005         * page/gdk/EventHandlerGdk.cpp:
19006         * page/mac/EventHandlerMac.mm:
19007         (WebCore::EventHandler::passSubframeEventToSubframe):
19008         * page/qt/EventHandlerQt.cpp:
19010 2007-07-04  Adam Roben  <aroben@apple.com>
19012         Fix the Qt/Gdk builds.
19014         * page/gdk/EventHandlerGdk.cpp:
19015         * page/qt/EventHandlerQt.cpp:
19017 2007-07-04  Adam Roben  <aroben@apple.com>
19019         Move tooltip logic down into WebCore so that it can be shared cross-platform
19021         Reviewed by Sam.
19023         * page/Chrome.cpp:
19024         (WebCore::Chrome::setToolTip): Added.
19025         * page/Chrome.h:
19026         * page/ChromeClient.h:
19027         * page/EventHandler.cpp:
19028         (WebCore::EventHandler::mouseMoved): Call Chrome::setToolTip.
19029         * platform/graphics/svg/SVGImageEmptyClients.h:
19031         Added stubs for Gdk:
19033         * platform/gdk/ChromeClientGdk.h:
19034         * platform/gdk/TemporaryLinkStubs.cpp:
19035         (ChromeClientGdk::setToolTip):
19037 2007-07-04  Adam Roben  <aroben@apple.com>
19039         Add Settings::showsURLsInToolTips
19041         Reviewed by Sam.
19043         * WebCore.exp:
19044         * page/Settings.cpp:
19045         (WebCore::Settings::Settings):
19046         * page/Settings.h:
19048 2007-07-04  Adam Roben  <aroben@apple.com>
19050         Move logic for calling mouseDidMoveOverElement into WebCore
19052         Reviewed by Sam.
19054         * page/EventHandler.cpp:
19055         (WebCore::EventHandler::mouseMoved): Added. Calls Chrome::mouseDidMoveOverElement.
19056         (WebCore::EventHandler::handleMouseMoveEvent): Now takes an optional
19057         HitTestResult* parameter which is used to communicate to the caller the
19058         node the mouse is over.
19059         * page/EventHandler.h:
19060         * page/mac/EventHandlerMac.mm:
19061         (WebCore::EventHandler::mouseMoved): Changed to call the overloaded
19062         mouseMoved().
19063         (WebCore::EventHandler::passMouseMoveEventToSubframe): Pass hoveredNode
19064         through to the subframe so we can get the deepest node hovered, not
19065         just the node's parent frame.
19066         * page/win/EventHandlerWin.cpp:
19067         (WebCore::EventHandler::passMouseMoveEventToSubframe): Ditto.
19069 2007-07-04  Adam Roben  <aroben@apple.com>
19071         Add Chrome::mouseDidMoveOverElement
19073         This does the work of calling up to the ChromeClient (which will call
19074         the UI delegate).
19076         Reviewed by Sam.
19078         * page/Chrome.cpp:
19079         (WebCore::Chrome::mouseDidMoveOverElement): Added.
19080         * page/Chrome.h:
19081         * page/ChromeClient.h:
19082         * platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to
19083         ChromeClient.
19084         * platform/gdk/ChromeClientGdk.h:
19085         * platform/gdk/TemporaryLinkStubs.cpp:
19086         (ChromeClientGdk::mouseDidMoveOverElement):
19088 2007-07-04  Adam Roben  <aroben@apple.com>
19090         Changed PlatformMouseEvent to store the modifier flags of the event
19092         Reviewed by Sam.
19094         * platform/PlatformMouseEvent.h:
19095         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19096         * platform/mac/PlatformMouseEventMac.mm:
19097         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19098         * platform/win/PlatformMouseEventWin.cpp:
19099         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19101 2007-07-04  Adam Roben  <aroben@apple.com>
19103         Add HitTestResult::setToNonShadowAncestor
19105         Reviewed by Sam.
19107         * page/EventHandler.cpp:
19108         (WebCore::EventHandler::hitTestResultAtPoint): Moved logic into
19109         HitTestResult::setToNonShadowAncestor.
19110         * rendering/HitTestResult.cpp:
19111         (WebCore::HitTestResult::setToNonShadowAncestor):
19112         * rendering/HitTestResult.h:
19114 2007-07-04  Adam Roben  <aroben@apple.com>
19116         Change MouseEventWithHitTestResults to hold onto a HitTestResult
19118         Reviewed by Sam.
19120         * dom/Document.cpp:
19121         (WebCore::Document::prepareMouseEvent):
19122         * page/MouseEventWithHitTestResults.cpp:
19123         (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
19124         (WebCore::MouseEventWithHitTestResults::targetNode):
19125         (WebCore::MouseEventWithHitTestResults::localPoint):
19126         (WebCore::MouseEventWithHitTestResults::scrollbar):
19127         * page/MouseEventWithHitTestResults.h:
19128         (WebCore::MouseEventWithHitTestResults::event):
19129         (WebCore::MouseEventWithHitTestResults::hitTestResult):
19131 2007-07-04  Matt Lilek  <pewtermoose@gmail.com>
19133         Not reviewed, gdk build fix.
19135         * platform/gdk/FrameGdk.cpp:
19137 2007-07-05  Antti Koivisto  <antti@apple.com>
19139         Reviewed by John.
19140         
19141         Fix Repro crash due to infinite recursion in HTMLParser::handleError @ youos.com
19142         <rdar://problem/5237811>
19143         
19144         It is possible to add table parts (thead etc) without table ancestor to a document fragment. If a new table element
19145         was added to such a part, as in
19146         
19147         div.innerHTML = '<tbody><table>';
19148         
19149         the parser error handling code would try to pop the previous table as normal. However since
19150         the table does not actually exist nothing would happen and parser would go to infinite recursion.
19151         
19152         Solution here is to pop table parts one by one when handling the error inside a fragment instead of trying to pop
19153         the table straight away (as it might not exist).
19155         * html/HTMLParser.cpp:
19156         (WebCore::HTMLParser::handleError):
19158 2007-07-04  Qing Zhao  <qing@staikos.net>
19160         Reviewed by George Staikos.
19162         Draw menulist (comboboxes) without text overlap on the button.
19164         * platform/qt/RenderThemeQt.cpp:
19165         (WebCore::RenderThemeQt::setPopupPadding):
19167 2007-07-04  George Staikos  <staikos@kde.org>
19169         Compile
19171         * page/qt/FrameQt.cpp:
19172         * WebCore.pro:
19174 2007-07-04  Sam Weinig  <sam@webkit.org>
19176         Reviewed by Mitz.
19178         Patch for http://bugs.webkit.org/show_bug.cgi?id=14504
19179         REGRESSION (r23573): Amazon Book Excerpt can not be viewed in recent nightly
19181         - Made it possible (again) to shadow window properties with local variable names.
19183         Test: fast/dom/Window/window-property-shadowing.html
19185         * bindings/js/JSDOMWindowCustom.cpp:
19186         (WebCore::JSDOMWindow::customPut):
19187         * bindings/js/kjs_window.cpp:
19188         (KJS::Window::put):
19189         * bindings/scripts/CodeGeneratorJS.pm:
19190         * page/DOMWindow.idl:
19192 2007-07-03  Alice Liu  <alice.liu@apple.com>
19194         Reviewed by Adam.
19196         Fixed <rdar://problem/5225119> support smart pasting on Windows
19198         * WebCore.vcproj/WebCore.vcproj:
19199         * WebCore.xcodeproj/project.pbxproj:
19200             Added new files
19201         * editing/SmartReplace.cpp: Added.
19202         (WebCore::isCharacterSmartReplaceExempt):
19203             Added non-CF implementation placeholder
19204         * editing/SmartReplace.h: Added.
19205         * editing/SmartReplaceCF.cpp: Added.
19206         (WebCore::getSmartSet):
19207         (WebCore::isCharacterSmartReplaceExempt):
19208             Added new implementation
19210         * bridge/win/FrameWin.cpp:
19211         * page/Frame.h:
19212         * page/mac/FrameMac.mm:
19213             Removed old declaration and implementation
19215         * editing/ReplaceSelectionCommand.cpp:
19216         (WebCore::ReplaceSelectionCommand::doApply):
19217             Changed to call the new function instead of old
19219         * page/mac/WebCoreFrameBridge.h:
19220         * page/mac/WebCoreFrameBridge.mm:
19221             Removed old declaration and implementation
19222         (-[WebCoreFrameBridge smartInsertForString:replacingRange:beforeString:afterString:]):
19223             Changed to call the new function instead of old
19225         * platform/win/PasteboardWin.cpp:
19226         (WebCore::Pasteboard::Pasteboard):
19227             Register new clipboard format
19228         (WebCore::Pasteboard::writeSelection):
19229             Set data for smartpaste format on clipboard
19230         (WebCore::Pasteboard::canSmartReplace):
19231             Added non-stub implementation
19233 2007-07-04  Qing Zhao  <qing@staikos.net>
19235         Reviewed by George Staikos.
19237         Similar to the PlatformScrollbar fixes, adjust the painter to make the
19238         styler draw all subcontrols, and in this case the focus rect, in the
19239         proper location
19241         * platform/qt/RenderThemeQt.cpp:
19242         (WebCore::RenderThemeQt::paintMenuList):
19244 2007-07-04  Mitz Pettel  <mitz@webkit.org>
19246         Reviewed by Maciej.
19248         - fix http://bugs.webkit.org/show_bug.cgi?id=14495
19249           REGRESSION: Wrong cursor is displayed during drag and drop when text is selected
19250           <rdar://problem/5312384>
19252         No test possible because DumpRenderTree cannot query the current cursor.
19254         * page/EventHandler.cpp:
19255         (WebCore::EventHandler::selectCursor): Changed into a member function and
19256         added that if the last mouse down event could not have started a
19257         selection, then the cursor should not change to an I-beam unconditionally.
19258         (WebCore::EventHandler::handleMouseMoveEvent):
19259         * page/EventHandler.h:
19261 2007-07-04  Holger Hans Peter Freyther  <zecke@selfish.org>
19263         Reviewed by Rob Buis.
19265         A little progress in tracking dependencies.
19267         * WebCore.pro: Add DEPENDPATH for the Gdk port.
19269 2007-07-03  Darin Adler  <darin@apple.com>
19271         Reviewed by Tim Hatcher.
19273         - fix <rdar://problem/5221297> Font family name in the cssText for a DOMCSSStyleDeclaration needs quotes
19275         Test: editing/style/font-family-with-space.html
19277         * css/FontFamilyValue.cpp:
19278         (WebCore::isValidCSSIdentifier): Added. Implements the same rule that the CSS lexer does.
19279         (WebCore::quoteStringIfNeeded): Changed to call isValidCSSIdentifier instead of just
19280         checking for a leading "#" character.
19281         * editing/markup.cpp:
19282         (WebCore::escapeTextForMarkup): Changed to take a String parameter for better efficiency.
19283         (WebCore::renderedText): Changed to return a String for better efficiency.
19284         (WebCore::addNamespace): Updated to pass String to escapeTextForMarkup.
19285         (WebCore::startMarkup): Updated to pass String to escapeTextForMarkup. Added missing call
19286         to escapeTextForMarkup in the special case for the style property.
19287         (WebCore::createMarkup): Changed from single quotes to double quotes and also added missing
19288         call to escapeTextForMarkup in two special cases for the style property.
19290 2007-07-03  Sam Weinig  <sam@webkit.org>
19292         Reviewed by Darin.
19294         Twelfth round of fixes for implicit 64-32 bit conversion errors.
19295         <rdar://problem/5292262>
19297         - Add casts and accompanying FIXMEs to avoid remaining compiler errors.
19299         * WebCore.xcodeproj/project.pbxproj:
19300         * loader/FrameLoader.cpp:
19301         (WebCore::FrameLoader::opened):
19302         (WebCore::FrameLoader::sendRemainingDelegateMessages):
19303         * loader/FrameLoader.h:
19304         * loader/ResourceLoader.cpp:
19305         (WebCore::ResourceLoader::didReceiveData):
19306         * platform/network/mac/ResourceHandleMac.mm:
19307         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
19308         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
19309         * platform/network/mac/ResourceResponseMac.mm:
19310         (WebCore::ResourceResponse::nsURLResponse):
19312 2007-07-03  Anders Carlsson  <andersca@apple.com>
19314         Reviewed by Adam.
19316         <rdar://problem/5093862>
19317         Nothing shown in plugin area when trying to play content using the DivX plugin
19318         
19319         Defer calling SetWindow for the DivX plugin, just like we do with the WMP plugin.
19320                 
19321         * plugins/win/PluginViewWin.cpp:
19322         (WebCore::PluginViewWin::determineQuirks):
19324 2007-07-03  Sam Weinig  <sam@webkit.org>
19326         Reviewed by Brady Eidson.
19328         Ninth round of fixes for implicit 64-32 bit conversion errors.
19329         <rdar://problem/5292262>
19331         - Fix function signature to use unsigned long instead of unsigned long long.
19333         * loader/ProgressTracker.cpp:
19334         (WebCore::ProgressTracker::completeProgress):
19335         * loader/ProgressTracker.h:
19337 2007-07-03  Sam Weinig  <sam@webkit.org>
19339         Reviewed by Oliver.
19341         Eighth round of fixes for implicit 64-32 bit conversion errors.
19342         <rdar://problem/5292262>
19344         - Convert SVG implementation files to use floats instead of doubles
19345           to match the spec/IDLs.
19347         * bindings/scripts/CodeGeneratorJS.pm:
19348         * ksvg2/svg/SVGAngle.cpp:
19349         * ksvg2/svg/SVGAnimatedTemplate.h:
19350         * ksvg2/svg/SVGAnimationElement.cpp:
19351         (WebCore::SVGAnimationElement::getEndTime):
19352         (WebCore::SVGAnimationElement::getStartTime):
19353         (WebCore::SVGAnimationElement::getCurrentTime):
19354         (WebCore::SVGAnimationElement::getSimpleDuration):
19355         * ksvg2/svg/SVGAnimationElement.h:
19356         * ksvg2/svg/SVGFitToViewBox.cpp:
19357         (WebCore::SVGFitToViewBox::parseViewBox):
19358         * ksvg2/svg/SVGLength.cpp:
19359         (WebCore::SVGLength::setValueAsString):
19360         * ksvg2/svg/SVGLinearGradientElement.cpp:
19361         (WebCore::SVGLinearGradientElement::buildGradient):
19362         * ksvg2/svg/SVGMatrix.idl:
19363         * ksvg2/svg/SVGNumber.idl:
19364         * ksvg2/svg/SVGParserUtilities.cpp:
19365         (WebCore::SVGPathParser::parseSVG):
19366         (WebCore::SVGPathParser::calculateArc):
19367         (WebCore::SVGPathParser::svgLineToHorizontal):
19368         (WebCore::SVGPathParser::svgLineToVertical):
19369         (WebCore::SVGPathParser::svgCurveToCubicSmooth):
19370         (WebCore::SVGPathParser::svgCurveToQuadratic):
19371         (WebCore::SVGPathParser::svgCurveToQuadraticSmooth):
19372         (WebCore::SVGPathParser::svgArcTo):
19373         * ksvg2/svg/SVGParserUtilities.h:
19374         * ksvg2/svg/SVGPathElement.cpp:
19375         (WebCore::SVGPathElement::SVGPathElement):
19376         (WebCore::SVGPathElement::getTotalLength):
19377         (WebCore::SVGPathElement::getPointAtLength):
19378         (WebCore::SVGPathElement::getPathSegAtLength):
19379         (WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
19380         (WebCore::SVGPathElement::createSVGPathSegMovetoRel):
19381         (WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
19382         (WebCore::SVGPathElement::createSVGPathSegLinetoRel):
19383         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
19384         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
19385         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
19386         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
19387         (WebCore::SVGPathElement::createSVGPathSegArcAbs):
19388         (WebCore::SVGPathElement::createSVGPathSegArcRel):
19389         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
19390         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
19391         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
19392         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
19393         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
19394         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
19395         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
19396         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
19397         (WebCore::SVGPathElement::svgMoveTo):
19398         (WebCore::SVGPathElement::svgLineTo):
19399         (WebCore::SVGPathElement::svgLineToHorizontal):
19400         (WebCore::SVGPathElement::svgLineToVertical):
19401         (WebCore::SVGPathElement::svgCurveToCubic):
19402         (WebCore::SVGPathElement::svgCurveToCubicSmooth):
19403         (WebCore::SVGPathElement::svgCurveToQuadratic):
19404         (WebCore::SVGPathElement::svgCurveToQuadraticSmooth):
19405         (WebCore::SVGPathElement::svgArcTo):
19406         (WebCore::SVGPathElement::parseMappedAttribute):
19407         * ksvg2/svg/SVGPathElement.h:
19408         * ksvg2/svg/SVGPathSegArc.cpp:
19409         (WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
19410         (WebCore::SVGPathSegArcAbs::setX):
19411         (WebCore::SVGPathSegArcAbs::x):
19412         (WebCore::SVGPathSegArcAbs::setY):
19413         (WebCore::SVGPathSegArcAbs::y):
19414         (WebCore::SVGPathSegArcAbs::setR1):
19415         (WebCore::SVGPathSegArcAbs::r1):
19416         (WebCore::SVGPathSegArcAbs::setR2):
19417         (WebCore::SVGPathSegArcAbs::r2):
19418         (WebCore::SVGPathSegArcAbs::setAngle):
19419         (WebCore::SVGPathSegArcAbs::angle):
19420         (WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
19421         (WebCore::SVGPathSegArcRel::setX):
19422         (WebCore::SVGPathSegArcRel::x):
19423         (WebCore::SVGPathSegArcRel::setY):
19424         (WebCore::SVGPathSegArcRel::y):
19425         (WebCore::SVGPathSegArcRel::setR1):
19426         (WebCore::SVGPathSegArcRel::r1):
19427         (WebCore::SVGPathSegArcRel::setR2):
19428         (WebCore::SVGPathSegArcRel::r2):
19429         (WebCore::SVGPathSegArcRel::setAngle):
19430         (WebCore::SVGPathSegArcRel::angle):
19431         * ksvg2/svg/SVGPathSegArc.h:
19432         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
19433         (WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
19434         (WebCore::SVGPathSegCurvetoCubicAbs::setX):
19435         (WebCore::SVGPathSegCurvetoCubicAbs::x):
19436         (WebCore::SVGPathSegCurvetoCubicAbs::setY):
19437         (WebCore::SVGPathSegCurvetoCubicAbs::y):
19438         (WebCore::SVGPathSegCurvetoCubicAbs::setX1):
19439         (WebCore::SVGPathSegCurvetoCubicAbs::x1):
19440         (WebCore::SVGPathSegCurvetoCubicAbs::setY1):
19441         (WebCore::SVGPathSegCurvetoCubicAbs::y1):
19442         (WebCore::SVGPathSegCurvetoCubicAbs::setX2):
19443         (WebCore::SVGPathSegCurvetoCubicAbs::x2):
19444         (WebCore::SVGPathSegCurvetoCubicAbs::setY2):
19445         (WebCore::SVGPathSegCurvetoCubicAbs::y2):
19446         (WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
19447         (WebCore::SVGPathSegCurvetoCubicRel::setX):
19448         (WebCore::SVGPathSegCurvetoCubicRel::x):
19449         (WebCore::SVGPathSegCurvetoCubicRel::setY):
19450         (WebCore::SVGPathSegCurvetoCubicRel::y):
19451         (WebCore::SVGPathSegCurvetoCubicRel::setX1):
19452         (WebCore::SVGPathSegCurvetoCubicRel::x1):
19453         (WebCore::SVGPathSegCurvetoCubicRel::setY1):
19454         (WebCore::SVGPathSegCurvetoCubicRel::y1):
19455         (WebCore::SVGPathSegCurvetoCubicRel::setX2):
19456         (WebCore::SVGPathSegCurvetoCubicRel::x2):
19457         (WebCore::SVGPathSegCurvetoCubicRel::setY2):
19458         (WebCore::SVGPathSegCurvetoCubicRel::y2):
19459         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
19460         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
19461         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
19462         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setX):
19463         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::x):
19464         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setY):
19465         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::y):
19466         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setX2):
19467         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::x2):
19468         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setY2):
19469         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::y2):
19470         (WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
19471         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setX):
19472         (WebCore::SVGPathSegCurvetoCubicSmoothRel::x):
19473         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setY):
19474         (WebCore::SVGPathSegCurvetoCubicSmoothRel::y):
19475         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setX2):
19476         (WebCore::SVGPathSegCurvetoCubicSmoothRel::x2):
19477         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setY2):
19478         (WebCore::SVGPathSegCurvetoCubicSmoothRel::y2):
19479         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
19480         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
19481         (WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
19482         (WebCore::SVGPathSegCurvetoQuadraticAbs::setX):
19483         (WebCore::SVGPathSegCurvetoQuadraticAbs::x):
19484         (WebCore::SVGPathSegCurvetoQuadraticAbs::setY):
19485         (WebCore::SVGPathSegCurvetoQuadraticAbs::y):
19486         (WebCore::SVGPathSegCurvetoQuadraticAbs::setX1):
19487         (WebCore::SVGPathSegCurvetoQuadraticAbs::x1):
19488         (WebCore::SVGPathSegCurvetoQuadraticAbs::setY1):
19489         (WebCore::SVGPathSegCurvetoQuadraticAbs::y1):
19490         (WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
19491         (WebCore::SVGPathSegCurvetoQuadraticRel::setX):
19492         (WebCore::SVGPathSegCurvetoQuadraticRel::x):
19493         (WebCore::SVGPathSegCurvetoQuadraticRel::setY):
19494         (WebCore::SVGPathSegCurvetoQuadraticRel::y):
19495         (WebCore::SVGPathSegCurvetoQuadraticRel::setX1):
19496         (WebCore::SVGPathSegCurvetoQuadraticRel::x1):
19497         (WebCore::SVGPathSegCurvetoQuadraticRel::setY1):
19498         (WebCore::SVGPathSegCurvetoQuadraticRel::y1):
19499         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
19500         (WebCore::SVGPathSegCurvetoQuadraticRel::toString):
19501         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
19502         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
19503         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::setX):
19504         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::x):
19505         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::setY):
19506         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::y):
19507         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
19508         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::setX):
19509         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::x):
19510         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::setY):
19511         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::y):
19512         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
19513         * ksvg2/svg/SVGPathSegLineto.cpp:
19514         (WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
19515         (WebCore::SVGPathSegLinetoAbs::setX):
19516         (WebCore::SVGPathSegLinetoAbs::x):
19517         (WebCore::SVGPathSegLinetoAbs::setY):
19518         (WebCore::SVGPathSegLinetoAbs::y):
19519         (WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
19520         (WebCore::SVGPathSegLinetoRel::setX):
19521         (WebCore::SVGPathSegLinetoRel::x):
19522         (WebCore::SVGPathSegLinetoRel::setY):
19523         (WebCore::SVGPathSegLinetoRel::y):
19524         * ksvg2/svg/SVGPathSegLineto.h:
19525         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
19526         (WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
19527         (WebCore::SVGPathSegLinetoHorizontalAbs::setX):
19528         (WebCore::SVGPathSegLinetoHorizontalAbs::x):
19529         (WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
19530         (WebCore::SVGPathSegLinetoHorizontalRel::setX):
19531         (WebCore::SVGPathSegLinetoHorizontalRel::x):
19532         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
19533         * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
19534         (WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
19535         (WebCore::SVGPathSegLinetoVerticalAbs::setY):
19536         (WebCore::SVGPathSegLinetoVerticalAbs::y):
19537         (WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
19538         (WebCore::SVGPathSegLinetoVerticalRel::setY):
19539         (WebCore::SVGPathSegLinetoVerticalRel::y):
19540         * ksvg2/svg/SVGPathSegLinetoVertical.h:
19541         * ksvg2/svg/SVGPathSegList.cpp:
19542         (WebCore::SVGPathSegList::getPathSegAtLength):
19543         * ksvg2/svg/SVGPathSegList.h:
19544         * ksvg2/svg/SVGPathSegMoveto.cpp:
19545         (WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
19546         (WebCore::SVGPathSegMovetoAbs::setX):
19547         (WebCore::SVGPathSegMovetoAbs::x):
19548         (WebCore::SVGPathSegMovetoAbs::setY):
19549         (WebCore::SVGPathSegMovetoAbs::y):
19550         (WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
19551         (WebCore::SVGPathSegMovetoRel::setX):
19552         (WebCore::SVGPathSegMovetoRel::x):
19553         (WebCore::SVGPathSegMovetoRel::setY):
19554         (WebCore::SVGPathSegMovetoRel::y):
19555         * ksvg2/svg/SVGPathSegMoveto.h:
19556         * ksvg2/svg/SVGPolyElement.cpp:
19557         (WebCore::SVGPolyElement::svgPolyTo):
19558         * ksvg2/svg/SVGRadialGradientElement.cpp:
19559         (WebCore::SVGRadialGradientElement::buildGradient):
19560         * ksvg2/svg/SVGSVGElement.cpp:
19561         (WebCore::SVGSVGElement::viewport):
19562         (WebCore::SVGSVGElement::getCurrentTime):
19563         * ksvg2/svg/SVGStopElement.cpp:
19564         (WebCore::SVGStopElement::SVGStopElement):
19565         (WebCore::SVGStopElement::parseMappedAttribute):
19566         * ksvg2/svg/SVGStopElement.h:
19567         * ksvg2/svg/SVGTransform.cpp:
19568         (SVGTransform::translate):
19569         (SVGTransform::scale):
19570         * ksvg2/svg/SVGTransformDistance.cpp:
19571         (WebCore::SVGTransformDistance::addToSVGTransform):
19572         (WebCore::SVGTransformDistance::distance):
19573         * ksvg2/svg/SVGTransformable.cpp:
19574         (WebCore::SVGTransformable::parseTransformAttribute):
19576 2007-07-03  Anders Carlsson  <andersca@apple.com>
19578         Reviewed by Darin.
19580         <rdar://problem/5289718>
19581         http://bugs.webkit.org/show_bug.cgi?id=14437
19582         CrashTracer: [REGRESSION] 76 crashes in Safari at com.apple.WebCore: WebCore::Frame::settings const + 6 (14437)
19583         
19584         Based on a patch from Maxime Britto.
19585         
19586         * page/mac/WebCoreFrameBridge.mm:
19587         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
19588         If the script caused the frame to go away, return nil. This can only happen if a plugin in a subframe destroys
19589         its frame.
19591         (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]):
19592         ASSERT that this is only called on the main frame.
19594 2007-07-03  John Sullivan  <sullivan@apple.com>
19596         Written by Darin, reviewed by me
19597         
19598         - fixed <rdar://problem/5249730> REGRESSION (Leopard, around 9A464): Safari opens the same local 
19599           documents more than once due to canonicalization change
19601         * loader/mac/LoaderNSURLExtras.m:
19602         (canonicalURL):
19603         pass URL through KURL so we get KURL's version of canonicalization as well as
19604         NSURLProtocol's version of canonicalization
19606 2007-07-03  Sam Weinig  <sam@webkit.org>
19608         Reviewed by Darin.
19610         Seventh round of fixes for implicit 64-32 bit conversion errors.
19611         <rdar://problem/5292262>
19613         - Adds more narrowPrecision functions to FloatPoint, FloatSize and FloatRect.
19614         - Changes over more implicit conversions to use new functions.
19616         * bindings/js/kjs_window.cpp:
19617         (KJS::WindowFunc::callAsFunction):
19618         * platform/graphics/FloatPoint.cpp:
19619         (WebCore::FloatPoint::matrixTransform):
19620         (WebCore::FloatPoint::narrowPrecision):
19621         * platform/graphics/FloatPoint.h:
19622         * platform/graphics/FloatRect.cpp:
19623         (WebCore::FloatRect::narrowPrecision):
19624         * platform/graphics/FloatRect.h:
19625         * platform/graphics/FloatSize.cpp:
19626         (WebCore::FloatSize::narrowPrecision):
19627         * platform/graphics/FloatSize.h:
19628         * platform/graphics/Path.cpp:
19629         (WebCore::Path::createRoundedRectangle):
19630         (WebCore::Path::createRectangle):
19631         (WebCore::Path::createEllipse):
19632         * platform/graphics/mac/ColorMac.mm:
19633         (WebCore::nsColor):
19634         * platform/graphics/mac/IconMac.mm:
19635         (WebCore::Icon::paint):
19636         * platform/graphics/svg/cg/CgSupport.cpp:
19637         (WebCore::applyStrokeStyleToContext):
19638         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
19639         (WebCore::CGShadingRefForRadialGradient):
19640         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
19641         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
19642         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
19643         (WebCore::applyLuminanceToAlphaFilter):
19644         (WebCore::applyExpandAlphatoGrayscaleFilter):
19645         (WebCore::transformImageIntoGrayscaleMask):
19646         * platform/mac/WebCoreTextRenderer.mm:
19647         (WebCoreDrawTextAtPoint):
19648         * rendering/RenderPath.cpp:
19649         (WebCore::RenderPath::mapAbsolutePointToLocal):
19650         * rendering/RenderSVGContainer.cpp:
19651         (WebCore::RenderSVGContainer::calcViewport):
19652         * rendering/RenderSVGImage.cpp:
19653         (WebCore::RenderSVGImage::nodeAtPoint):
19654         * rendering/RenderSVGText.cpp:
19655         (WebCore::RenderSVGText::relativeBBox):
19657 2007-07-03  Anders Carlsson  <andersca@apple.com>
19659         Reviewed by Adam.
19661         <rdar://problem/5261523>
19662         Crash playing MP11 on cnbc.com
19663         
19664         The WMP Netscape plugin still creates a window even when windowless mode is turned on. Work around this by
19665         always removing the "windowlessvideo" parameter before passing it to the plugin.
19666         According to http://msdn2.microsoft.com/en-us/library/bb249373.aspx, "The windowlessVideo property is not 
19667         supported for Netscape Navigator. Setting a value for this property in Navigator may yield unexpected results."
19668         
19669         * plugins/win/PluginViewWin.cpp:
19670         (WebCore::PluginViewWndProc):
19671         (WebCore::PluginViewWin::paint):
19672         (WebCore::PluginViewWin::invalidateRect):
19673         (WebCore::PluginViewWin::determineQuirks):
19674         (WebCore::PluginViewWin::setParameters):
19675         (WebCore::PluginViewWin::PluginViewWin):
19676         (WebCore::PluginViewWin::init):
19677         * plugins/win/PluginViewWin.h:
19678         (WebCore::):
19680 2007-07-03  Qing Zhao  <qing@staikos.net>
19682         Reviewed by George Staikos.
19684         Only draw sunken state for appropriate widgets. Not, for example, for
19685         lineedits.
19687         * platform/qt/RenderThemeQt.cpp:
19688         (WebCore::RenderThemeQt::applyTheme):
19690 2007-07-03  Antti Koivisto  <antti@apple.com>
19692         Reviewed by Maciej.
19693         
19694         REGRESSION: misplaced selection ring remains after link is no longer focused.
19695         <rdar://problem/5205580>
19696         
19697         Fix placement of selection ring when part of the ring is in a different layer.
19699         * rendering/RenderFlow.cpp:
19700         (WebCore::RenderFlow::addFocusRingRects): Get coordinates right when moving to a different layer.
19701         * rendering/RenderObject.cpp:
19702         (WebCore::RenderObject::setStyle): 
19703         Don't reset state variables when not necessary.  When repaint() was called at the end of setSyle() it would
19704         get repaint rects wrong in some cases.
19706 2007-07-03  Antti Koivisto  <antti@apple.com>
19708         Reviewed by Maciej.
19710         Blind fix for CrashTracer: [USER] 25 crashes in Safari at com.apple.WebCore: WebCore::Frame::document const + 6
19711         <rdar://problem/5263939>
19712         
19713         No one has managed to reproduce this but it looks like null check is needed here. There are plausible ways
19714         m_frame could be null for a live FrameView object.
19716         * page/FrameView.cpp:
19717         (WebCore::FrameView::needsLayout):
19719 2007-07-02  Oliver Hunt  <oliver@apple.com>
19721         Reviewed by Darin.
19723         Fix for <rdar://problem/5098378> single-pixel image optimization needs to be rewritten to not depend on floating point bitmap
19724         Tested by fast/replaced/image-solid-color-with-alpha.html
19726         Switch from float to byte based bitmap when pulling the color from 1x1 pixel images so
19727         that we can use the single pixel image optimisation in WebKit/win.
19729         * platform/graphics/cg/ImageCG.cpp:
19730         (WebCore::BitmapImage::checkForSolidColor):
19732 2007-07-02  Adam Roben  <aroben@apple.com>
19734         Fix Bug 14498: RenderContainer::positionForCoordinates contains an order of operations error
19735         http://bugs.webkit.org/show_bug.cgi?id=14498
19737         There were two bugs:
19738         1) xPos/yPos were flipped
19739         2) + binds tighter than ?:, so the order of operations was incorrect
19741         Reviewed by Darin.
19743         Test: fast/inline-block/14498-positionForCoordinates.html
19745         * rendering/RenderContainer.cpp:
19746         (WebCore::RenderContainer::positionForCoordinates):
19748 2007-07-02  Darin Adler  <darin@apple.com>
19750         Reviewed by Kevin Decker and Tim Hatcher.
19752         - fix <rdar://problem/5307906> some classes need finalize methods because
19753           of non-trivial work done in dealloc methods
19755         * bindings/objc/DOMRGBColor.mm:
19756         (+[DOMRGBColor initialize]): Added. Tells finalizer to run on main thread,
19757         which is needed because we are sharing a CFDictionary here with no locking.
19759         * bridge/mac/WebCoreAXObject.mm:
19760         (+[WebCoreAXObject initialize]): Added. Tells finalizer to run on main thread.
19761         (-[WebCoreAXObject finalize]): Added. Calls detach.
19763         * WebCore.xcodeproj/project.pbxproj: Let Xcode do what it wants to do.
19765 2007-07-02  Sam Weinig  <sam@webkit.org>
19767         Reviewed by Darin.
19769         Sixth round of fixes for implicit 64-32 bit conversion errors.
19770         <rdar://problem/5292262>
19772         Use new narrowPrecisionToFloat() and narrowPrecisionToCGFloat() where
19773         appropriate.
19775         * html/CanvasRenderingContext2D.cpp:
19776         (WebCore::CanvasRenderingContext2D::setShadow):
19777         (WebCore::CanvasRenderingContext2D::applyShadow):
19778         * html/CanvasStyle.cpp:
19779         (WebCore::CanvasStyle::applyStrokeColor):
19780         (WebCore::CanvasStyle::applyFillColor):
19781         * ksvg2/svg/SVGAngle.cpp:
19782         * ksvg2/svg/SVGAnimationElement.cpp:
19783         (WebCore::SVGAnimationElement::parseKeyNumbers):
19784         (WebCore::parseKeySplines):
19785         (WebCore::SVGAnimationElement::handleTimerEvent):
19786         (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
19787         * ksvg2/svg/SVGPatternElement.cpp:
19788         (WebCore::SVGPatternElement::buildPattern):
19789         * ksvg2/svg/SVGRadialGradientElement.cpp:
19790         (WebCore::SVGRadialGradientElement::buildGradient):
19791         * platform/graphics/cg/AffineTransformCG.cpp:
19792         (WebCore::AffineTransform::AffineTransform):
19793         (WebCore::AffineTransform::setMatrix):
19794         (WebCore::AffineTransform::map):
19795         (WebCore::AffineTransform::setA):
19796         (WebCore::AffineTransform::setB):
19797         (WebCore::AffineTransform::setC):
19798         (WebCore::AffineTransform::setD):
19799         (WebCore::AffineTransform::setE):
19800         (WebCore::AffineTransform::setF):
19801         (WebCore::AffineTransform::scale):
19802         (WebCore::AffineTransform::rotate):
19803         (WebCore::AffineTransform::translate):
19804         (WebCore::AffineTransform::shear):
19806 2007-07-02  John Sullivan  <sullivan@apple.com>
19808         * page/mac/WebCoreFrameBridge.mm:
19809         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
19810         added a comment
19812 2007-07-02  Sam Weinig  <sam@webkit.org>
19814         Rubberstamped by Darin.
19816         Rename FloatConversionUtilities.h to FloatConversion.h.
19817         Fix Win32 build.
19819         * WebCore.vcproj/WebCore.vcproj:
19820         * WebCore.xcodeproj/project.pbxproj:
19821         * platform/DeprecatedString.cpp:
19822         * platform/FloatConversion.h: Copied from platform/FloatConversionUtilities.h.
19823         * platform/FloatConversionUtilities.h: Removed.
19824         * platform/StringImpl.cpp:
19826 2007-07-02  Sam Weinig  <sam@webkit.org>
19828         Reviewed by Darin.
19830         Fifth round of fixes for implicit 64-32 bit conversion errors.
19831         <rdar://problem/5292262>
19833         Add toFloat() method to string classes and use it where appropriate.
19835         * WebCore.xcodeproj/project.pbxproj:
19836         * css/cssparser.cpp:
19837         (WebCore::CSSParser::lex):
19838         * ksvg2/svg/SVGAngle.cpp:
19839         (WebCore::SVGAngle::setValueAsString):
19840         * platform/AtomicString.h:
19841         (WebCore::AtomicString::toFloat):
19842         * platform/DeprecatedString.cpp:
19843         (WebCore::DeprecatedString::toFloat):
19844         * platform/DeprecatedString.h:
19845         * platform/FloatConversionUtilities.h: Added.
19846         (WebCore::narrowPrecisionToFloat):
19847         (WebCore::narrowPrecisionToCGFloat):
19848         * platform/PlatformString.h:
19849         * platform/String.cpp:
19850         (WebCore::String::toFloat):
19851         * platform/StringImpl.cpp:
19852         (WebCore::StringImpl::toFloat):
19853         * platform/StringImpl.h:
19855 2007-07-02  Sam Weinig  <sam@webkit.org>
19857         Reviewed by Kevin McCullough.
19859         Fourth round of fixes for implicit 64-32 bit conversion errors.
19860         <rdar://problem/5292262>
19862         Use new piDouble and piFloat constants instead of M_PI.
19864         * html/CanvasRenderingContext2D.cpp:
19865         (WebCore::CanvasRenderingContext2D::rotate):
19866         * ksvg2/svg/SVGParserUtilities.cpp:
19867         (WebCore::SVGPathParser::calculateArc):
19868         * platform/graphics/Path.cpp:
19869         (WebCore::pathLengthApplierFunction):
19870         (WebCore::Path::createEllipse):
19871         * platform/graphics/cg/GraphicsContextCG.cpp:
19872         (WebCore::GraphicsContext::drawEllipse):
19873         (WebCore::GraphicsContext::strokeArc):
19874         * platform/graphics/cg/PDFDocumentImage.cpp:
19875         (WebCore::PDFDocumentImage::setCurrentPage):
19876         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
19877         * rendering/RenderPath.cpp:
19878         (WebCore::drawMarkerWithData):
19880 2007-07-01  Adam Roben  <aroben@apple.com>
19882         Clarify/fix {Shadow,BorderImage}ParseContext's memory management
19884         Prefast emitted warnings that drew my attention to
19885         {Shadow,BorderImage}ParseContext::failed().  It turned out that these
19886         methods were actually correct, but rather confusing. "failed" really
19887         meant "abort and clean up" rather than "did you fail?", which was
19888         unclear. However, once I figured that out, the "and clean up" part was
19889         still a bit confusing, because all failed() did was to set a flag that
19890         would later cause the ParseContext's members to be deleted in the
19891         destructor. To clear this up, I've gotten rid of the failed() method
19892         altogether. It always returned false, so I've replaced all calls to
19893         it with the value false.
19895         I also noticed that the lifetime management of the ParseContexts'
19896         members was in all cases confusing, and in some cases wrong. The
19897         m_border{Top,Right,Bottom,Left} members of BorderImageParseContext
19898         were leaked whenever a border-image property was successfully parsed.
19899         I fixed that by holding these members in OwnPtrs. The
19900         CSSPrimitiveValue members of {Shadow,BorderImage}ParseContext, which
19901         inherit from Shared, were being explicitly deleted, which is not a
19902         safe way to manage the lifetime of objects that inherit from Shared.
19903         To fix this, I put those members inside RefPtrs. These two changes
19904         allowed me to remove the destructors entirely.
19906         Reviewed by Darin.
19908         All regression tests pass.
19910         * css/cssparser.cpp:
19911         (WebCore::ShadowParseContext::commitValue): Use .release() to avoid
19912         ref-count churn.
19913         (WebCore::ShadowParseContext::commitLength): Use a RefPtr for the new
19914         value to avoid a leak.
19915         (WebCore::CSSParser::parseShadow): Use 'false' instead of
19916         'context.failed()', and use .release() to avoid ref-count churn.
19917         (WebCore::BorderImageParseContext::commitWidth): Updated to use
19918         OwnPtr.
19919         (WebCore::CSSParser::parseBorderImage): Use 'false' instead of
19920         'context.failed'.
19922 2007-07-01  Anders Carlsson  <andersca@apple.com>
19924         Reviewed by John Sullivan.
19926         <rdar://problem/5297146>
19927         Crash in Mail at WebCore::Frame::setUserStyleSheetLocation (reproducible w/ particular message)
19928         
19929         * loader/Cache.cpp:
19930         (WebCore::Cache::requestResource):
19931         Only insert the resource in the LRU list if the cache is enabled.
19932         
19933         (WebCore::Cache::insertInLRUList):
19934         (WebCore::Cache::resourceAccessed):
19935         Assert that the resource is in the cache.
19937 2007-07-01  Darin Adler  <darin@apple.com>
19939         * css/tokenizer.flex: Rolled out the fix for 14453.
19940         The layout test wasn't passing. We'll try again.
19942 2007-07-01  Adam Roben  <aroben@apple.com>
19944         Fix a crash in ~PluginViewWin()
19946         This crash was introduced in r23827.
19948         Reviewed by Anders.
19950         Fixes dom/html/level2/html/HTMLAnchorElement01.html
19952         * plugins/win/PluginViewWin.cpp:
19953         (WebCore::PluginViewWin::~PluginViewWin): Allow m_plugin to be null.
19955 2007-07-01  Rob Buis  <buis@kde.org>
19957         Reviewed by Darin.
19959         http://bugs.webkit.org/show_bug.cgi?id=14453
19960         REGRESSION: www.nzherald.co.nz almost all the formating is gone
19962         * css/tokenizer.flex: Allow hex colors with 2, 4, or 5 hex digits.
19964 2007-07-01  Sam Weinig  <sam@webkit.org>
19966         Reviewed by Oliver.
19968         Third round of implicit 64-32 bit conversion errors fixes.
19969         <rdar://problem/5292262>
19971         - Use new CSSPrimitiveValue::getDoubleValue() and CSSPrimitiveValue::getIntValue()
19972           methods instead of CSSPrimitiveValue::getFloatValue() where appropriate.
19974         * css/CSSPrimitiveValue.cpp:
19975         (WebCore::CSSPrimitiveValue::computeLengthInt):
19976         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
19977         (WebCore::CSSPrimitiveValue::computeLengthShort):
19978         (WebCore::CSSPrimitiveValue::computeLengthFloat):
19979         (WebCore::CSSPrimitiveValue::computeLengthDouble):
19980         (WebCore::CSSPrimitiveValue::getDoubleValue):
19981         * css/CSSPrimitiveValue.h:
19982         (WebCore::CSSPrimitiveValue::getDoubleValue):
19983         (WebCore::CSSPrimitiveValue::getFloatValue):
19984         (WebCore::CSSPrimitiveValue::getIntValue):
19985         * css/Counter.h:
19986         (WebCore::Counter::listStyleNumber):
19987         * css/MediaQueryEvaluator.cpp:
19988         (WebCore::parseAspectRatio):
19989         * css/cssparser.cpp:
19990         (WebCore::BorderImageParseContext::commitBorderImage):
19991         * css/cssstyleselector.cpp:
19992         (WebCore::convertToLength):
19993         (WebCore::applyCounterList):
19994         (WebCore::CSSStyleSelector::applyProperty):
19995         (WebCore::CSSStyleSelector::mapBackgroundSize):
19996         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
19997         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
19998         * html/HTMLTableElement.cpp:
19999         (WebCore::HTMLTableElement::parseMappedAttribute):
20000         * ksvg2/css/SVGCSSStyleSelector.cpp:
20001         (WebCore::CSSStyleSelector::applySVGProperty):
20002         * ksvg2/misc/KCanvasRenderingStyle.cpp:
20003         (WebCore::KSVGPainterFactory::cssPrimitiveToLength):
20004         (WebCore::KSVGPainterFactory::dashArrayFromRenderingStyle):
20006 2007-07-01  Pamela Greene  <pamg.bugs@gmail.com>
20008         Reviewed by Darin.
20010         Fix for <http://bugs.webkit.org/show_bug.cgi?id=14320>
20011         Bug 14320: <canvas> gradient stops at identical offsets are applied in the wrong order
20012         <rdar://problem/5290084>
20014         Use std::stable_sort() instead of qsort() to sort gradient stops.
20015         Adjust the comparison function accordingly.
20017         * html/CanvasGradient.cpp:
20018         (WebCore::compareStops):
20019         (WebCore::CanvasGradient::findStop):
20021 2007-07-01  Holger Hans Peter Freyther  <zecke@selfish.org>
20023         Reviewed by Darin.
20025         m_usesPageCache was not initialized. As the b/f cache is only
20026         implemented in the Mac port and WebView.mm is taking care of calling
20027         Settings::setUsesPageCache I decided to make it false by default.
20029         * page/Settings.cpp:
20030         (WebCore::Settings::Settings): m_usesPageCache was not initialized
20032 2007-07-01  Holger Hans Peter Freyther  <zecke@selfish.org>
20034         Reviewed by Darin.
20036         Inherited- and NonInheritedFlags is a bit field. But for comparsion
20037         the other part of the union _iflags/_niflags is used for comparions.
20038         This will compare 5 uninitialized bits of _iflags and 22 of _niflags.
20039         Make sure the unused bits have a specified value.
20041         * ksvg2/css/SVGRenderStyle.h:
20042         (WebCore::SVGRenderStyle::setBitDefaults): Make sure the unused bits
20043         have a value as well.
20045 2007-06-30  Adam Roben  <aroben@apple.com>
20047         Compile WebCore with /W4 on Windows
20049         Some more warnings were disabled globally, including assignment within
20050         a conditional, unused variable, and various warnings related to
20051         inability to instantiate opaque structs.
20053         In addition, the "unreachable code" warning was turned off for
20054         CSSGrammar.cpp and XPathGrammar.cpp.
20056         Reviewed by Oliver.
20058         * WebCore.vcproj/WebCore.vcproj:
20060 2007-06-29  Adam Roben  <aroben@apple.com>
20062         Give CString an equality operator to fix a bug in HTMLFormElement::formData
20064         The bug was spotted by MSVC /W4. The problem was that we were comparing
20065         a CString to a char* using ==, but CString had no equality operator.
20066         The result was that the CString was being cast to a const char* and a
20067         pointer comparison was being done, which would (essentially) always
20068         return false.
20070         There are two parts to the fix: get rid of CString's const char*
20071         casting operator, and add an equality operator. Previous uses of the
20072         casting operator have been changed to use CString::data().
20074         Test: http/misc/isindex-formdata.html
20076         Reviewed by Oliver.
20078         * dom/XMLTokenizer.cpp:
20079         (WebCore::parseXMLDocumentFragment):
20080         * html/HTMLDocument.cpp:
20081         (WebCore::HTMLDocument::determineParseMode):
20082         * html/HTMLFormElement.cpp:
20083         (WebCore::HTMLFormElement::formData):
20084         * loader/TextResourceDecoder.cpp:
20085         (WebCore::TextResourceDecoder::checkForCSSCharset):
20086         * platform/CString.cpp:
20087         (WebCore::operator==):
20088         * platform/CString.h:
20089         * platform/KURL.cpp:
20090         (WebCore::encodeRelativeString):
20091         * platform/StringImpl.cpp:
20092         (WebCore::StringImpl::toDouble):
20093         * platform/network/cf/FormDataStreamCFNet.cpp:
20094         (WebCore::setHTTPBody):
20095         * platform/network/mac/FormDataStreamMac.mm:
20096         (WebCore::setHTTPBody):
20097         * platform/win/ClipboardUtilitiesWin.cpp:
20098         (WebCore::markupToCF_HTML):
20099         * plugins/win/PluginPackageWin.cpp:
20100         (WebCore::splitString):
20101         * plugins/win/PluginStreamWin.cpp:
20102         (WebCore::PluginStreamWin::startStream):
20103         (WebCore::PluginStreamWin::destroyStream):
20104         (WebCore::PluginStreamWin::sendJavaScriptStream):
20105         (WebCore::PluginStreamWin::didFinishLoading):
20106         * plugins/win/PluginViewWin.cpp:
20107         (WebCore::PluginViewWin::start):
20108         (WebCore::createUTF8String):
20109         (WebCore::PluginViewWin::userAgent):
20110         * xml/XSLStyleSheet.cpp:
20111         (WebCore::XSLStyleSheet::locateStylesheetSubResource):
20112         * xml/XSLTProcessor.cpp:
20113         (WebCore::xsltParamArrayFromParameterMap):
20115 2007-06-29  Adam Roben  <aroben@apple.com>
20117         Initialize two variables that MSVC /W4 isn't smart enough to realize always get initialized
20119         Reviewed by John.
20121         * editing/Editor.cpp:
20122         (WebCore::Editor::advanceToNextMisspelling):
20123         * html/HTMLParser.cpp:
20125 2007-06-29  Adam Roben  <aroben@apple.com>
20127         Fix some possibly unitialized variables found by MSVC /W4
20129         Reviewed by John.
20131         * rendering/bidi.cpp:
20132         (WebCore::RenderBlock::layoutInlineChildren):
20134 2007-06-29  Adam Roben  <aroben@apple.com>
20136         Remove bogus cast found by MSVC /W4
20138         Reviewed by John and Oliver.
20140         * ksvg2/css/SVGCSSParser.cpp:
20141         (WebCore::CSSParser::parseSVGValue):
20143 2007-06-29  Adam Roben  <aroben@apple.com>
20145         Remove unused local functions uncovered by MSVC /W4
20147         Reviewed by John and Oliver.
20149         * platform/win/SearchPopupMenuWin.cpp:
20150         * rendering/RenderText.cpp:
20152 2007-06-29  Adam Roben  <aroben@apple.com>
20154         Don't take the address of temporary values to appease MSVC /W4
20156         Reviewed by Oliver.
20158         No regression test possible.
20160         * platform/win/PopupMenuWin.cpp:
20161         (WebCore::PopupMenu::invalidateItem):
20162         (WebCore::PopupMenu::valueChanged):
20163         (WebCore::PopupWndProc):
20164         * platform/win/ScrollViewWin.cpp:
20165         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
20166         * platform/win/UniscribeController.cpp:
20167         (WebCore::UniscribeController::shapeAndPlaceItem):
20168         * platform/win/WidgetWin.cpp:
20169         (WebCore::Widget::invalidateRect):
20171 2007-06-29  Adam Roben  <aroben@apple.com>
20173         Make an int -> UINT conversion explicit that MSVC /W4 complains about
20175         Reviewed by John and Oliver.
20177         No regression test possible.
20179         * platform/win/SoundWin.cpp:
20181 2007-06-29  Adam Roben  <aroben@apple.com>
20183         Remove unreachable code uncovered by MSVC /W4
20185         Reviewed by Oliver.
20187         No regression test possible.
20189         * html/CanvasRenderingContext2D.cpp:
20190         (WebCore::CanvasRenderingContext2D::createPattern):
20191         * html/HTMLAnchorElement.cpp:
20192         (WebCore::HTMLAnchorElement::isLiveLink):
20193         * html/HTMLElement.cpp:
20194         (WebCore::HTMLElement::contentEditable):
20195         * platform/DeprecatedString.cpp:
20196         (WebCore::allocateHandle):
20197         (WebCore::freeHandle):
20198         * plugins/win/npapi.cpp:
20199         (pluginViewForInstance):
20200         * rendering/RenderImage.cpp:
20201         (WebCore::RenderImage::isWidthSpecified):
20202         (WebCore::RenderImage::isHeightSpecified):
20203         * rendering/RenderTheme.cpp:
20204         (WebCore::RenderTheme::isControlStyled):
20206 2007-06-29  John Sullivan  <sullivan@apple.com>
20208         Reviewed by Oliver Hunt.
20209         
20210         - WebCore support for accessing the set of rectangles that encompass the selected text
20211         
20212         * page/Frame.h:
20213         * page/Frame.cpp:
20214         (WebCore::Frame::selectionTextRects):
20215         new function, fills in a passed Vector with the line box rects that represent the selected range
20217         * rendering/RenderText.cpp:
20218         (WebCore::RenderText::addLineBoxRects):
20219         fixed off-by-one bug involving use of the confusing function InlineTextBox::end()
20221         * WebCore.exp:
20222         exported symbol for this new function
20224 2007-06-29  Justin Garcia  <justin.garcia@apple.com>
20226         Reviewed by Harrison.
20227         
20228         <rdar://problem/5299513> REGRESSION: In Mail, a crash occurs when attempting to undo a newly created To Do
20229         
20230         Rolled out a change made in r23787.
20231         
20232         * editing/DeleteSelectionCommand.cpp:
20233         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
20235 2007-06-29  Geoffrey Garen  <ggaren@apple.com>
20237         Reviewed by Darin Adler, Anders Carlsson.
20238         
20239         Fixed <rdar://problem/5303567> REGRESSION: XMLHttpRequest.responseXML 
20240         returns NULL if response MIME type is not XML -- breaks Wikipedia widget
20241         
20242         The spec says that responseXML must return null for any HTTP response
20243         with a non-XML MIME type. Technically, that leaves non-HTTP responses
20244         free to do whatever they want.
20246         * xml/xmlhttprequest.cpp:
20247         (WebCore::XMLHttpRequest::getResponseXML): Only return null for non-XML
20248         MIME types if the response was HTTP.
20250 2007-06-29  Sam Weinig  <sam@webkit.org>
20252         Reviewed by Darin.
20254         Second pass at fixing implicit 64-32 bit conversion errors.
20255         <rdar://problem/5292262>
20257         - Use new JSValue::toFloat() method instead of toNumber() where
20258           appropriate.
20260         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
20261         (WebCore::JSCanvasRenderingContext2D::setFillColor):
20262         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
20263         (WebCore::JSCanvasRenderingContext2D::strokeRect):
20264         (WebCore::JSCanvasRenderingContext2D::drawImage):
20265         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
20266         (WebCore::JSCanvasRenderingContext2D::setShadow):
20267         * bindings/js/JSHTMLSelectElementCustom.cpp:
20268         (WebCore::JSHTMLSelectElement::remove):
20269         * bindings/js/JSSVGMatrixCustom.cpp:
20270         (WebCore::JSSVGMatrix::rotateFromVector):
20271         * bindings/js/kjs_events.cpp:
20272         (KJS::JSClipboardPrototypeFunction::callAsFunction):
20273         * bindings/scripts/CodeGeneratorJS.pm:
20274         * ksvg2/svg/SVGScriptElement.cpp:
20275         (WebCore::SVGScriptElement::executeScript):
20277 2007-06-29  Adele Peterson  <adele@apple.com>
20279         Rolling out fix for <rdar://problem/5301322> since it broke layout tests.
20281         * html/HTMLInputElement.h:
20282         * html/HTMLTextAreaElement.h:
20284 2007-06-29  Geoffrey Garen  <ggaren@apple.com>
20286         Reviewed by Oliver Hunt.
20288         Fixed <rdar://problem/4962298> REGRESSION: Synchronous XHR for missing 
20289         local file throws exception -- breaks Wikipedia widget
20291         * WebCore.xcodeproj/project.pbxproj:
20292         * xml/xmlhttprequest.cpp:
20293         (WebCore::XMLHttpRequest::send): Don't throw exceptions for local files.
20295 2007-06-29  Ada Chan  <adachan@apple.com>
20297         Reviewed by Adam.
20299         Fixed a previous fix to a signed/unsigned mismatch.
20301         * plugins/win/PluginPackageWin.cpp:
20302         (WebCore::splitString):
20304 2007-06-29  Adele Peterson  <adele@apple.com>
20306         Reviewed by Ada and Kevin McCullough.
20308         Fix for <rdar://problem/5301322> REGRESSION: Select All selects the whole page when used in readonly textareas
20310         Implemented canSelectAll and selectAll for text fields and textareas, since they're special cases even when they're not editable.
20312         Tests:
20313         fast/forms/input-readonly-select-all.html
20314         fast/forms/textarea-readonly-select-all.html
20316         * html/HTMLInputElement.h:
20317         (WebCore::HTMLInputElement::canSelectAll):
20318         (WebCore::HTMLInputElement::selectAll):
20319         * html/HTMLTextAreaElement.h:
20320         (WebCore::HTMLTextAreaElement::canSelectAll):
20321         (WebCore::HTMLTextAreaElement::selectAll):
20323 2007-06-29  Adam Roben  <aroben@apple.com>
20325         Build fix
20327         This is what happens when you test your patch on two OSs and then
20328         commit from the wrong one.
20330         * rendering/RenderTextControl.cpp:
20331         (WebCore::RenderTextControl::valueChanged):
20332         (WebCore::RenderTextControl::itemText):
20333         (WebCore::RenderTextControl::itemIsSeparator):
20335 2007-06-29  Adam Roben  <aroben@apple.com>
20337         Start compiling WebCore with /W3 under MSVC
20339         One warning was globally disabled: implicit conversion of int to bool.
20341         Reviewed by Darin.
20343         * WebCore.vcproj/WebCore.vcproj:
20345 2007-06-29  Adam Roben  <aroben@apple.com>
20347         Turn DeprecatedStringData's copy constructor into a static method to appease MSVC /W3
20349         DeprecatedStringData now has no public copy constructor. The single
20350         call to the old one has been replaced with a call to the new
20351         DeprecatedStringData::createAndAdopt static method.
20353         Reviewed by Darin.
20355         All regression tests pass.
20357         * platform/DeprecatedString.cpp:
20358         (WebCore::DeprecatedStringData::createAndAdopt):
20359         (WebCore::DeprecatedStringData::adopt):
20360         (WebCore::DeprecatedString::detachIfInternal):
20361         * platform/DeprecatedString.h:
20363 2007-06-29  Adam Roben  <aroben@apple.com>
20365         Fix more signed/unsigned mismatches uncovered by MSVC /W3
20367         Reviewed by John.
20369         No regression tests possible.
20371         * platform/network/cf/ResourceResponseCFNet.cpp:
20372         (WebCore::filenameHasSaneExtension):
20373         * platform/win/FontDataWin.cpp:
20374         (WebCore::FontData::containsCharacters):
20375         * platform/win/PlatformScrollBarSafari.cpp:
20376         (WebCore::):
20377         * platform/win/UniscribeController.cpp:
20378         (WebCore::UniscribeController::advance):
20379         (WebCore::UniscribeController::shapeAndPlaceItem):
20380         * platform/win/WebCoreTextRenderer.cpp:
20381         (WebCore::doDrawTextAtPoint):
20382         * plugins/win/PluginDatabaseWin.cpp:
20383         (WebCore::parseVersionString):
20384         * plugins/win/PluginPackageWin.cpp:
20385         (WebCore::splitString):
20386         * plugins/win/PluginViewWin.cpp:
20387         (WebCore::freeStringArray):
20388         (WebCore::PluginViewWin::invalidateTimerFired):
20390 2007-06-29  Adam Roben  <aroben@apple.com>
20392         Change PopupMenuClient::listSize to return an int to appease warnings from MSVC /W3
20394         Reviewed by John.
20396         No regression test possible.
20398         * html/HTMLSelectElement.cpp:
20399         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
20400         * platform/PopupMenuClient.h:
20401         * platform/win/PopupMenuWin.cpp:
20402         (WebCore::PopupMenu::calculatePositionAndSize):
20403         (WebCore::PopupMenu::focusFirst):
20404         (WebCore::PopupMenu::focusLast):
20405         (WebCore::PopupMenu::down):
20406         (WebCore::PopupMenu::up):
20407         (WebCore::PopupMenu::paint):
20408         * rendering/RenderMenuList.cpp:
20409         * rendering/RenderMenuList.h:
20410         * rendering/RenderTextControl.cpp:
20411         * rendering/RenderTextControl.h:
20413 2007-06-29  Adam Roben  <aroben@apple.com>
20415         Fix two typos spotted by MSVC /W3
20417         Both typos were a semicolon following the condition of an if. This
20418         would cause the intended body of the if to always execute.
20420         Unfortunately neither of these fixes are testable.
20421         BackForwardList::goForward is only called from WebBackForwardList, and
20422         the createDragImageFromImage bug would only manifest itself when
20423         CreateCompatibleDC failed.
20425         Reviewed by Mark.
20427         * history/BackForwardList.cpp:
20428         (WebCore::BackForwardList::goForward):
20429         * platform/win/DragImageWin.cpp:
20430         (WebCore::createDragImageFromImage):
20432 2007-06-29  Adam Treat  <adam@staikos.net>
20434         Reviewed by george Staikos.
20436         Support horizontal and vertical scroll, and set the right units.
20438         * platform/qt/WheelEventQt.cpp:
20439         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
20441 2007-06-28  Adam Roben  <aroben@apple.com>
20443         Get WebCore compiling with /W2 on Windows
20445         Reviewed by Steve.
20447         No regression tests affected.
20449         * WebCore.vcproj/WebCore.vcproj: Turn the warning level up to 2, and
20450         disable two warnings: implicit int <=> float conversion, and class vs.
20451         struct inconsistency.
20452         * dom/CharacterData.cpp:
20453         (WebCore::CharacterData::deleteData): Cast to int before negating.
20454         * loader/Cache.cpp:
20455         (WebCore::Cache::remove): Ditto.
20456         * platform/graphics/Path.cpp:
20457         (WebCore::pathLengthApplierFunction): Consistently use floats.
20458         * platform/graphics/cg/GraphicsContextCG.cpp:
20459         (WebCore::GraphicsContext::drawEllipse): Ditto.
20460         * platform/win/GraphicsContextWin.cpp:
20461         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): Ditto.
20463 2007-06-28  Geoffrey Garen  <ggaren@apple.com>
20465         Reviewed by Maciej Stachowiak.
20466         
20467         Fixed <rdar://problem/5299005> DOM timers fire without a local autorelease 
20468         pool => pathologically high high water mark
20469         
20470         I couldn't measure any performance problems with iBench HTML or PLT.
20472         * WebCore.xcodeproj/project.pbxproj: Changed .cpp file to be ObjC++.
20473         * platform/mac/SharedTimerMac.cpp:
20474         (WebCore::timerFired): Added autorelease pool.
20476 2007-06-28  Mitz Pettel  <mitz@webkit.org>
20478         Reviewed by Beth.
20480         - fix http://bugs.webkit.org/show_bug.cgi?id=14118
20481           ASSERTION FAILED: !needsLayout() seen again
20483         Test: fast/dynamic/recursive-layout.html
20485         * page/FrameView.cpp:
20486         (WebCore::FrameView::layout): Removed the midLayout guards around
20487         the calls to invalidateSelection() and updateWidgetPositions(). Those
20488         calls may dirty the layout, but in that case they also update it, so
20489         they should be allowed to do it. Added an ASSERT to make sure that when
20490         they return, the root is not marked for layout.
20492 2007-06-28  Sam Weinig  <sam@webkit.org>
20494         Rubberstamped by Adam Roben.
20496         Roll out r23861.  It caused the buildbot to fail on intel.
20498         * page/Page.cpp:
20499         (WebCore::Page::goToItem):
20501 2007-06-26  Maxime Britto  <mbritto@pleyo.com>
20503         Reviewed by Geoff.
20505         Patch for http://bugs.webkit.org/show_bug.cgi?id=13038
20506         ASSERTION FAILED: item->target().isEmpty() || m_mainFrame->tree()->find(item->target()) == m_mainFrame
20508         Modification of an ASSERT on goToItem related to go back/forward in
20509         history.Don't need to check the frameset if the target is _blank.
20511          * page/Page.cpp:
20512          (WebCore::Page::goToItem):
20514 2007-06-28  Anders Carlsson  <andersca@apple.com>
20516         Reviewed by Oliver.
20518         <rdar://problem/5234139>
20519         <object> with PNG src rendered as image document.
20520         
20521         Complete the URL before passing it to the frame loader client.
20522         
20523         * html/HTMLObjectElement.cpp:
20524         (WebCore::HTMLObjectElement::isImageType):
20526 2007-06-28  Rob Buis  <buis@kde.org>
20528         Reviewed by Maciej.
20530         http://bugs.webkit.org/show_bug.cgi?id=14373
20531         CSS1: selectors (classes and IDs) cannot start with a dash or with a digit
20533         Make sure the id selector validates against the CSS2.1 identfier
20534         definition, not the hexcolor/HASH definition.
20536         * css/CSSGrammar.y:
20537         * css/cssparser.cpp:
20538         (WebCore::CSSParser::lex):
20539         (WebCore::CSSParser::text):
20540         * css/tokenizer.flex:
20542 2007-06-28  Simon Hausmann  <hausmann@kde.org>
20544         Reviewed by Zack.
20546         Implemented PasteboardQt::writeSelection to copy the selected text into the Clipboard as well as PasteboardQt::plainText to retrieve plain text from the clipboard for pasting for example into form fields.
20548         * platform/qt/PasteboardQt.cpp:
20549         (WebCore::Pasteboard::writeSelection):
20551 2007-06-28  Antti Koivisto  <antti@apple.com>
20553         Reviewed by Mitz.
20554         
20555         Fix http://bugs.webkit.org/show_bug.cgi?id=14332
20556         Bug 14332: REGRESSION (r21145): <td> width ignored
20557         <rdar://problem/5290123>
20558         
20559         Cells in table with non-zero cellpadding are not considered empty.
20561         * rendering/AutoTableLayout.cpp:
20562         (WebCore::AutoTableLayout::recalcColumn):
20564 2007-06-28  Adam Roben  <aroben@apple.com>
20566         Fix <rdar://problem/5300455> Prefast: typo in RenderBlock::paintObject
20568         Reviewed by Hyatt.
20570         No layout test possible, as this bug didn't have any effect since
20571         "bool & bool" has the same value as "bool && bool"
20573         * rendering/RenderBlock.cpp:
20574         (WebCore::RenderBlock::paintObject): Changed & to &&.
20576 2007-06-28  Adam Roben  <aroben@apple.com>
20578         Fix <rdar://problem/5300443> word-break and -webkit-user-modify allow any value
20580         The bug was caused by two typos found by prefast.
20582         Reviewed by Hyatt.
20584         * css/cssparser.cpp:
20585         (WebCore::CSSParser::parseValue): Fixed typos.
20587 2007-06-20  Matt Perry  <mpComplete@gmail.com>
20589         Reviewed by Adam.
20591         - Fix http://bugs.webkit.org/show_bug.cgi?id=14251:
20592           onchange handler for select controls doesn't fire when changing via keyboard
20594         * html/HTMLSelectElement.cpp:
20595         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Got rid of
20596         a call to saveLastSelection in the "Enter" key handler for select
20597         controls that was preventing onchange from firing.
20599 2007-06-27  Sam Weinig  <sam@webkit.org>
20601         Fix Gdk, Qt, and Win32 builds.
20603         * WebCore.pro:
20604         * WebCore.vcproj/WebCore.vcproj:
20606 2007-06-27  Sam Weinig  <sam@webkit.org>
20608         Reviewed by Geoff.
20610         Patch for http://bugs.webkit.org/show_bug.cgi?id=14319
20611         Move the Selection object out of the JS bindings
20613         - Renames JS Object Selection to DOMSelection to avoid a name
20614           conflict.
20616         * DerivedSources.make:
20617         * WebCore.xcodeproj/project.pbxproj:
20618         * bindings/js/kjs_window.cpp:
20619         (KJS::WindowPrivate::WindowPrivate):
20620         (KJS::Window::mark):
20621         (KJS::Window::clearHelperObjectProperties):
20622         (KJS::WindowFunc::callAsFunction):
20623         (KJS::Window::disconnectFrame):
20624         * bindings/js/kjs_window.h:
20625         (KJS::Window::):
20626         * page/DOMSelection.cpp: Added.
20627         (WebCore::DOMSelection::DOMSelection):
20628         (WebCore::DOMSelection::frame):
20629         (WebCore::DOMSelection::disconnectFrame):
20630         (WebCore::DOMSelection::anchorNode):
20631         (WebCore::DOMSelection::baseNode):
20632         (WebCore::DOMSelection::anchorOffset):
20633         (WebCore::DOMSelection::baseOffset):
20634         (WebCore::DOMSelection::focusNode):
20635         (WebCore::DOMSelection::extentNode):
20636         (WebCore::DOMSelection::focusOffset):
20637         (WebCore::DOMSelection::extentOffset):
20638         (WebCore::DOMSelection::isCollapsed):
20639         (WebCore::DOMSelection::type):
20640         (WebCore::DOMSelection::rangeCount):
20641         (WebCore::DOMSelection::collapse):
20642         (WebCore::DOMSelection::collapseToEnd):
20643         (WebCore::DOMSelection::collapseToStart):
20644         (WebCore::DOMSelection::empty):
20645         (WebCore::DOMSelection::setBaseAndExtent):
20646         (WebCore::DOMSelection::setPosition):
20647         (WebCore::DOMSelection::modify):
20648         (WebCore::DOMSelection::getRangeAt):
20649         (WebCore::DOMSelection::removeAllRanges):
20650         (WebCore::DOMSelection::addRange):
20651         (WebCore::DOMSelection::toString):
20652         * page/DOMSelection.h: Added.
20653         * page/DOMSelection.idl: Added.
20654         * page/DOMWindow.cpp:
20655         (WebCore::DOMWindow::disconnectFrame):
20656         (WebCore::DOMWindow::getSelection):
20657         * page/DOMWindow.h:
20658         * page/DOMWindow.idl:
20660 2007-06-27  Sam Weinig  <sam@webkit.org>
20662         Reviewed by Maciej.
20664         2nd patch for http://bugs.webkit.org/show_bug.cgi?id=14111
20665         Autogenerate Event JS binding
20667         - Cleanup kjs_events
20669         * bindings/js/kjs_events.cpp:
20670         (WebCore::JSAbstractEventListener::JSAbstractEventListener):
20671         (WebCore::JSAbstractEventListener::handleEvent):
20672         (WebCore::JSAbstractEventListener::isHTMLEventListener):
20673         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
20674         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
20675         (WebCore::JSUnprotectedEventListener::listenerObj):
20676         (WebCore::JSUnprotectedEventListener::windowObj):
20677         (WebCore::JSUnprotectedEventListener::clearWindowObj):
20678         (WebCore::JSUnprotectedEventListener::mark):
20679         (WebCore::JSEventListener::JSEventListener):
20680         (WebCore::JSEventListener::~JSEventListener):
20681         (WebCore::JSEventListener::listenerObj):
20682         (WebCore::JSEventListener::windowObj):
20683         (WebCore::JSEventListener::clearWindowObj):
20684         (WebCore::JSLazyEventListener::JSLazyEventListener):
20685         (WebCore::JSLazyEventListener::listenerObj):
20686         (WebCore::JSLazyEventListener::parseCode):
20687         (WebCore::getNodeEventListener):
20688         (WebCore::JSClipboard::JSClipboard):
20689         (WebCore::JSClipboard::getValueProperty):
20690         (WebCore::JSClipboard::putValueProperty):
20691         (WebCore::JSClipboardPrototypeFunction::callAsFunction):
20692         (WebCore::toJS):
20693         (WebCore::toClipboard):
20694         * bindings/js/kjs_events.h:
20695         (WebCore::JSClipboard::classInfo):
20696         (WebCore::JSClipboard::impl):
20697         * bindings/js/kjs_window.h:
20698         * ksvg2/events/JSSVGLazyEventListener.h:
20700 2007-06-27  Sam Weinig  <sam@webkit.org>
20702         Reviewed by Adam Roben.
20704         Patch for http://bugs.webkit.org/show_bug.cgi?id=12045
20705         Crash under gmalloc at WTF::RefPtr<WebCore::HTMLSliderThumbElement>::operator->
20706         <rdar://problem/5286670>
20708         Test: fast/forms/thumbslider-no-parent-slider.html
20709         Test: fast/forms/thumbslider-crash.html
20711         * rendering/RenderObject.h:
20712         (WebCore::RenderObject::isSlider):
20713         * rendering/RenderSlider.h:
20714         (WebCore::RenderSlider::isSlider):
20715         * rendering/RenderTheme.cpp:
20716         (WebCore::RenderTheme::paint): Only paint thumbslider
20717         if the parent renderer is a RenderSlider.
20718         * rendering/RenderThemeMac.mm:
20719         (WebCore::RenderThemeMac::paintSliderThumb):
20720         * rendering/RenderThemeSafari.cpp:
20721         (WebCore::RenderThemeSafari::paintSliderThumb):
20723 2007-06-27  George Staikos  <staikos@kde.org>
20725         Make Qt builds link when XSLT is turned off.
20727         * WebCore.pro:
20729 2007-06-27  Steve Falkenburg  <sfalken@apple.com>
20731         Turn on static code analysis (Windows only).
20733         Affects only folks that have Visual Studio Team Suite installed,
20734         or who have replaced their compiler with the version shipping in the
20735         Vista SDK.
20736         
20737         Reviewed by Oliver.
20739         * WebCore.vcproj/WebCore.vcproj:
20741 2007-06-27  George Staikos  <staikos@kde.org>
20743         Remove old commented out files that no-longer exist.
20745         * WebCore.pro:
20747 2007-06-27  Justin Garcia  <justin.garcia@apple.com>
20749         Reviewed by John.
20751         <rdar://problem/5247341> REGRESSION: Pasting sometimes leaves out trailing newline
20752         
20753         Pasting with a trailing interchange newline doesn't work when pasting
20754         into an empty line.  Code that handles removing brs at the insertion
20755         position tries to also handle trailing interchange newlines by re-using
20756         those brs and fails.  Removed that code and handle all interchange
20757         newlines with code later in doApply().
20759         * editing/ReplaceSelectionCommand.cpp:
20760         (WebCore::ReplaceSelectionCommand::doApply): Don't try to re-use the
20761         endBR when there's a trailing interchange newline.
20762         
20763 2007-06-27  Anders Carlsson  <andersca@apple.com>
20765         Reviewed by Oliver.
20767         <rdar://problem/5253950>
20768         When Shockwave plugin has been loaded, exiting crashes Safari
20769         
20770         Add a "load count" for plugin packages. When the load count is zero, unload the plugin.
20771         
20772         * plugins/win/PluginPackageWin.cpp:
20773         (WebCore::PluginPackageWin::PluginPackageWin):
20774         (WebCore::PluginPackageWin::load):
20775         (WebCore::PluginPackageWin::unload):
20776         (WebCore::PluginPackageWin::unloadWithoutShutdown):
20777         * plugins/win/PluginPackageWin.h:
20778         
20779         * plugins/win/PluginViewWin.cpp:
20780         (WebCore::PluginViewWin::~PluginViewWin):
20781         Make sure to unload the plugin package and clear any references to plugin script objects.
20783 2007-06-27  George Staikos  <staikos@kde.org>
20785         This was succeeding compile by luck.  Setup dependencies properly.
20787         * WebCore.pro:
20789 2007-06-27  Justin Garcia  <justin.garcia@apple.com>
20791         Reviewed by John.
20793         <rdar://problem/4580583> Breaking blockquoted list should not automatically renumber the second list
20794         
20795         When a quoted numbered list is broken in half, it's cloned
20796         to make the second list. That second list needs its start attribute
20797         set so that the numbers of the list items in it will be preserved.
20799         * editing/BreakBlockquoteCommand.cpp:
20800         (WebCore::BreakBlockquoteCommand::doApply): Set the start attribute
20801         of a cloned list to be the original number of the first list item in it.
20803 2007-06-27  Alexey Proskuryakov  <ap@webkit.org>
20805         Reviewed by Geoff.
20807         http://bugs.webkit.org/show_bug.cgi?id=14413
20808         GIF animation throttling is different from MSIE
20810         * platform/graphics/cg/ImageSourceCG.cpp:
20811         (WebCore::ImageSource::frameDurationAtIndex):
20812         Change the cut-off value to 50ms to match MSIE.
20814 2007-06-27  Sam Weinig  <sam@webkit.org>
20816         Reviewed by Darin.
20818         First pass at fixing implicit 64-32 bit conversion errors.
20819         <rdar://problem/5292262>
20821         - Add 'f' suffix where necessary.
20823         * bridge/mac/WebCoreAXObject.mm:
20824         (-[WebCoreAXObject accessibilityAttributeValue:forParameter:]):
20825         * css/csshelper.h:
20826         * css/cssstyleselector.cpp:
20827         (WebCore::):
20828         (WebCore::CSSStyleSelector::largerFontSize):
20829         (WebCore::CSSStyleSelector::smallerFontSize):
20830         * html/CanvasGradient.cpp:
20831         (WebCore::CanvasGradient::addColorStop):
20832         * html/CanvasPattern.cpp:
20833         (WebCore::CanvasPattern::createPattern):
20834         * ksvg2/css/SVGCSSStyleSelector.cpp:
20835         (WebCore::CSSStyleSelector::applySVGProperty):
20836         * ksvg2/css/SVGRenderStyle.h:
20837         * ksvg2/events/SVGZoomEvent.cpp:
20838         (WebCore::SVGZoomEvent::SVGZoomEvent):
20839         * ksvg2/svg/SVGLength.cpp:
20840         (WebCore::SVGLength::SVGLength):
20841         (WebCore::SVGLength::value):
20842         (WebCore::SVGLength::setValue):
20843         (WebCore::SVGLength::valueAsPercentage):
20844         (WebCore::SVGLength::PercentageOfViewport):
20845         * ksvg2/svg/SVGSVGElement.cpp:
20846         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
20847         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
20848         (WebCore::SVGSVGElement::getScreenCTM):
20849         * ksvg2/svg/SVGTextContentElement.cpp:
20850         (WebCore::SVGTextContentElement::getComputedTextLength):
20851         (WebCore::SVGTextContentElement::getSubStringLength):
20852         (WebCore::SVGTextContentElement::getRotationOfChar):
20853         * ksvg2/svg/SVGTransformDistance.cpp:
20854         (WebCore::SVGTransformDistance::SVGTransformDistance):
20855         (WebCore::SVGTransformDistance::distance):
20856         * page/InspectorController.cpp:
20857         (WebCore::InspectorResource::InspectorResource):
20858         * platform/graphics/FloatPoint3D.cpp:
20859         (WebCore::FloatPoint3D::normalize):
20860         * platform/graphics/Path.cpp:
20861         (WebCore::pathLengthApplierFunction):
20862         (WebCore::Path::createRoundedRectangle):
20863         * platform/graphics/cg/GraphicsContextCG.cpp:
20864         (WebCore::GraphicsContext::drawLine):
20865         (WebCore::GraphicsContext::strokeArc):
20866         * platform/graphics/cg/ImageCG.cpp:
20867         (WebCore::FrameData::clear):
20868         * platform/graphics/cg/ImageSourceCG.cpp:
20869         (WebCore::ImageSource::frameDurationAtIndex):
20870         * platform/graphics/cg/PDFDocumentImage.cpp:
20871         (WebCore::PDFDocumentImage::setCurrentPage):
20872         * platform/graphics/svg/SVGPaintServerPattern.cpp:
20873         (WebCore::SVGPaintServerPattern::externalRepresentation):
20874         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
20875         (WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
20876         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
20877         (WebCore::cgGradientCallback):
20878         (WebCore::CGShadingRefForRadialGradient):
20879         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
20880         * platform/mac/FontDataMac.mm:
20881         (WebCore::webFallbackFontFamily):
20882         * platform/mac/PopupMenuMac.mm:
20883         (WebCore::PopupMenu::show):
20884         * rendering/InlineFlowBox.cpp:
20885         (WebCore::InlineFlowBox::placeBoxesHorizontally):
20886         * rendering/RenderSlider.cpp:
20887         (WebCore::RenderSlider::setValueForPosition):
20888         (WebCore::RenderSlider::setPositionFromValue):
20890 2007-06-27  Alexey Proskuryakov  <ap@webkit.org>
20892         Reviewed by Geoff.
20894         http://bugs.webkit.org/show_bug.cgi?id=14288
20895         XMLHttpRequest doesn't use a correct content type for file:// URLs
20897         Test: fast/dom/xmlhttprequest-html-response-encoding.html
20899         * xml/xmlhttprequest.cpp:
20900         (WebCore::XMLHttpRequest::responseMIMEType): Use MIME type provided by
20901         the network layer, since it provides it even for non-HTTP responses.
20903 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
20905         Reviewed by Sam Weinig.
20907         http://bugs.webkit.org/show_bug.cgi?id=14061
20908         Implement more of FrameLoaderClientGdk
20910         Make FrameLoaderClientGdk work properly when the MIME type is set.
20912         * loader/gdk/FrameLoaderClientGdk.cpp:
20913         (WebCore::FrameLoaderClientGdk::objectContentType):
20914         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
20916 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
20918         Reviewed by Maciej.
20920         http://bugs.webkit.org/show_bug.cgi?id=14058
20921         Gdk font backend cleanup
20923         * platform/FontData.h: Remove obsolete function.
20924         * platform/gdk/FontDataGdk.cpp:
20925         (WebCore::FontData::containsCharacters): Lock/unlock only once.
20926         (WebCore::FontData::platformWidthForGlyph): Remove needless cast.
20927         * platform/gdk/FontPlatformData.h: Remove obsolete function.
20928         * platform/gdk/FontPlatformDataGdk.cpp:
20929         (WebCore::FontPlatformData::FontPlatformData): Pass the actual size,
20930         not the pixel size.
20931         (WebCore::FontPlatformData::~FontPlatformData): Free m_fontMatrix.
20932         * platform/gdk/GlyphPageTreeNodeGdk.cpp:
20933         (WebCore::GlyphPage::fill): Lock/unlock only once.
20935 2007-06-26  Mitz Pettel  <mitz@webkit.org>
20937         Reviewed by Hyatt.
20939         - fix http://bugs.webkit.org/show_bug.cgi?id=14406
20940           <colgroup>'s borders are ignored when it has <col> children
20942         Covered by existing tests.
20944         * rendering/RenderTableCell.cpp:
20945         (WebCore::RenderTableCell::collapsedLeftBorder):
20946         (WebCore::RenderTableCell::collapsedRightBorder):
20947         (WebCore::RenderTableCell::collapsedTopBorder):
20948         (WebCore::RenderTableCell::collapsedBottomBorder):
20950 2007-06-26  Mitz Pettel  <mitz@webkit.org>
20952         Reviewed by Oliver.
20954         - fix http://bugs.webkit.org/show_bug.cgi?id=14329
20955           REGRESSION: TEXTAREA - cannot drag-and-drop text at en.wikipedia.org/
20957         Test: fast/repaint/text-selection-rect-in-overflow-2.html
20959         * rendering/RenderObject.cpp:
20960         (WebCore::RenderObject::computeAbsoluteRepaintRect): Added code to account
20961         for overflow scroll and columns.
20962         * rendering/RenderText.cpp:
20963         (WebCore::RenderText::selectionRect): Adjust for columns only in the
20964         non-clipped case, since RenderObject::absolutePosition() does not.
20966 2007-06-26  Mitz Pettel  <mitz@webkit.org>
20968         Reviewed by Sam.
20970         - http://bugs.webkit.org/show_bug.cgi?id=14415
20971           Remove the unused method RenderObject::setTable()
20973         * rendering/RenderObject.h:
20975 2007-06-26  Darin Fisher  <darin@chromium.org>
20977         Reviewed by Maciej.
20979         Implement http://bugs.webkit.org/show_bug.cgi?id=14225
20980         Bug 14225: Make it possible to define platform-specific ResourceRequest without #ifdefs
20982         This change moves the bulk of ResourceRequest into a base class named
20983         ResourceRequestBase with all platform-specific bits pushed into
20984         ResourceRequest.  This allows ports to easily add new members to a
20985         ResourceRequest without having to #ifdef the code that is shared
20986         between ports.
20988         * WebCore.exp:
20989         * WebCore.pro:
20990         * WebCore.vcproj/WebCore.vcproj:
20991         * WebCore.xcodeproj/project.pbxproj:
20992         * platform/network/ResourceRequest.cpp: Removed.
20993         * platform/network/ResourceRequest.h: Removed.
20994         * platform/network/ResourceRequestBase.cpp: Added.
20995         (WebCore::ResourceRequestBase::asResourceRequest):
20996         (WebCore::ResourceRequestBase::isEmpty):
20997         (WebCore::ResourceRequestBase::isNull):
20998         (WebCore::ResourceRequestBase::url):
20999         (WebCore::ResourceRequestBase::setURL):
21000         (WebCore::ResourceRequestBase::cachePolicy):
21001         (WebCore::ResourceRequestBase::setCachePolicy):
21002         (WebCore::ResourceRequestBase::timeoutInterval):
21003         (WebCore::ResourceRequestBase::setTimeoutInterval):
21004         (WebCore::ResourceRequestBase::mainDocumentURL):
21005         (WebCore::ResourceRequestBase::setMainDocumentURL):
21006         (WebCore::ResourceRequestBase::httpMethod):
21007         (WebCore::ResourceRequestBase::setHTTPMethod):
21008         (WebCore::ResourceRequestBase::httpHeaderFields):
21009         (WebCore::ResourceRequestBase::httpHeaderField):
21010         (WebCore::ResourceRequestBase::setHTTPHeaderField):
21011         (WebCore::ResourceRequestBase::httpBody):
21012         (WebCore::ResourceRequestBase::setHTTPBody):
21013         (WebCore::ResourceRequestBase::allowHTTPCookies):
21014         (WebCore::ResourceRequestBase::setAllowHTTPCookies):
21015         (WebCore::ResourceRequestBase::addHTTPHeaderField):
21016         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
21017         (WebCore::operator==):
21018         (WebCore::ResourceRequestBase::isConditional):
21019         (WebCore::ResourceRequestBase::updatePlatformRequest):
21020         (WebCore::ResourceRequestBase::updateResourceRequest):
21021         * platform/network/ResourceRequestBase.h: Added.
21022         (WebCore::):
21023         (WebCore::ResourceRequestBase::httpContentType):
21024         (WebCore::ResourceRequestBase::setHTTPContentType):
21025         (WebCore::ResourceRequestBase::httpReferrer):
21026         (WebCore::ResourceRequestBase::setHTTPReferrer):
21027         (WebCore::ResourceRequestBase::clearHTTPReferrer):
21028         (WebCore::ResourceRequestBase::httpUserAgent):
21029         (WebCore::ResourceRequestBase::setHTTPUserAgent):
21030         (WebCore::ResourceRequestBase::httpAccept):
21031         (WebCore::ResourceRequestBase::setHTTPAccept):
21032         (WebCore::ResourceRequestBase::ResourceRequestBase):
21033         (WebCore::operator!=):
21034         * platform/network/cf/ResourceRequest.h: Added.
21035         (WebCore::ResourceRequest::ResourceRequest):
21036         * platform/network/curl/ResourceRequest.h: Added.
21037         (WebCore::ResourceRequest::ResourceRequest):
21038         (WebCore::ResourceRequest::doUpdatePlatformRequest):
21039         (WebCore::ResourceRequest::doUpdateResourceRequest):
21040         * platform/network/mac/ResourceRequest.h: Added.
21041         (WebCore::ResourceRequest::ResourceRequest):
21042         * platform/network/qt/ResourceRequest.h: Added.
21043         (WebCore::ResourceRequest::ResourceRequest):
21044         (WebCore::ResourceRequest::doUpdatePlatformRequest):
21045         (WebCore::ResourceRequest::doUpdateResourceRequest):
21047 2007-06-26  Adam Roben  <aroben@apple.com>
21049         Add ChangeLog entries from the Windows merge.
21051         Reviewed by Maciej.
21053         * ChangeLog:
21055 2007-06-26  Sam Weinig  <sam@webkit.org>
21057         Reviewed by Maciej.
21059         Make sure not to enumerate the toString() function.
21060         <rdar://problem/5297118>
21062         * bindings/js/kjs_window.cpp:
21063         * bindings/scripts/CodeGeneratorJS.pm: Add support for [DontEnum].
21064         * html/HTMLAnchorElement.idl:
21066 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
21068         Reviewed by Mitz, landed by Anders.
21070         http://bugs.webkit.org/show_bug.cgi?id=14421
21071         Implement GraphicsContext::clearRect()
21073         * platform/graphics/cairo/GraphicsContextCairo.cpp:
21074         (WebCore::GraphicsContext::clearRect):
21076 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
21078         Reviewed and landed by Anders.
21080         http://bugs.webkit.org/show_bug.cgi?id=14416
21081         Content does not render fully in some cases
21083         Fix mismatched calls to cairo_save/restore due to an early method return.
21085         * platform/graphics/cairo/GraphicsContextCairo.cpp:
21086         (WebCore::GraphicsContext::drawLine):
21088 2007-06-26  Tristan O'Tierney  <tristan@apple.com>
21090         Reviewed by John Sullivan.
21092         Added two accessor functions for <rdar://problem/4119138>
21094         * bindings/objc/DOMHTML.mm:
21095         (-[DOMHTMLInputElement _isEdited]):
21096         (-[DOMHTMLTextAreaElement _isEdited]):
21097         Added an accessor to the isEdited value of a DOM node's render object
21099         * bindings/objc/DOMPrivate.h:
21100         Added header definitions for _isEdited
21102 2007-06-26  Sam Weinig  <sam@webkit.org>
21104         Fix Win32 build.
21106         * WebCore.vcproj/WebCore.vcproj:
21108 2007-06-26  Sam Weinig  <sam@webkit.org>
21110         Fix Qt and Gdk builds.
21112         * WebCore.pro:
21114 2007-06-26  Sam Weinig  <sam@webkit.org>
21116         Reviewed by Geoff.
21118         Patch for http://bugs.webkit.org/show_bug.cgi?id=14111
21119         Autogenerate Event JS binding
21121         - Moves the dataTransfer method into MouseEvent where it should be.
21123         * WebCore.xcodeproj/project.pbxproj:
21124         * bindings/js/JSEventCustom.cpp: Added.
21125         (WebCore::JSEvent::clipboardData):
21126         (WebCore::toJS):
21127         * bindings/js/JSEventTargetNode.cpp:
21128         * bindings/js/JSXMLHttpRequest.cpp:
21129         * bindings/js/kjs_events.cpp:
21130         * bindings/js/kjs_events.h:
21131         * bindings/objc/DOMUtility.mm:
21132         (KJS::createDOMWrapper):
21133         * bindings/scripts/CodeGeneratorJS.pm:
21134         * dom/Event.h:
21135         (WebCore::Event::returnValue):
21136         (WebCore::Event::setReturnValue):
21137         (WebCore::Event::clipboardData):
21138         * dom/Event.idl:
21139         * dom/MouseEvent.h:
21140         (WebCore::MouseEvent::dataTransfer):
21141         * dom/MouseEvent.idl:
21143 2007-06-26  Timothy Hatcher  <timothy@apple.com>
21145         Reviewed by Mark Rowe.
21147         Follow up fix for: Bug 14385: Web Inspector's computed style doesn't show implicitly set properties
21148         http://bugs.webkit.org/show_bug.cgi?id=14385
21150         Correctly remember the "Show implicit properties" setting as you switch nodes.
21152         * page/inspector/ResourcePanel.js:
21154 2007-06-26  Justin Garcia  <justin.garcia@apple.com>
21156         Reviewed by John.
21158         <rdar://problem/5290534> Crash at RenderTextControl::calcHeight() after deleting text in a search field
21159         
21160         Editing removed a node that was part of a search field's internal
21161         structure that should not be removed.
21163         * editing/DeleteSelectionCommand.cpp:
21164         (WebCore::DeleteSelectionCommand::handleGeneralDelete): If the
21165         selection to delete ends at [container, x], where x is the number
21166         of children in container, don't remove container.  Special case
21167         code elsewhere in this function will remove it if necessary.
21169 2007-06-25  Sam Weinig  <sam@webkit.org>
21171         Reviewed by Maciej.
21173         Patch for http://bugs.webkit.org/show_bug.cgi?id=11315
21174         Mutating document.constructor.prototype mutates Object.prototype
21176         Test: fast/js/constructor.html
21178         * bindings/scripts/CodeGeneratorJS.pm: add constructor attribute to
21179         classes with constructors.  It is an non-enumeratable, non-deletable,
21180         readonly attribute.
21182 2007-06-26  George Staikos  <staikos@kde.org>
21184         Repair the OS X build.
21186         * WebCore.exp:
21188 2007-06-26  Adam Treat  <adam@staikos.net>
21190         Reviewed by Adam Roben.
21192         Make the SQLite icon database optional.
21194         * loader/icon/IconDatabase.cpp:
21195         (WebCore::IconDatabase::isOpen):
21196         (WebCore::IconDatabase::isPrivateBrowsingEnabled):
21197         (WebCore::IconDatabase::enabled):
21198         * loader/icon/IconDatabase.h:
21200 2007-06-25  Sam Weinig  <sam@webkit.org>
21202         Reviewed by Adam Roben.
21204         Patch for http://bugs.webkit.org/show_bug.cgi?id=14369
21205         HTML syntax highlighting colors and DOM tree colors should be the same
21207         * css/view-source.css:
21208         * page/inspector/ResourcePanel.js:
21209         * page/inspector/inspector.css:
21210         * page/inspector/inspector.js:
21211         * page/inspector/utilities.js:
21213 2007-06-25  Adam Roben  <aroben@apple.com>
21215         Fix Bug 14402: Main resource of http://www.apple.com/safari/ is called "www.apple.com" instead of "safari"
21216         http://bugs.webkit.org/show_bug.cgi?id=14402
21218         The solution was to make KURL::lastPathComponent ignore trailing
21219         slashes, which is what -[NSURL lastPathComponent] does, too.
21221         Reviewed by Oliver.
21223         * platform/KURL.cpp:
21224         (WebCore::KURL::lastPathComponent):
21226 2007-06-25  Sam Weinig  <sam@webkit.org>
21228         Reviewed by Adam Roben.
21230         Patch for http://bugs.webkit.org/show_bug.cgi?id=14257
21231         Web Inspector lists favicon.ico as "other" instead of "image"
21233         * page/InspectorController.cpp:
21234         (WebCore::InspectorResource::type):
21236 2007-06-25  Adele Peterson  <adele@apple.com>
21238         Reviewed by Hyatt.
21240         Fix for <rdar://problem/5286410> Scrollbar and resize corner for overflow area is not hidden with style "visibility: hidden;"
21241         http://bugs.webkit.org/show_bug.cgi?id=14297
21243         Test: fast/overflow/hidden-scrollbar-resize.html
21245         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayer):
21246         Updated our shouldPaint check to consider visibility.
21248 2007-06-25  Oliver Hunt  <oliver@apple.com>
21250         Reviewed by Darin.
21252         <rdar://problem/5293444> REGRESSION: Dragging plain text into a styled text region does not acquire the correct style info
21254         Fixing logic error in DragController
21256         * manual-tests/drop-text-acquires-style.html: Added.
21257         * page/DragController.cpp:
21258         (WebCore::documentFragmentFromDragData):
21260 2007-06-25  Sam Weinig  <sam@webkit.org>
21262         Reviewed by Adam Roben.
21264         Annotate prototypes by adding "Prototype" subtitle.
21266         * page/inspector/ResourcePanel.js:
21268 2007-06-25  George Staikos  <staikos@kde.org>
21270         Reviewed by Zack.
21272         Start to add proxy and SSL support to WebKitQt.  Proxying works.
21274         * platform/network/ResourceHandleInternal.h:
21275         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
21276         * platform/network/qt/ResourceHandleQt.cpp:
21277         (WebCore::ResourceHandle::start):
21279 2007-06-25  Alp Toker  <alp.toker@collabora.co.uk>
21281         Reviewed by Adam Roben.
21283         http://bugs.webkit.org/show_bug.cgi?id=14386
21284         Gdk build fix
21286         * WebCore.pro: Fix gtk/gdk typo.
21288 2007-06-25  Timothy Hatcher  <timothy@apple.com>
21290         Reviewed by Anders.
21292         Bug 14385: Web Inspector's computed style doesn't show implicitly set properties
21293         http://bugs.webkit.org/show_bug.cgi?id=14385
21295         Add a toggle to show implict computed properties.
21297         * page/inspector/ResourcePanel.js:
21298         * page/inspector/inspector.css:
21299         * page/inspector/inspector.js:
21301 2007-06-25  Alp Toker  <alp.toker@collabora.co.uk>
21303         Reviewed by Mark.
21305         http://bugs.webkit.org/show_bug.cgi?id=13975
21306         Use system-provided libjpeg and libpng
21308         * WebCore.pro: Remove bundled libjpeg and libpng sources.
21309         * platform/image-decoders/jpeg: Remove sources.
21310         * platform/image-decoders/png: Remove sources.
21312 2007-06-25  Mitz Pettel  <mitz@webkit.org>
21314         Reviewed by Darin.
21316         - fix http://bugs.webkit.org/show_bug.cgi?id=14202
21317           Table caption renders too narrow sometimes
21319         Test: fast/table/caption-relayout.html
21321         * rendering/RenderTable.cpp:
21322         (WebCore::RenderTable::layout): Mark the caption for layout if the table
21323         width changed.
21325 2007-06-25  Mitz Pettel  <mitz@webkit.org>
21327         Reviewed by Darin.
21329         - fix http://bugs.webkit.org/show_bug.cgi?id=14245
21330           Underline painted under <br>, not repainted properly
21332         Test: fast/inline/br-text-decoration.html
21334         * platform/graphics/cg/GraphicsContextCG.cpp:
21335         (WebCore::GraphicsContext::drawLineForText): Added an early return if the line width
21336         is zero. Also changed the line stroke to a rect fill, so that lines with length shorter
21337         than their thickness paint correctly.
21339 2007-06-25  Mitz Pettel  <mitz@webkit.org>
21341         Reviewed by Maciej.
21343         - fix http://bugs.webkit.org/show_bug.cgi?id=14341
21344           rules="none" ignored in certain cases
21346         Covered by existing tests.
21348         * html/HTMLTableElement.cpp:
21349         (WebCore::HTMLTableElement::getSharedCellDecl):
21351 2007-06-24  Sam Weinig  <sam@webkit.org>
21353         Reviewed by Mitz.
21355         Patch for http://bugs.webkit.org/show_bug.cgi?id=14379
21356         Anchor elements show up as their href in the properties pane, not HTMLAnchorElement
21358         * page/inspector/ResourcePanel.js: make sure not to call an overriden
21359         toString() by using Object.prototype.toString.call().
21361 2007-06-24  Adam Roben  <aroben@apple.com>
21363         Fix http://bugs.webkit.org/show_bug.cgi?id=14374
21364         Bug 14374: Computed Style section should be expanded by default
21366         Reviewed by Sam.
21368         No regression test possible.
21370         * page/inspector/ResourcePanel.js: Expand all style sections.
21372 2007-06-24  Adam Roben  <aroben@apple.com>
21374         Unify the style of enums in the Inspector JS
21376         All our enums are now represented by an object with a property for
21377         each enum value.
21379         Reviewed by Sam.
21381         No regression test possible.
21383         * page/inspector/ConsolePanel.js:
21384         * page/inspector/Resource.js:
21385         * page/inspector/ResourcePanel.js:
21386         * page/inspector/inspector.js:
21388 2007-06-23  Sam Weinig  <sam@webkit.org>
21390         Reviewed by Mitz.
21392         Patch for http://bugs.webkit.org/show_bug.cgi?id=14321
21393         getComputedStyle(...).zIndex returns string "normal"
21395         Test: fast/css/getComputedStyle-zIndex-auto.html
21397         * css/CSSComputedStyleDeclaration.cpp:
21398         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return 'auto' instead of 'normal'.
21400 2007-06-24  Matt Lilek  <pewtermoose@gmail.com>
21402         Reviewed by Tim Hatcher.
21404         Bug 14265: Cannot resize columns in webinspector
21405         http://bugs.webkit.org/show_bug.cgi?id=14265
21407         * page/inspector/inspector.css:
21408         * page/inspector/inspector.html:
21409         * page/inspector/inspector.js:
21411 2007-06-23  Adam Roben  <aroben@apple.com>
21413         Silence a build warning about not finding `num-cpus`
21415         Reviewed by Mark Rowe.
21417         * WebCore.vcproj/build-generated-files.sh: Look for num-cpus in its new
21418         location.
21420 2007-06-22  Anders Carlsson  <andersca@apple.com>
21422         Reviewed by Darin.
21424         * plugins/win/PluginStreamWin.cpp:
21425         (WebCore::PluginStreamWin::didFinishLoading):
21426         No need to fetch the size from resourceData.
21428 2007-06-22  Anders Carlsson  <andersca@apple.com>
21430         Reviewed by Darin.
21432         <rdar://problem/5288617>
21433         Crash playing a very large QuickTime movie inside Safari.
21435         Get rid of m_completeDeliveryData and use the loader's resource data instead. This reduces the memory usage for 
21436         plug-ins which loads large files and use a transfer mode of NP_ASFILE or NP_ASFILEONLY.
21437         
21438         * plugins/win/PluginStreamWin.cpp:
21439         (WebCore::PluginStreamWin::PluginStreamWin):
21440         (WebCore::PluginStreamWin::~PluginStreamWin):
21441         (WebCore::PluginStreamWin::didReceiveData):
21442         (WebCore::PluginStreamWin::didFinishLoading):
21443         * plugins/win/PluginStreamWin.h:
21445 2007-06-22  Beth Dakin  <bdakin@apple.com>
21447         Reviewed by Oliver and Darin.
21449         Fix for <rdar://problem/5266999> Loading page from MangleMe fuzz 
21450         tester crashes in RenderTableRow::addChild (giant ROWSPAN)
21452         We already have code that tries to prevent allocating too-large 
21453         rowspans. The rowspan in this test, however, was small enough that 
21454         we thought it was okay in that code, even though clearly it was 
21455         still too large. I did a bunch of testing in Firefox, and it seems 
21456         that they set a hard limit on the maximum rowspan right in the DOM 
21457         -- 8k. So that is what this patch implements. 
21459         * html/HTMLTableCellElement.cpp:
21460         (WebCore::HTMLTableCellElement::parseMappedAttribute):
21462 2007-06-22  Justin Garcia  <justin.garcia@apple.com>
21464         Reviewed by Darin.
21465         
21466         <rdar://problem/5272440> Adding To Do via Note received in e-mail adds newlines on delete
21467         
21468         Deletion inserts a placeholder after it removes full paragraphs if
21469         one doesn't already exist.  The code that looked for a pre-existing
21470         placeholder didn't work because of a bug in enclosingNodeOfType.
21472         * editing/htmlediting.cpp:
21473         (WebCore::enclosingNodeOfType): We start looking at node->parentNode(),
21474         but don't go above an editing root.
21476 2007-06-22  Anders Carlsson  <andersca@apple.com>
21478         Reviewed by Maciej and Geoff.
21480         <rdar://problem/5244734>
21481         WebKit shouldn't send delegate resource load methods for the user stylesheet (doing so causes assertions in Safari)
21482         
21483         Add a sendResourceLoadCallbacks argument to the ResourceLoader and only send resource load callbacks if it's true. Make it so that
21484         loading the user style sheet creates a resource loader with sendResourceLoadCallbacks set to false (done by adding a sendResourceLoadCallbacks 
21485         argument to a bunch of classes).
21486         
21487         * loader/Cache.cpp:
21488         (WebCore::createResource):
21489         (WebCore::Cache::requestResource):
21490         * loader/Cache.h:
21491         * loader/CachedCSSStyleSheet.cpp:
21492         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
21493         * loader/CachedCSSStyleSheet.h:
21494         * loader/CachedResource.cpp:
21495         (WebCore::CachedResource::CachedResource):
21496         * loader/CachedResource.h:
21497         (WebCore::CachedResource::sendResourceLoadCallbacks):
21498         * loader/DocLoader.cpp:
21499         (WebCore::DocLoader::requestCSSStyleSheet):
21500         (WebCore::DocLoader::requestResource):
21501         (WebCore::DocLoader::checkCacheObjectStatus):
21502         * loader/DocLoader.h:
21503         * loader/MainResourceLoader.cpp:
21504         (WebCore::MainResourceLoader::MainResourceLoader):
21505         * loader/Request.cpp:
21506         (WebCore::Request::Request):
21507         * loader/Request.h:
21508         (WebCore::Request::sendResourceLoadCallbacks):
21509         * loader/ResourceLoader.cpp:
21510         (WebCore::ResourceLoader::ResourceLoader):
21511         (WebCore::ResourceLoader::willSendRequest):
21512         (WebCore::ResourceLoader::didReceiveResponse):
21513         (WebCore::ResourceLoader::didReceiveData):
21514         (WebCore::ResourceLoader::didFinishLoadingOnePart):
21515         (WebCore::ResourceLoader::didFail):
21516         (WebCore::ResourceLoader::didCancel):
21517         * loader/ResourceLoader.h:
21518         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
21519         * loader/SubresourceLoader.cpp:
21520         (WebCore::SubresourceLoader::SubresourceLoader):
21521         (WebCore::SubresourceLoader::create):
21522         * loader/SubresourceLoader.h:
21523         * loader/loader.cpp:
21524         (WebCore::Loader::load):
21525         (WebCore::Loader::servePendingRequests):
21526         * loader/loader.h:
21527         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
21528         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
21530 2007-06-21  Richard Connamacher  <rich@indieimage.com>
21532         Reviewed by Tim Hatcher.
21534         Bug 14305: Web Inspector marks local files with server-side compression tip
21535         http://bugs.webkit.org/show_bug.cgi?id=14305
21537         * page/inspector/Resource.js:
21538         (WebInspector.Resource._shouldCompress): Prevent server-side compression tip
21539         from being given to local files
21541 2007-06-21  Mark Rowe  <mrowe@apple.com>
21543         Reviewed by Darin.
21545         Fix for <rdar://problem/5266928> REGRESSION: crash/assert failure beneath RenderFrameSet::layOutAxis when loading
21547         * platform/StringImpl.cpp:
21548         (WebCore::StringImpl::toLengthArray): Simplify whitespace before checking for an empty string.  This avoids returning
21549         a length of zero when the string is collapsed to empty by whitespace simplification.
21551 2007-06-21  Dave Hyatt  <hyatt@apple.com>
21553         Fix for <rdar://problem/5286978>, large font sizes crash Windows.
21554         
21555         Limit the maximum font size to 1,000,000 to avoid crashes and issues with platforms that
21556         start failing to do anything useful if the font size is too big.
21557         
21558         Reviewed by olliej
21560         * css/cssstyleselector.cpp:
21561         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
21562         
21563 2007-06-21  Andrew Wellington  <proton@wiretapped.net>
21565         Reviewed by Timothy.
21567         Stop shift+scroll wheel performing a horizontal scroll in Web Inspector
21569         * page/inspector/inspector.css: Set body margin to 0
21571 2007-06-21  Adam Treat  <adam@staikos.net>
21573         Reviewed by George Staikos.
21575         Implement the default resources on Qt.
21577         * platform/graphics/BitmapImage.h:
21578         * platform/graphics/Image.h:
21579         * platform/graphics/qt/ImageQt.cpp:
21580         (WebCore::Image::loadPlatformResource):
21581         (WebCore::BitmapImage::BitmapImage):
21582         (WebCore::BitmapImage::initPlatformData):
21583         (WebCore::BitmapImage::invalidatePlatformData):
21584         (WebCore::BitmapImage::getPixmap):
21585         * platform/qt/TemporaryLinkStubs.cpp:
21587 2007-06-21  Oliver Hunt  <oliver@apple.com>
21589         Reviewed by Darin.
21591         Use RetainPtr for holding currentEvent.  This removes explicit HardRetain/Release calls
21592         and makes reference handling simpler in advance of IME refactoring.
21594         * WebCore.xcodeproj/project.pbxproj:
21595         * page/mac/EventHandlerMac.mm:
21596         (WebCore::currentEvent):
21597         (WebCore::EventHandler::currentNSEvent):
21598         (WebCore::EventHandler::wheelEvent):
21599         (WebCore::EventHandler::keyEvent):
21600         (WebCore::lastEventIsMouseUp):
21601         (WebCore::EventHandler::passMouseDownEventToWidget):
21602         (WebCore::EventHandler::eventLoopHandleMouseDragged):
21603         (WebCore::EventHandler::eventLoopHandleMouseUp):
21604         (WebCore::EventHandler::passSubframeEventToSubframe):
21605         (WebCore::EventHandler::passWheelEventToWidget):
21606         (WebCore::EventHandler::mouseDown):
21607         (WebCore::EventHandler::mouseDragged):
21608         (WebCore::EventHandler::mouseUp):
21609         (WebCore::EventHandler::mouseMoved):
21611 2007-06-21  George Staikos  <staikos@kde.org>
21613         Reviewed by George & Marius.
21615         Patch by me, revision by Marius, minor rev by me.  Adds rendered
21616         and stylable scrollbars.
21618         * page/qt/EventHandlerQt.cpp:
21619         (WebCore::EventHandler::passMousePressEventToScrollbar):
21620         * platform/Widget.h:
21621         * platform/qt/PlatformScrollBar.h:
21622         (WebCore::PlatformScrollbar::isWidget):
21623         * platform/qt/PlatformScrollBarQt.cpp:
21624         (WebCore::PlatformScrollbar::PlatformScrollbar):
21625         (WebCore::PlatformScrollbar::~PlatformScrollbar):
21626         (WebCore::PlatformScrollbar::updateThumbPosition):
21627         (WebCore::PlatformScrollbar::updateThumbProportion):
21628         (WebCore::PlatformScrollbar::width):
21629         (WebCore::PlatformScrollbar::height):
21630         (WebCore::PlatformScrollbar::setRect):
21631         (WebCore::PlatformScrollbar::isEnabled):
21632         (WebCore::PlatformScrollbar::setEnabled):
21633         (WebCore::PlatformScrollbar::paint):
21634         (WebCore::PlatformScrollbar::thumbPosition):
21635         (WebCore::PlatformScrollbar::thumbLength):
21636         (WebCore::PlatformScrollbar::trackLength):
21637         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
21638         (WebCore::PlatformScrollbar::handleMouseOutEvent):
21639         (WebCore::PlatformScrollbar::handleMousePressEvent):
21640         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
21641         (WebCore::PlatformScrollbar::startTimerIfNeeded):
21642         (WebCore::PlatformScrollbar::stopTimerIfNeeded):
21643         (WebCore::PlatformScrollbar::autoscrollPressedPart):
21644         (WebCore::PlatformScrollbar::autoscrollTimerFired):
21645         (WebCore::PlatformScrollbar::pressedPartScrollDirection):
21646         (WebCore::PlatformScrollbar::pressedPartScrollGranularity):
21647         (WebCore::PlatformScrollbar::thumbUnderMouse):
21648         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
21649         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
21650         (WebCore::PlatformScrollbar::windowClipRect):
21651         * platform/qt/ScrollViewQt.cpp:
21652         (WebCore::ScrollView::addChild):
21653         (WebCore::ScrollView::removeChild):
21654         * platform/qt/WidgetQt.cpp:
21655         (WebCore::WidgetPrivate::WidgetPrivate):
21656         (WebCore::Widget::setQWidget):
21657         (WebCore::Widget::invalidate):
21658         (WebCore::Widget::invalidateRect):
21659         (WebCore::Widget::setParent):
21660         (WebCore::Widget::parent):
21662 2007-06-21  Geoffrey Garen  <ggaren@apple.com>
21664         Reviewed by Dave Hyatt.
21665         
21666         Fixed <rdar://problem/4977124> | http://bugs.webkit.org/show_bug.cgi?id=12646
21667         REGRESSION: RapidWeaver's "Hello" HTML page doesn't display any DHTML 
21668         effects when clicking on its links (12646)
21669         
21670         I'm rolling our r7703 for these reasons:
21672         1. It broke RapidWeaver.
21673         
21674         2. WebKit is now orders of magnitude faster when handling deep nesting
21675         (5 seconds vs 3 minutes on my MBP in this particular case).
21677         3. Firefox, IE, and HTML5 all allow nested heading tags.
21678         
21679         4. Hyatt said so.
21681         * html/HTMLParser.cpp:
21682         (WebCore::HTMLParser::parseToken):
21684 2007-06-21  Sam Weinig  <sam@webkit.org>
21686         Reviewed by Tim Hatcher.
21688         http://bugs.webkit.org/show_bug.cgi?id=14260
21689         ASSERTION FAILED: m_mainResource->loader == loader going back in history on any page
21691         Remove assert for now as it is causing the back button to not
21692         work in debug builds.
21694         * page/InspectorController.cpp:
21695         (WebCore::InspectorController::didCommitLoad):
21697 2007-06-21  Lars Knoll <lars@trolltech.com>
21699         Remove some debug output.
21701         * platform/qt/FontQt.cpp:
21702         (WebCore::generateComponents):
21703         (WebCore::Font::width):
21705 2007-06-21  George Staikos  <staikos@kde.org>
21707         Repair Qt/Mac OS X build.
21709         * WebCore.pro:
21711 2007-06-21  Alexey Proskuryakov  <ap@webkit.org>
21713         Reviewed by Anders.
21715         http://bugs.webkit.org/show_bug.cgi?id=13905
21716         REGRESSION: A Chinese dictionary widget has a problem with XMLHttpRequest response encoding
21718         Tiger WebKit accidentally looked at HTML Http-Equiv META to determine the response encoding
21719         (regardless of the actual response MIME type). This was corrected a while ago to match other 
21720         browsers and the draft XHR spec.
21722         Now restoring this functionality for "text/html", with spec editor's blessing.
21724         * xml/xmlhttprequest.cpp:
21725         (WebCore::XMLHttpRequest::responseMIMEType):
21726         (WebCore::XMLHttpRequest::responseIsXML):
21727         (WebCore::XMLHttpRequest::didReceiveData):
21728         * xml/xmlhttprequest.h:
21730 2007-06-21  Andrew Wellington  <proton@wiretapped.net>
21732         Mac build fix.
21734         * platform/Font.h:
21736 2007-06-21  Lars Knoll  <lars@trolltech.com>
21738         Reviewed by Simon.
21740         another small fix for letter spacing
21742         * platform/qt/FontQt.cpp:
21743         (WebCore::generateComponents):
21745 2007-06-21  Lars Knoll  <lars@trolltech.com>
21747         Reviewed by Simon.
21749         fix word-spacing
21751         * platform/qt/FontQt.cpp:
21752         (WebCore::generateComponents):
21753         (WebCore::Font::width):
21755 2007-06-21  Lars Knoll  <lars@trolltech.com>
21757         Reviewed by Simon.
21759         fix letterspacing and small caps.
21761         * platform/Font.h:
21762         * platform/graphics/qt/GraphicsContextQt.cpp:
21763         (WebCore::GraphicsContext::setPlatformFont):
21764         * platform/qt/FileChooserQt.cpp:
21765         * platform/qt/FontQt.cpp:
21766         (WebCore::TextRunComponent::TextRunComponent):
21767         (WebCore::Font::Font):
21768         (WebCore::Font::operator=):
21769         (WebCore::Font::update):
21770         (WebCore::generateComponents):
21771         (WebCore::Font::selectionRectForText):
21772         * platform/qt/RenderThemeQt.cpp:
21774 2007-06-21  Lars Knoll  <lars@trolltech.com>
21776         Reviewed by Simon.
21778         store the metrics and space width in the Font object
21780         * platform/Font.h:
21781         * platform/qt/FontQt.cpp:
21782         (WebCore::Font::Font):
21783         (WebCore::Font::drawText):
21784         (WebCore::Font::width):
21785         (WebCore::Font::isFixedPitch):
21786         (WebCore::Font::ascent):
21787         (WebCore::Font::descent):
21788         (WebCore::Font::lineSpacing):
21790 2007-06-21  Lars Knoll  <lars@trolltech.com>
21792         Reviewed by Simon.
21794         simplify some codepaths
21796         * platform/qt/FontQt.cpp:
21797         (WebCore::Font::drawText):
21798         (WebCore::Font::width):
21800 2007-06-21  Lars Knoll  <lars@trolltech.com>
21802         Reviewed by Simon.
21804         fix copyright header
21806         * platform/qt/FontQt.cpp:
21808 2007-06-21  Lars Knoll  <lars@trolltech.com>
21810         Reviewed by Simon.
21812         correctly load fonts when a list of font families is given
21814         * platform/qt/FontQt.cpp:
21815         (WebCore::Font::Font):
21817 2007-06-21  Lars Knoll  <lars@trolltech.com>
21819         Reviewed by Simon.
21821         fix some more of the font support
21823         * platform/qt/FontQt.cpp:
21824         (WebCore::Font::drawText):
21825         (WebCore::Font::width):
21827 2007-06-21  Lars Knoll  <lars@trolltech.com>
21829         Reviewed by Simon.
21831         Compile fixes
21833         * platform/Font.h:
21834         (WebCore::Font::isRoundingHackCharacter):
21835         * platform/qt/FontQt.cpp:
21836         (WebCore::Font::drawText):
21838 2007-06-21  Lars Knoll  <lars@trolltech.com>
21840         Reviewed by Simon.
21842         Some more work on the implementation of FontQt.
21844         * platform/qt/FontQt.cpp:
21845         (WebCore::Font::Font):
21846         (WebCore::Font::~Font):
21847         (WebCore::Font::operator=):
21849 2007-06-21  Lars Knoll  <lars@trolltech.com>
21851         Reviewed by Simon.
21853         Started work on the new font infrastructure for the Qt port.
21855         * WebCore.pro:
21856         * editing/Editor.cpp:
21857         (WebCore::Editor::fontForSelection):
21858         * platform/Font.h:
21859         (WebCore::Font::treatAsSpace):
21860         (WebCore::Font::treatAsZeroWidthSpace):
21861         (WebCore::Font::isRoundingHackCharacter):
21862         * platform/qt/FontQt.cpp:
21863         (WebCore::Font::operator QFont):
21864         * platform/qt/TemporaryLinkStubs.cpp:
21866 2007-06-21  Adam Roben  <aroben@apple.com>
21868         More Gdk build fixes.
21870         * page/gdk/ContextMenuClientGdk.cpp:
21871         (WebCore::ContextMenuClientGdk::shouldIncludeInspectElementItem):
21872         * page/gdk/ContextMenuClientGdk.h:
21873         * platform/gdk/TemporaryLinkStubs.cpp:
21875 2007-06-21  Adam Roben  <aroben@apple.com>
21877         Speculative Gdk build fix.
21879         * page/InspectorController.h: Only include the JS headers we really
21880         need to avoid pulling in ones like JSStringRefCF.h.
21882 2007-06-20  Adam Roben  <aroben@apple.com>
21884         Speculative Gdk build fix.
21886         * WebCore.pro: Don't try to build WebKitQt/Plugins on Gdk.
21888 2007-06-20  Adam Roben  <aroben@apple.com>
21890         Windows build fix.
21892         * WebCore.vcproj/WebCore.vcproj: Include ForwardingHeaders after
21893         everything but $WebKitLibrariesDir so that we will pick up
21894         JavaScriptCore headers directly.
21896 2007-06-15  George Staikos  <staikos@kde.org>
21898         Add missing symbol.
21900         * platform/qt/TemporaryLinkStubs.cpp:
21901         (WebCore::contextMenuItemTagInspectElement):
21903 2007-06-20  Steve Falkenburg  <sfalken@apple.com>
21905         Reviewed by Maciej, Anders.
21906         
21907         <rdar://problem/5283789> Crash after dismissing JavaScript alert at end of test on http://lcamtuf.coredump.cx/ierace/
21909         Keep a reference to the Page (via the main frame) for the
21910         load deferred pages.
21911         
21912         Reference is held via the frame since Page isn't refcounted.
21914         * page/Chrome.cpp:
21915         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
21916         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
21918 2007-06-15  Adam Treat <adam@staikos.net>
21920         Reviewed by George Staikos.
21922         Add ICO support to the Qt build.
21924         * WebCore.pro:
21925         * platform/graphics/qt/ImageDecoderQt.cpp:
21926         (Q_IMPORT_PLUGIN):
21928 2007-06-15  George Staikos  <staikos@kde.org>
21930         Fixing Qt build.
21932         * ForwardingHeaders/JavaScriptCore/APICast.h: Added.
21933         * WebCore.pro:
21934         * page/InspectorController.h:
21936 2007-06-20  Adam Roben  <aroben@apple.com>
21938         More speculative Qt/Gdk build fixes.
21940         * WebCore.pro: Add new files.
21942 2007-06-20  Adam Roben  <aroben@apple.com>
21944         Speculative Qt/Gdk build fix.
21946         Added forwarding headers for JavaScriptCore. We may eventually move
21947         InspectorController off of the JSC API, but for now this is the
21948         quickest way to a working build.
21950         * ForwardingHeaders/JavaScriptCore/JSBase.h: Added.
21951         * ForwardingHeaders/JavaScriptCore/JSContextRef.h: Added.
21952         * ForwardingHeaders/JavaScriptCore/JSObjectRef.h: Added.
21953         * ForwardingHeaders/JavaScriptCore/JSStringRef.h: Added.
21954         * ForwardingHeaders/JavaScriptCore/JSStringRefCF.h: Added.
21955         * ForwardingHeaders/JavaScriptCore/JSValueRef.h: Added.
21956         * ForwardingHeaders/JavaScriptCore/JavaScriptCore.h: Added.
21958 2007-06-20  Sam Weinig  <sam@webkit.org>
21960         Rubber stamped by Adam Roben.
21962         Add licenses.
21964         * page/inspector/ConsolePanel.js:
21965         * page/inspector/NetworkPanel.js:
21966         * page/inspector/Resource.js:
21967         * page/inspector/ResourceCategory.js:
21968         * page/inspector/ResourcePanel.js:
21970 2007-06-20  Mark Rowe  <mrowe@apple.com>
21972         Reviewed by Adam.
21974         * WebCore.exp: Export InspectorController::inspect so WebKit can see it.
21976 2007-06-20  Geoffrey Garen  <ggaren@apple.com>
21978         Reviewed by Adele Peterson, Oliver Hunt, Anders Carlsson.
21980         Fixed <rdar://problem/5222911> Leopard9A446 : VitalSource Bookshelf 4.5: 
21981         Crashes when you click on sign in (stringByEvaluatingJavaScriptFromString 
21982         returning nil instead of "")
21984         I'm basically rolling out the change for <rdar://problem/4782422> because
21985         my testing shows that it was backwards.
21986         
21987         * html/HTMLElement.cpp:
21988         (dumpInnerHTML): New debug-only function to work around gdb being 
21989         perpetually suck-tastic.
21991         * page/mac/WebCoreFrameBridge.mm:
21992         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
21993         
21994         Return "", not nil. This function never used to return nil, so let's not
21995         start now. I've filed <rdar://problem/5283271> to cover the documentation bug,
21997 2007-06-20  Adam Roben  <aroben@apple.com>
21999         Addressed some of Geoff's comments.
22001         * page/ContextMenuController.cpp:
22002         (WebCore::ContextMenuController::handleContextMenuEvent): Added a
22003         FIXME.
22004         * platform/ContextMenu.cpp:
22005         (WebCore::ContextMenu::addInspectElementItem): Null-check
22006         frame->page().
22008 2007-06-20  Adam Roben  <aroben@apple.com>
22010         Fix crash in fast/dom/dir-no-body.html
22012         Reviewed by Mark.
22014         * html/HTMLDocument.cpp:
22015         (WebCore::HTMLDocument::createTokenizer): Don't assume we have a
22016         Frame, since we won't if someone creates an HTMLDocument from JS.
22018 2007-06-20  Adam Roben  <aroben@apple.com>
22020         Land the new Inspector.
22022         Co-written with Tim Hatcher.
22024         Reviewed by Anders, Adele, Hyatt, and Sam.
22026         No regression tests possible.
22028         Add a new InspectorController that is in charge of the Inspector. It
22029         has an InspectorClient that controls the Inspector's window and node
22030         highlight.
22032         * page/InspectorClient.h: Added.
22033         (WebCore::InspectorClient::~InspectorClient):
22034         * page/InspectorController.cpp: Added.
22035         (WebCore::ConsoleMessage::ConsoleMessage):
22036         (WebCore::InspectorResource::): Represents a single resource that the
22037         Inspector knows about.
22038         (WebCore::InspectorResource::InspectorResource):
22039         (WebCore::InspectorResource::~InspectorResource):
22040         (WebCore::InspectorResource::type):
22041         (WebCore::InspectorResource::setScriptObject):
22042         (WebCore::addSourceToFrame): Callback available from JS.
22043         (WebCore::getResourceDocumentNode): Ditto.
22044         (WebCore::highlightDOMNode): Ditto.
22045         (WebCore::hideDOMNodeHighlight): Ditto.
22046         (WebCore::loaded): Ditto.
22047         (WebCore::unloading): Ditto.
22048         (WebCore::attach): Ditto.
22049         (WebCore::detach): Ditto.
22050         (WebCore::log): Ditto.
22051         (WebCore::search): Ditto.
22052         (WebCore::inspectedWindow): Ditto.
22053         (WebCore::InspectorController::InspectorController):
22054         (WebCore::InspectorController::~InspectorController):
22055         (WebCore::InspectorController::inspect): Called by
22056         ContextMenuController to inspect a node.
22057         (WebCore::InspectorController::focusNode):
22058         (WebCore::InspectorController::highlight):
22059         (WebCore::InspectorController::hideHighlight):
22060         (WebCore::InspectorController::windowVisible):
22061         (WebCore::InspectorController::setWindowVisible):
22062         (WebCore::InspectorController::addMessageToConsole):
22063         (WebCore::InspectorController::attachWindow):
22064         (WebCore::InspectorController::detachWindow):
22065         (WebCore::InspectorController::windowScriptObjectAvailable):
22066         (WebCore::InspectorController::scriptObjectReady):
22067         (WebCore::InspectorController::windowUnloading):
22068         (WebCore::addHeaders): Static helper function.
22069         (WebCore::objectForRequest): Ditto.
22070         (WebCore::objectForResponse): Ditto.
22071         (WebCore::InspectorController::addScriptResource):
22072         (WebCore::InspectorController::addAndUpdateScriptResource):
22073         (WebCore::InspectorController::removeScriptResource):
22074         (WebCore::InspectorController::updateScriptResource):
22075         (WebCore::InspectorController::populateScriptResources):
22076         (WebCore::InspectorController::addScriptConsoleMessage):
22077         (WebCore::callClearFunction): Static helper function.
22078         (WebCore::InspectorController::clearScriptResources):
22079         (WebCore::InspectorController::clearScriptConsoleMessages):
22080         (WebCore::InspectorController::clearNetworkTimeline):
22081         (WebCore::InspectorController::pruneResources):
22082         (WebCore::InspectorController::didCommitLoad): Callback from
22083         FrameLoader.
22084         (WebCore::InspectorController::frameDetachedFromParent): Ditto.
22085         (WebCore::InspectorController::addResource): Ditto.
22086         (WebCore::InspectorController::removeResource): Ditto.
22087         (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto.
22088         (WebCore::InspectorController::identifierForInitialRequest): Ditto.
22089         (WebCore::InspectorController::willSendRequest): Ditto.
22090         (WebCore::InspectorController::didReceiveResponse): Ditto.
22091         (WebCore::InspectorController::didReceiveContentLength): Ditto.
22092         (WebCore::InspectorController::didFinishLoading): Ditto.
22093         (WebCore::InspectorController::didFailLoading): Ditto.
22094         * page/InspectorController.h: Added.
22095         (WebCore::InspectorController::inspectedPage):
22096         (WebCore::InspectorController::scriptContext):
22097         (WebCore::InspectorController::setScriptContext):
22098         (WebCore::InspectorController::resources):
22099         (WebCore::InspectorController::removeAllResources):
22101         Add the JavaScript that defines most of the behavior of the Inspector.
22102         
22103         * page/inspector/ConsolePanel.js: Added.
22104         * page/inspector/NetworkPanel.js: Added.
22105         * page/inspector/Resource.js: Added.
22106         * page/inspector/ResourceCategory.js: Added.
22107         * page/inspector/ResourcePanel.js: Added.
22108         * page/inspector/inspector.js: Added.
22109         * page/inspector/treeoutline.js: Renamed from WebKit/WebInspector/webInspector/treeoutline.js.
22110         * page/inspector/utilities.js: Added.
22112         Add the Inspector's CSS and HTML.
22114         * page/inspector/inspector.css: Added.
22115         * page/inspector/inspector.html: Added.
22117         Hang the InspectorController off of Page. We only create an
22118         InspectorController if an InspectorClient is given to the Page.
22120         * page/Page.cpp:
22121         (WebCore::Page::Page):
22122         * page/Page.h:
22123         (WebCore::Page::inspectorController):
22125         Use FrameLoader to notify the InspectorController of resource loads.
22127         * loader/FrameLoader.cpp:
22128         (WebCore::FrameLoader::begin):
22129         (WebCore::FrameLoader::transitionToCommitted):
22130         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
22131         (WebCore::FrameLoader::detachFromParent):
22132         (WebCore::FrameLoader::assignIdentifierToInitialRequest):
22133         (WebCore::FrameLoader::willSendRequest):
22134         (WebCore::FrameLoader::didReceiveResponse):
22135         (WebCore::FrameLoader::didReceiveData):
22136         (WebCore::FrameLoader::sendRemainingDelegateMessages):
22137         (WebCore::FrameLoader::requestFromDelegate):
22138         (WebCore::FrameLoader::didFinishLoad):
22139         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
22140         (WebCore::FrameLoader::dispatchDidCommitLoad):
22141         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest):
22142         (WebCore::FrameLoader::dispatchWillSendRequest):
22143         (WebCore::FrameLoader::dispatchDidReceiveResponse):
22144         (WebCore::FrameLoader::dispatchDidReceiveContentLength):
22145         (WebCore::FrameLoader::dispatchDidFinishLoading):
22146         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache):
22147         * loader/FrameLoader.h:
22149         Send console messages to the InspectorController.
22151         * page/Chrome.cpp:
22152         (WebCore::Chrome::addMessageToConsole): Send all console messages to
22153         the InspectorController.
22154         * page/Chrome.h: Add a new MessageLevel and MessageSource that are
22155         used in the Inspector JS.
22157         Report HTML errors when the Inspector window is open.
22158         We don't report errors when the window is closed because we don't want
22159         to slow down the HTMLTokenizer.
22161         * html/HTMLDocument.cpp:
22162         (WebCore::HTMLDocument::createTokenizer):
22163         * html/HTMLParser.cpp:
22164         (WebCore::HTMLParser::HTMLParser):
22165         * html/HTMLParser.h:
22166         * html/HTMLTokenizer.cpp:
22167         (WebCore::HTMLTokenizer::HTMLTokenizer):
22168         * html/HTMLTokenizer.h:
22170         Append the "Inspect Element" context menu item after passing the
22171         context menu to the ContextMenuClient. This work used to be done in
22172         WebKit.
22174         * page/ContextMenuClient.h:
22175         * page/ContextMenuController.cpp:
22176         (WebCore::ContextMenuController::handleContextMenuEvent): Add the
22177         "Inspect Element" item.
22178         (WebCore::ContextMenuController::contextMenuItemSelected): Handle the
22179         "Inspect Element" item.
22180         * platform/ContextMenu.cpp:
22181         (WebCore::ContextMenu::addInspectElementItem):
22182         (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for "Inspect
22183         Element" item.
22184         * platform/ContextMenu.h:
22185         * platform/ContextMenuItem.h:
22186         (WebCore::): Add ContextMenuItemTagInspectElement.
22187         * platform/graphics/svg/SVGImageEmptyClients.h:
22188         * page/mac/WebCoreViewFactory.h: Add the "Inspect Element" localized
22189         string.
22190         * platform/LocalizedStrings.h: Ditto.
22191         * platform/mac/LocalizedStringsMac.mm:
22192         (WebCore::contextMenuItemTagInspectElement): Ditto.
22194         Miscellaneous changes:
22196         * css/view-source.css: Add message bubble styles.
22197         * loader/DocumentLoader.h: Add a frame getter.
22198         * platform/win/ScrollViewWin.cpp:
22199         (WebCore::ScrollView::updateScrollbars): Respect
22200         Frame::prohibitsScrolling.
22202         Add new images needed for the Inspector.
22204         * page/inspector/Images/attachedShadow.png: Added.
22205         * page/inspector/Images/bottomShadow.png: Added.
22206         * page/inspector/Images/breadcrumbBackground.png: Added.
22207         * page/inspector/Images/checker.png: Added.
22208         * page/inspector/Images/console.png: Added.
22209         * page/inspector/Images/darkShadow.png: Added.
22210         * page/inspector/Images/disclosureDownPressed.png: Added.
22211         * page/inspector/Images/disclosureRightDown.png: Added.
22212         * page/inspector/Images/disclosureRightPressed.png: Added.
22213         * page/inspector/Images/document.png: Added.
22214         * page/inspector/Images/domViewButton.png: Added.
22215         * page/inspector/Images/domViewButtonSelected.png: Added.
22216         * page/inspector/Images/downTriangle.png: Added.
22217         * page/inspector/Images/errorIcon.png: Added.
22218         * page/inspector/Images/errorMediumIcon.png: Added.
22219         * page/inspector/Images/folder.png: Added.
22220         * page/inspector/Images/goArrow.png: Added.
22221         * page/inspector/Images/gradient.png: Added.
22222         * page/inspector/Images/gradientHighlight.png: Added.
22223         * page/inspector/Images/gradientHighlightBottom.png: Added.
22224         * page/inspector/Images/hideStatusWidget.png: Added.
22225         * page/inspector/Images/hideStatusWidgetPressed.png: Added.
22226         * page/inspector/Images/network.png: Added.
22227         * page/inspector/Images/paneBottomGrow.png: Added.
22228         * page/inspector/Images/paneBottomGrowActive.png: Added.
22229         * page/inspector/Images/paneGrowHandleLine.png: Added.
22230         * page/inspector/Images/paneHeader.png: Added.
22231         * page/inspector/Images/paneHeaderActive.png: Added.
22232         * page/inspector/Images/plainDocument.png: Added.
22233         * page/inspector/Images/popupArrows.png: Added.
22234         * page/inspector/Images/rightTriangle.png: Added.
22235         * page/inspector/Images/segment.png: Added.
22236         * page/inspector/Images/segmentEnd.png: Added.
22237         * page/inspector/Images/segmentHover.png: Added.
22238         * page/inspector/Images/segmentHoverEnd.png: Added.
22239         * page/inspector/Images/segmentSelected.png: Added.
22240         * page/inspector/Images/segmentSelectedEnd.png: Added.
22241         * page/inspector/Images/showStatusWidget.png: Added.
22242         * page/inspector/Images/showStatusWidgetPressed.png: Added.
22243         * page/inspector/Images/sidbarItemBackground.png: Added.
22244         * page/inspector/Images/sidebarActionWidget.png: Added.
22245         * page/inspector/Images/sidebarActionWidgetPressed.png: Added.
22246         * page/inspector/Images/sidebarAttachWidget.png: Added.
22247         * page/inspector/Images/sidebarAttachWidgetPressed.png: Added.
22248         * page/inspector/Images/sidebarDetachWidget.png: Added.
22249         * page/inspector/Images/sidebarDetachWidgetPressed.png: Added.
22250         * page/inspector/Images/sidebarResizeWidget.png: Added.
22251         * page/inspector/Images/sidebarSelection.png: Added.
22252         * page/inspector/Images/sidebarSelectionBlurred.png: Added.
22253         * page/inspector/Images/sidebarSelectionBlurredTall.png: Added.
22254         * page/inspector/Images/sidebarSelectionGray.png: Added.
22255         * page/inspector/Images/sidebarSelectionGrayTall.png: Added.
22256         * page/inspector/Images/sidebarSelectionTall.png: Added.
22257         * page/inspector/Images/sidebarStatusAreaBackground.png: Added.
22258         * page/inspector/Images/sourceViewButton.png: Added.
22259         * page/inspector/Images/sourceViewButtonSelected.png: Added.
22260         * page/inspector/Images/splitviewDimple.png: Added.
22261         * page/inspector/Images/splitviewDividerBackground.png: Added.
22262         * page/inspector/Images/tab.png: Added.
22263         * page/inspector/Images/tabSelected.png: Added.
22264         * page/inspector/Images/timelinePillBlue.png: Added.
22265         * page/inspector/Images/timelinePillGray.png: Added.
22266         * page/inspector/Images/timelinePillGreen.png: Added.
22267         * page/inspector/Images/timelinePillOrange.png: Added.
22268         * page/inspector/Images/timelinePillPurple.png: Added.
22269         * page/inspector/Images/timelinePillRed.png: Added.
22270         * page/inspector/Images/timelinePillYellow.png: Added.
22271         * page/inspector/Images/tipBalloon.png: Added.
22272         * page/inspector/Images/tipBalloonBottom.png: Added.
22273         * page/inspector/Images/tipIcon.png: Added.
22274         * page/inspector/Images/tipIconPressed.png: Added.
22275         * page/inspector/Images/toggleDown.png: Added.
22276         * page/inspector/Images/toggleUp.png: Added.
22277         * page/inspector/Images/toolbarBackground.png: Added.
22278         * page/inspector/Images/toolbarBackgroundInactive.png: Added.
22279         * page/inspector/Images/toolbarButton.png: Added.
22280         * page/inspector/Images/toolbarButtonInactive.png: Added.
22281         * page/inspector/Images/toolbarButtonPressed.png: Added.
22282         * page/inspector/Images/toolbarButtonPressedInactive.png: Added.
22283         * page/inspector/Images/toolbarSplitButtonDivider.png: Added.
22284         * page/inspector/Images/toolbarSplitButtonDividerInactive.png: Added.
22285         * page/inspector/Images/treeDownTriangleBlack.png: Added.
22286         * page/inspector/Images/treeDownTriangleWhite.png: Added.
22287         * page/inspector/Images/treeLeftTriangleBlack.png: Added.
22288         * page/inspector/Images/treeRightTriangleBlack.png: Added.
22289         * page/inspector/Images/treeRightTriangleWhite.png: Added.
22290         * page/inspector/Images/warningIcon.png: Added.
22291         * page/inspector/Images/warningMediumIcon.png: Added.
22292         * page/inspector/Images/warningsErrors.png: Added.
22294         Build-fu:
22296         * WebCore.exp: Added new symbols.
22297         * WebCore.xcodeproj/project.pbxproj: Added new source files and
22298         resources.
22299         * WebCore.vcproj/WebCore.vcproj: Ditto, and copy the resources to
22300         $WebKitOutputDir.
22302         Windows build fixes:
22304         * history/HistoryItem.h: ResourceRequest is a struct.
22305         * loader/FrameLoaderClient.h: Ditto.
22307 2007-06-20  Mitz Pettel  <mitz@webkit.org>
22309         Reviewed by Beth.
22311         - fix http://bugs.webkit.org/show_bug.cgi?id=14056
22312           REGRESSION (r21113-21143): TR background not repainted via style class change
22314         Test: fast/repaint/table-row.html
22316         * rendering/RenderTableRow.cpp:
22317         (WebCore::RenderTableRow::layout): Added a repaint to make up for the case where the
22318         table row also needs layout, so it doesn't get a repaint in setStyle().
22320 2007-06-20  Mitz Pettel  <mitz@webkit.org>
22322         Reviewed by Adele.
22324         - fix http://bugs.webkit.org/show_bug.cgi?id=14040
22325           Top and bottom border images flipped when using -webkit-border-image when border end up tiled
22327         Test: fast/borders/border-image-01.html
22329         Correctly account for the fact that "pattern space" is flipped.
22331         * platform/graphics/Image.cpp: (WebCore::Image::drawTiled):
22332         * platform/graphics/cg/ImageCG.cpp:
22333         (WebCore::Image::drawPatternCallback):
22334         (WebCore::Image::drawPattern):
22336 2007-06-20  Anders Carlsson  <andersca@apple.com>
22338         Reviewed by Darin.
22340         <rdar://problem/5245555> REGRESSION: HTTP header injection in XMLHttpRequest.setRequestHeader
22341         
22342         Check for either '\r' or '\n' in the header value.
22343         
22344         * xml/xmlhttprequest.cpp:
22345         (WebCore::isValidHeaderValue):
22347 2007-06-20  Patti Hoa  <patti@apple.com>
22349         Reviewed by Geoffrey Garen.
22351         <rdar://problem/4882527> VO should speak URL of image links that lack tags
22352         Add additional change from review
22353         
22354         * bridge/mac/WebCoreAXObject.mm:
22355         (-[WebCoreAXObject accessibilityAttributeValue:]):
22356         Check if the element has imgTag before asking for its url
22357         
22358 2007-06-20  Patti Hoa  <patti@apple.com>
22360         Reviewed by Tristan O'Tierney.
22362         <rdar://problem/4882527> VO should speak URL of image links that lack tags
22363         
22364         * bridge/mac/WebCoreAXObject.mm:
22365         (-[WebCoreAXObject accessibilityAttributeNames]):
22366         (-[WebCoreAXObject accessibilityAttributeValue:]):
22367         Return the url of images.
22369 2007-06-19  Anders Carlsson  <andersca@apple.com>
22371         Reviewed by Kevin Decker.
22373         <rdar://problem/5266289> REGRESSION (Safari 3 Beta 1): Incoming iChat messages are delayed
22374         
22375         Add a new m_deferMainResourceDataLoad that can be used to control whether a data load should be deferred using a timer or not.
22376         
22377         * loader/DocumentLoader.cpp:
22378         (WebCore::DocumentLoader::DocumentLoader):
22379         * loader/DocumentLoader.h:
22380         (WebCore::DocumentLoader::deferMainResourceDataLoad):
22381         * loader/MainResourceLoader.cpp:
22382         (WebCore::MainResourceLoader::handleDataLoadSoon):
22383         (WebCore::MainResourceLoader::loadNow):
22384         (WebCore::MainResourceLoader::setDefersLoading):
22386 2007-06-19  Patti Hoa <patti@apple.com>
22388         Reviewed by Justin Garcia.
22389         
22390         <rdar://problem/5237325> Incorrect AXLeftLineTextMarkerRangeForTextMarker/AXPreviousLineStartTextMarkerForTextMarker for non-editable text
22391         
22392         * editing/visible_units.cpp:
22393         (WebCore::startPositionForLine):
22394         (WebCore::startOfLine):
22395         (WebCore::endPositionForLine):
22396         (WebCore::endOfLine):
22397         Break down the line routines to allow another try to ask for start/end of line if the returned position is not valid.
22398         An example would be when lineStart/lineEnd at different line than the input position.
22399         This can happen if the input position is before the space character at the end of a soft-wrapped non-editable line, 
22400         specifically a line without webkit-line-break:after-white-space style.
22402 2007-06-19  Patti Hoa  <patti@apple.com>
22404         Reviewed by Justin Garcia.
22405         
22406         <rdar://problem/3992645> VO view bounds misplaced when reading text after a line wrap
22407         
22408         * bridge/mac/WebCoreAXObject.mm:
22409         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
22410         Improve the accuracy of the bounds for a given range
22411         
22412 2007-06-19  Anders Carlsson  <andersca@apple.com>
22414         Reviewed by Darin.
22416         <rdar://problem/5130630>
22417         XPath fails LayoutTests on Windows
22418         
22419         * xml/XPathPredicate.cpp:
22420         Include MathExtras.h here so we get a version of fmod that works around a bug in the Microsoft CRT.
22421         
22422         * xml/XPathValue.cpp:
22423         (WebCore::XPath::Value::toNumber):
22424         Instead of using NAN, which isn't really the NaN value on Windows, use numeric_limits.
22425         
22426 2007-06-19  Geoffrey Garen  <ggaren@apple.com>
22428         Reviewed by Darin Adler.
22430         Fixed cross-frame access. <rdar://problem/5251309>. 
22432         * bindings/js/kjs_window.cpp:
22433         (KJS::Window::getValueProperty):
22434         * bindings/scripts/CodeGeneratorJS.pm:
22435         * page/DOMWindow.idl:
22437 2007-06-19  Anders Carlsson  <andersca@apple.com>
22439         Build fix.
22440         
22441         * platform/win/PopupMenuWin.cpp:
22443 2007-06-19  Lars Knoll <lars@trolltech.com>
22445         Reviewed by Zack
22447         Implement these methods correctly.
22449         * platform/qt/PlatformScreenQt.cpp:
22450         (WebCore::screenRect):
22451         (WebCore::screenAvailableRect):
22453 2007-06-19  Sam Weinig  <sam@webkit.org>
22455         Reviewed by Geoff.
22457         Patch for http://bugs.webkit.org/show_bug.cgi?id=14226
22458         Move the History object out of the JS bindings
22460         - Autogenerate JSHistory.
22462         * DerivedSources.make:
22463         * WebCore.pro:
22464         * WebCore.vcproj/WebCore.vcproj:
22465         * WebCore.xcodeproj/project.pbxproj:
22466         * bindings/js/kjs_window.cpp:
22467         (KJS::WindowPrivate::WindowPrivate):
22468         (KJS::Window::mark):
22469         (KJS::Window::getValueProperty):
22470         (KJS::Window::clearHelperObjectProperties):
22471         (KJS::Window::disconnectFrame):
22472         * bindings/js/kjs_window.h:
22473         (KJS::Window::):
22474         * bridge/GlobalHistory.h: Copied from WebCore/bridge/History.h.
22475         * bridge/History.h: Removed.
22476         * bridge/mac/GlobalHistoryMac.mm: Copied from WebCore/bridge/mac/HistoryMac.mm.
22477         * bridge/mac/HistoryMac.mm: Removed.
22478         * bridge/win/GlobalHistoryWin.cpp: Copied from WebCore/bridge/win/HistoryWin.cpp.
22479         * bridge/win/HistoryWin.cpp: Removed.
22480         * css/cssstyleselector.cpp:
22481         * page/DOMWindow.cpp:
22482         (WebCore::DOMWindow::disconnectFrame):
22483         (WebCore::DOMWindow::history):
22484         * page/DOMWindow.h:
22485         * page/DOMWindow.idl:
22486         * page/History.cpp: Added.
22487         (WebCore::History::History):
22488         (WebCore::History::frame):
22489         (WebCore::History::disconnectFrame):
22490         (WebCore::History::length):
22491         (WebCore::History::back):
22492         (WebCore::History::forward):
22493         (WebCore::History::go):
22494         * page/History.h: Added.
22495         * page/History.idl: Added.
22496         * platform/gdk/TemporaryLinkStubs.cpp:
22497         * platform/qt/TemporaryLinkStubs.cpp:
22498         * platform/wx/TemporaryLinkStubs.cpp:
22500 2007-06-18  Sam Weinig  <sam@webkit.org>
22502         Qt build fix.
22504         * platform/qt/PlatformScreenQt.cpp:
22505         (WebCore::screenDepth):
22506         (WebCore::screenDepthPerComponent):
22507         (WebCore::screenIsMonochrome):
22508         (WebCore::screenRect):
22509         (WebCore::screenAvailableRect):
22511 2007-06-18  Sam Weinig  <sam@webkit.org>
22513         Reviewed by Beth.
22515         Fix build and update licenses. 
22517         * WebCore.xcodeproj/project.pbxproj:
22518         * page/BarInfo.cpp:
22519         * page/BarInfo.h:
22520         * page/BarInfo.idl:
22521         * page/Screen.cpp:
22522         (WebCore::Screen::height):
22523         (WebCore::Screen::width):
22524         (WebCore::Screen::colorDepth):
22525         (WebCore::Screen::pixelDepth):
22526         (WebCore::Screen::availLeft):
22527         (WebCore::Screen::availTop):
22528         (WebCore::Screen::availHeight):
22529         (WebCore::Screen::availWidth):
22530         * page/Screen.h:
22531         * page/Screen.idl:
22533 2007-06-18  Anders Carlsson  <andersca@apple.com>
22535         Reviewed by John Sullivan.
22537         <rdar://problem/5277008> Assertion in [LocationChangeHandler finishedLoadingFrame:]
22538         
22539         Don't send any frame load callbacks if the document load hasn't been
22540         committed for real.
22541         
22542         * loader/FrameLoader.cpp:
22543         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
22545 2007-06-18  Sam Weinig  <sam@webkit.org>
22547         Reviewed by Geoff.
22549         Patch for http://bugs.webkit.org/show_bug.cgi?id=14193
22550         Move the Screen object out of the JS bindings
22552         - Renames Screen.h to PlatformScreen.h to accommodate new class.
22553         - Autogenerates JSScreen.
22555         * DerivedSources.make:
22556         * WebCore.pro:
22557         * WebCore.vcproj/WebCore.vcproj:
22558         * WebCore.xcodeproj/project.pbxproj:
22559         * bindings/js/kjs_window.cpp:
22560         (KJS::WindowPrivate::WindowPrivate):
22561         (KJS::Window::mark):
22562         (KJS::Window::getValueProperty):
22563         (KJS::Window::clearHelperObjectProperties):
22564         * bindings/js/kjs_window.h:
22565         (KJS::Window::):
22566         * css/MediaQueryEvaluator.cpp:
22567         * page/DOMWindow.cpp:
22568         (WebCore::DOMWindow::DOMWindow):
22569         (WebCore::DOMWindow::~DOMWindow):
22570         (WebCore::DOMWindow::frame):
22571         (WebCore::DOMWindow::disconnectFrame):
22572         (WebCore::DOMWindow::screen):
22573         * page/DOMWindow.h:
22574         * page/DOMWindow.idl:
22575         * page/Screen.cpp: Added.
22576         (WebCore::Screen::Screen):
22577         (WebCore::Screen::disconnectFrame):
22578         (WebCore::Screen::height):
22579         (WebCore::Screen::width):
22580         (WebCore::Screen::colorDepth):
22581         (WebCore::Screen::pixelDepth):
22582         (WebCore::Screen::availLeft):
22583         (WebCore::Screen::availTop):
22584         (WebCore::Screen::availHeight):
22585         (WebCore::Screen::availWidth):
22586         * page/Screen.h: Added.
22587         * page/Screen.idl: Added.
22588         * page/mac/WebCoreFrameBridge.mm:
22589         * platform/PlatformScreen.h: Copied from WebCore/platform/Screen.h.
22590         * platform/Screen.h: Removed.
22591         * platform/gdk/PlatformScreenGdk.cpp: Copied from WebCore/platform/gdk/ScreenGdk.cpp.
22592         * platform/gdk/ScreenGdk.cpp: Removed.
22593         * platform/mac/PlatformMouseEventMac.mm:
22594         * platform/mac/PlatformScreenMac.mm: Copied from WebCore/platform/mac/ScreenMac.mm.
22595         * platform/mac/ScreenMac.mm: Removed.
22596         * platform/qt/PlatformScreenQt.cpp: Added.
22597         (WebCore::WebCore::screenDepth):
22598         (WebCore::WebCore::screenDepthPerComponent):
22599         (WebCore::WebCore::screenIsMonochrome):
22600         (WebCore::WebCore::screenRect):
22601         (WebCore::WebCore::screenAvailableRect):
22602         * platform/qt/TemporaryLinkStubs.cpp:
22603         * platform/win/PlatformScreenWin.cpp: Copied from WebCore/platform/win/ScreenWin.cpp.
22604         * platform/win/ScreenWin.cpp: Removed.
22605         * rendering/RenderObject.cpp:
22607 2007-06-18  Sam Weinig  <sam@webkit.org>
22609         Reviewed by Geoff.
22611         Patch for http://bugs.webkit.org/show_bug.cgi?id=14211
22612         Move the BarInfo object out of the JS bindings
22614         * DerivedSources.make:
22615         * WebCore.pro:
22616         * WebCore.vcproj/WebCore.vcproj:
22617         * WebCore.xcodeproj/project.pbxproj:
22618         * bindings/js/kjs_window.cpp:
22619         (KJS::WindowPrivate::WindowPrivate):
22620         (KJS::Window::mark):
22621         (KJS::Window::getValueProperty):
22622         (KJS::Window::clearHelperObjectProperties):
22623         (KJS::Window::disconnectFrame):
22624         * bindings/js/kjs_window.h:
22625         (KJS::Window::):
22626         * page/BarInfo.cpp: Added.
22627         (WebCore::BarInfo::BarInfo):
22628         (WebCore::BarInfo::disconnectFrame):
22629         (WebCore::BarInfo::visible):
22630         * page/BarInfo.h: Added.
22631         (WebCore::BarInfo::):
22632         * page/BarInfo.idl: Added.
22633         * page/DOMWindow.cpp:
22634         (WebCore::DOMWindow::~DOMWindow):
22635         (WebCore::DOMWindow::disconnectFrame):
22636         (WebCore::DOMWindow::locationbar):
22637         (WebCore::DOMWindow::menubar):
22638         (WebCore::DOMWindow::personalbar):
22639         (WebCore::DOMWindow::scrollbars):
22640         (WebCore::DOMWindow::statusbar):
22641         (WebCore::DOMWindow::toolbar):
22642         * page/DOMWindow.h:
22643         * page/DOMWindow.idl:
22645 2007-06-18  Sam Weinig  <sam@webkit.org>
22647         Reviewed by Darin.
22649         Remove the FrameArray class and instead make window.frames another
22650         self-reference for window (like window.window, window.self, etc).
22651         This is what Firefox and what the HTML5 dictates.
22653         * bindings/js/kjs_window.cpp:
22654         (KJS::WindowPrivate::WindowPrivate):
22655         (KJS::Window::mark):
22656         (KJS::Window::getValueProperty):
22657         (KJS::Window::clearHelperObjectProperties):
22658         (KJS::Window::disconnectFrame):
22659         * bindings/js/kjs_window.h:
22661 2007-06-18  Mitz Pettel  <mitz@webkit.org>
22663         Reviewed by Adele.
22665         - fix http://bugs.webkit.org/show_bug.cgi?id=13413
22666           Failed assertion in RenderTextControl::setSelectionRange in Google Spreadsheets
22668         Test: fast/forms/input-zero-height-focus.html
22670         * rendering/RenderTextControl.cpp:
22671         (WebCore::RenderTextControl::setSelectionRange): Avoid setting the
22672         selection in a zero-height text control.
22674 2007-06-18  Alp Toker  <alp.toker@collabora.co.uk>
22676         Reviewed by Sam Weinig.
22678         http://bugs.webkit.org/show_bug.cgi?id=14052
22679         Implement SoundGdk
22681         * WebCore.pro:
22682         * platform/gdk/SoundGdk.cpp: Added.
22683         (WebCore::systemBeep):
22684         * platform/gdk/TemporaryLinkStubs.cpp:
22685         (WebCore::systemBeep):
22687 2007-06-18  Dave Hyatt  <hyatt@apple.com>
22689         Add support for horizontal mouse wheeling on Windows.
22690         
22691         Reviewed by aroben
22693         * platform/PlatformWheelEvent.h:
22694         * platform/win/WheelEventWin.cpp:
22695         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
22697 2007-06-17  Sam Weinig  <sam@webkit.org>
22699         Win32 build fix.
22701         * WebCore.vcproj/WebCore.vcproj:
22703 2007-06-15  David Hyatt  <hyatt@apple.com>
22705         Fix for bugzilla bugs 14183 and 14184, 'repeat' regressed in border-image
22706         because of a botched 'round' support removal.  Also update for a change in
22707         the spec that has the second stretch/round/repeat keyword match the first
22708         if omitted.
22709         
22710         Reviewed by olliej
22712         * css/cssparser.cpp:
22713         (WebCore::BorderImageParseContext::commitBorderImage):
22714         * platform/graphics/Image.cpp:
22715         (WebCore::Image::drawTiled):
22716         * platform/graphics/Image.h:
22717         (WebCore::Image::):
22719 2007-06-15  Sam Weinig  <sam@webkit.org>
22721         Reviewed by Darin.
22723         Patch for http://bugs.webkit.org/show_bug.cgi?id=14053
22724         Autogenerate JS binding for Rect
22726         - Renames RectImpl to Rect, DOMStyleSheetList to JSStyleSheetList 
22727           and DOMRGBColor to JSRGBColor
22728         - Moves JSStyleSheetList and JSRGBColor into the WebCore namespace.
22730         * DerivedSources.make:
22731         * WebCore.pro:
22732         * WebCore.xcodeproj/project.pbxproj:
22733         * bindings/js/kjs_css.cpp:
22734         (WebCore::):
22735         (WebCore::JSStyleSheetList::JSStyleSheetList):
22736         (WebCore::JSStyleSheetList::~JSStyleSheetList):
22737         (WebCore::JSStyleSheetList::getValueProperty):
22738         (WebCore::JSStyleSheetList::indexGetter):
22739         (WebCore::JSStyleSheetList::nameGetter):
22740         (WebCore::JSStyleSheetList::getOwnPropertySlot):
22741         (WebCore::toJS):
22742         (WebCore::JSStyleSheetListFunc::callAsFunction):
22743         (WebCore::JSRGBColor::JSRGBColor):
22744         (WebCore::JSRGBColor::~JSRGBColor):
22745         (WebCore::JSRGBColor::getOwnPropertySlot):
22746         (WebCore::JSRGBColor::getValueProperty):
22747         (WebCore::getJSRGBColor):
22748         * bindings/js/kjs_css.h:
22749         (WebCore::JSStyleSheetList::classInfo):
22750         (WebCore::JSStyleSheetList::):
22751         (WebCore::JSStyleSheetList::impl):
22752         (WebCore::JSRGBColor::classInfo):
22753         (WebCore::JSRGBColor::):
22754         (WebCore::JSRGBColor::impl):
22755         * bindings/objc/DOMUtility.mm:
22756         (KJS::createDOMWrapper):
22757         * bindings/scripts/CodeGeneratorJS.pm:
22758         * bindings/scripts/CodeGeneratorObjC.pm:
22759         * css/CSSBorderImageValue.cpp:
22760         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
22761         * css/CSSBorderImageValue.h:
22762         * css/CSSPrimitiveValue.cpp:
22763         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
22764         (WebCore::CSSPrimitiveValue::cssText):
22765         * css/CSSPrimitiveValue.h:
22766         (WebCore::CSSPrimitiveValue::getRectValue):
22767         (WebCore::CSSPrimitiveValue::):
22768         * css/DashboardRegion.h:
22769         * css/Rect.h: Copied from css/RectImpl.h.
22770         (WebCore::Rect::~Rect):
22771         (WebCore::Rect::top):
22772         (WebCore::Rect::right):
22773         (WebCore::Rect::bottom):
22774         (WebCore::Rect::left):
22775         (WebCore::Rect::setTop):
22776         (WebCore::Rect::setRight):
22777         (WebCore::Rect::setBottom):
22778         (WebCore::Rect::setLeft):
22779         * css/Rect.idl:
22780         * css/RectImpl.h: Removed.
22781         * css/cssparser.cpp:
22782         (WebCore::CSSParser::parseShape):
22783         (WebCore::BorderImageParseContext::commitBorderImage):
22784         * css/cssstyleselector.cpp:
22785         (WebCore::CSSStyleSelector::applyProperty):
22786         * page/DOMWindow.idl:
22788 2007-06-14  George Staikos  <staikos@kde.org>
22790         Reviewed by Lars.
22792         Implement missing tab support and a slight refactor.
22794         * platform/qt/PlatformKeyboardEventQt.cpp:
22795         (WebCore::keyIdentifierForQtKeyCode):
22796         (WebCore::windowsKeyCodeForKeyEvent):
22797         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
22799 2007-06-14  Dave Hyatt  <hyatt@apple.com>
22801         Fix for Bugzilla bug 14806, missing text for bold/italic fonts in non-English Windows installs.
22802         
22803         This patch adds an additional step after the lookup by full name fails.  It will then look up
22804         a PostScript name in a (localized full name) -> (PostScript name) cache.  If the name is not
22805         found, then the font's name table is obtained and searched for a PostScript name (and the
22806         result is cached).
22807         
22808         If lookup on PostScript name fails too, then we now properly fall back to the next font in the
22809         list (so text should never be missing).
22811         Reviewed by Darin (thoroughly reviewed, super reviewed even)
22813         * platform/win/FontCacheWin.cpp:
22814         * platform/win/FontPlatformDataWin.cpp:
22816 2007-06-14  Anders Carlsson  <andersca@apple.com>
22818         Reviewed by Geoff.
22820         Add Frame::cleanupScriptObjectsForPlugin which will invalidate the root object
22821         for a given plug-in.
22823         * WebCore.exp:
22824         * page/Frame.cpp:
22825         (WebCore::Frame::cleanupScriptObjectsForPlugin):
22826         * page/Frame.h:
22828 2007-06-14  Anders Carlsson  <andersca@apple.com>
22830         Reviewed by Geoff.
22832         <rdar://problem/5211677>
22833         -[WebPreferences setJavaEnabled:] only disables java inside <applet>, not <object>
22834         
22835         * loader/FrameLoader.cpp:
22836         (WebCore::FrameLoader::requestObject):
22837         If the object is a Java MIME type and Java is disabled, don't load the plug-in.
22838         
22839         * platform/MimeTypeRegistry.cpp:
22840         (WebCore::MimeTypeRegistry::isJavaAppletMIMEType):
22841         Clean this up and add another applet MIME type.
22843 2007-06-14  George Staikos  <staikos@kde.org>
22845         Reviewed by Lars.
22847         Implement the file chooser for Qt.
22849         * platform/qt/FileChooserQt.cpp:
22850         (WebCore::FileChooser::openFileChooser):
22851         (WebCore::FileChooser::basenameForWidth):
22853 2007-06-14  George Staikos  <staikos@kde.org>
22855         Reviewed by Lars.
22857         Add missing initialization of pointer.
22859         * platform/qt/ContextMenuQt.cpp:
22860         (WebCore::ContextMenu::ContextMenu):
22862 2007-06-14  Anders Carlsson  <andersca@apple.com>
22864         Reviewed by Mitz.
22866         <rdar://problem/5244948>
22867         Safari keeps on complaining about slow script playing NBC TV video (14133)
22869         http://bugs.webkit.org/show_bug.cgi?id=14133
22870         Runaway JavaScript timer fires when spinning around in Google Maps street view
22872         Make sure to start and stop the timeout checker around calls to JS.
22874         * bindings/objc/WebScriptObject.mm:
22875         (-[WebScriptObject callWebScriptMethod:withArguments:]):
22876         (-[WebScriptObject evaluateWebScript:]):
22878 2007-06-14  George Staikos  <staikos@kde.org>
22880         Reviewed by Maciej.
22882         Keypress causes typeahead crash on empty selects due to modulo 0.
22884         * html/HTMLSelectElement.cpp:
22885         (WebCore::HTMLSelectElement::typeAheadFind):
22887 2007-06-13  George Staikos  <staikos@kde.org>
22889         Reviewed by Lars.
22891         Compile without self-linking.
22893         * WebCore.pro:
22895 2007-06-13  Darin Adler  <darin@apple.com>
22897         Reviewed by Kevin Decker.
22899         - fix <rdar://problem/5264923> Safari frequently "stalls" beneath
22900           +[NSFont fontWithName:size:] while loading a web page (searching on disk for the font)
22902         * platform/mac/WebFontCache.mm:
22903         (+[WebFontCache internalFontWithFamily:traits:size:]): Renamed from fontWithFamily.
22904         Took out the auto-activation code.
22905         (+[WebFontCache fontWithFamily:traits:size:]): Added. Calls internalFontWithFamily,
22906         then calls NSFont to trigger activation if that returned nil, then calls
22907         internalFontWithFamily again.
22909 2007-06-13  Anders Carlsson  <andersca@apple.com>
22911         Reviewed by Geoff.
22913         Pass the root object to methods that end up creating new ObjcInstance objects.
22914         
22915         * bindings/objc/WebScriptObject.mm:
22916         (listFromNSArray):
22917         (-[WebScriptObject callWebScriptMethod:withArguments:]):
22918         (-[WebScriptObject evaluateWebScript:]):
22919         (-[WebScriptObject setValue:forKey:]):
22920         (-[WebScriptObject valueForKey:]):
22921         (-[WebScriptObject removeWebScriptKey:]):
22922         (-[WebScriptObject setWebScriptValueAtIndex:value:]):
22924 2007-06-13  Anders Carlsson  <andersca@apple.com>
22926         Reviewed by Darin.
22928         <rdar://problem/5267992>
22929         Make sure an alert doesn't allow loading to continue inside a script.
22930         
22931         Make sure to defer all loads where it's possible for a second main loop to be running.
22932         
22933         * page/Chrome.cpp:
22934         (WebCore::Chrome::runModal):
22935         (WebCore::Chrome::runBeforeUnloadConfirmPanel):
22936         (WebCore::Chrome::runJavaScriptAlert):
22937         (WebCore::Chrome::runJavaScriptConfirm):
22938         (WebCore::Chrome::runJavaScriptPrompt):
22939         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
22940         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
22941         
22942         * platform/network/cf/ResourceHandleCFNet.cpp:
22943         (WebCore::ResourceHandle::setDefersLoading):
22944         Implement this.
22946 2007-06-13  Alp Toker  <alp.toker@collabora.co.uk>
22948         Reviewed by Rob.
22950         http://bugs.webkit.org/show_bug.cgi?id=14060
22951         Cairo SVG support
22953         * WebCore.pro: Add new files to the build.
22954         * platform/graphics/svg/SVGPaintServerPattern.h:
22955         * platform/graphics/svg/SVGPaintServerSolid.h:
22956         * platform/graphics/svg/cairo: Added.
22957         * platform/graphics/svg/cairo/RenderPathCairo.cpp: Added.
22958         (WebCore::RenderPath::strokeContains):
22959         (WebCore::RenderPath::strokeBBox):
22960         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp: Added.
22961         (WebCore::SVGPaintServer::draw):
22962         (WebCore::SVGPaintServer::teardown):
22963         (WebCore::SVGPaintServer::renderPath):
22964         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp: Added.
22965         (WebCore::SVGPaintServerGradient::setup):
22966         * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp: Added.
22967         (WebCore::SVGPaintServerPattern::setup):
22968         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp: Added.
22969         (WebCore::SVGPaintServerSolid::setup):
22970         * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp: Added.
22971         (WebCore::SVGResourceClipper::applyClip):
22972         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp: Added.
22973         (WebCore::SVGResourceMasker::applyMask):
22975 2007-06-13  Simon Hausmann  <hausmann@kde.org>
22977         Reviewed by Lars.
22979         Added a make install target that installs the Qt port and renamed
22980         WebKitQt to QtWebKit
22982         * WebCore.pro:
22984 2007-06-13  Adam Roben  <aroben@apple.com>
22986         Fix one more BITMAPINFO/BITMAPINFOHEADER typo.
22988         Rubberstamped by Oliver.
22990         * platform/win/DragImageWin.cpp:
22991         (WebCore::allocImage):
22993 2007-06-12  Oliver Hunt  <oliver@apple.com>
22995         Reviewed by Darin.
22997         Use correct size for BITMAPINFOHEADER -- whoops.
22999         * platform/win/CursorWin.cpp:
23000         (WebCore::Cursor::Cursor):
23001         * platform/win/PasteboardWin.cpp:
23002         (WebCore::Pasteboard::writeImage):
23004 2007-06-12  Sam Weinig  <sam@webkit.org>
23006         Reviewed by Oliver.
23008         Patch for http://bugs.webkit.org/show_bug.cgi?id=14109
23009         Cleanup JSEvent and JSClipboard in preperation for autogeneration
23011         * bindings/js/kjs_events.cpp:
23012         (KJS::DOMEvent::DOMEvent):
23013         (KJS::DOMEvent::getValueProperty):
23014         (KJS::DOMEvent::put):
23015         (KJS::DOMEvent::putValueProperty):
23016         (KJS::DOMEventPrototypeFunction::callAsFunction):
23017         (KJS::toJS):
23018         (KJS::toEvent):
23019         (KJS::):
23020         (KJS::JSClipboard::JSClipboard):
23021         (KJS::JSClipboard::~JSClipboard):
23022         (KJS::JSClipboard::getOwnPropertySlot):
23023         (KJS::JSClipboard::getValueProperty):
23024         (KJS::JSClipboard::put):
23025         (KJS::JSClipboard::putValueProperty):
23026         (KJS::JSClipboardPrototypeFunction::callAsFunction):
23027         (KJS::toClipboard):
23028         * bindings/js/kjs_events.h:
23029         (KJS::DOMEvent::):
23030         (KJS::DOMEvent::impl):
23031         (KJS::JSClipboard::impl):
23032         * dom/ClipboardEvent.h:
23033         * dom/Event.h:
23034         (WebCore::Event::srcElement):
23035         (WebCore::Event::returnValue):
23036         (WebCore::Event::clipboardData):
23037         (WebCore::Event::dataTransfer):
23038         (WebCore::Event::clipboard):
23039         * dom/MouseEvent.h:
23041 2007-06-13  Lars Knoll <lars@trolltech.com>
23043         Reviewed by Niko.
23045         Small cleanup
23047         * platform/qt/PlugInInfoStoreQt.cpp:
23048         (WebCore::PlugInInfoStore::supportsMIMEType):
23050 2007-06-13  Lars Knoll <lars@trolltech.com>
23052         Reviewed by Niko
23054         Implement the parts required for the JS bridge
23055         to know about the plugins.
23057         * WebCore.pro:
23058         * platform/qt/PlugInInfoStoreQt.cpp: Added.
23059         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
23060         (WebCore::PlugInInfoStore::pluginCount):
23061         (WebCore::PlugInInfoStore::supportsMIMEType):
23062         (WebCore::refreshPlugins):
23063         * platform/qt/TemporaryLinkStubs.cpp:
23065 === Merged the following changes from branches/WindowsMerge ===
23067 2007-06-09  Sam Weinig  <sam@webkit.org>
23069         Build fix.
23071         * WebCore.vcproj/WebCore.vcproj:
23073 2007-06-08  Anders Carlsson  <andersca@apple.com>
23075         Reviewed by Adam.
23077         If both the old and new WMP plugins are present, remove the old one
23078         so we won't end up choosing it.
23079         
23080         * plugins/win/PluginDatabaseWin.cpp:
23081         (WebCore::PluginDatabaseWin::getPluginsInPaths):
23083 2007-06-08  David Hyatt  <hyatt@apple.com>
23085         Update licenses/copyrights for WebCoreWin.
23087         Reviewed by mccullough
23089         * WebCorePrefix.cpp:
23090         * bridge/win/FrameWin.cpp:
23091         * bridge/win/FrameWin.h:
23092         * bridge/win/HistoryWin.cpp:
23093         * bridge/win/PageWin.cpp:
23094         * page/win/EventHandlerWin.cpp:
23095         * platform/graphics/cg/ColorCG.cpp:
23096         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
23097         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
23098         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
23099         * platform/graphics/win/IconWin.cpp:
23100         * platform/graphics/win/ImageWin.cpp:
23101         * platform/network/cf/FormDataStreamCFNet.cpp:
23102         * platform/network/cf/FormDataStreamCFNet.h:
23103         * platform/network/cf/ResourceHandleCFNet.cpp:
23104         * platform/network/cf/ResourceRequestCFNet.cpp:
23105         * platform/network/cf/ResourceResponseCFNet.cpp:
23106         * platform/network/win/CookieJarWin.cpp:
23107         * platform/network/win/ResourceHandleWin.cpp:
23108         * platform/network/win/ResourceHandleWin.h:
23109         * platform/win/BString.cpp:
23110         * platform/win/BString.h:
23111         * platform/win/ClipboardWin.h:
23112         * platform/win/ContextMenuWin.cpp:
23113         * platform/win/CursorWin.cpp:
23114         * platform/win/EditorWin.cpp:
23115         * platform/win/FontCacheWin.cpp:
23116         * platform/win/FontDataWin.cpp:
23117         * platform/win/FontPlatformData.h:
23118         * platform/win/FontPlatformDataWin.cpp:
23119         * platform/win/FontWin.cpp:
23120         * platform/win/GlyphPageTreeNodeWin.cpp:
23121         * platform/win/GraphicsContextWin.cpp:
23122         * platform/win/KeyEventWin.cpp:
23123         * platform/win/MimeTypeRegistryWin.cpp:
23124         * platform/win/NotImplemented.h:
23125         * platform/win/PlatformMouseEventWin.cpp:
23126         * platform/win/PlatformScrollBar.h:
23127         * platform/win/PlatformScrollBarWin.cpp:
23128         * platform/win/PopupMenuWin.cpp:
23129         * platform/win/ScreenWin.cpp:
23130         * platform/win/ScrollViewWin.cpp:
23131         * platform/win/SearchPopupMenuWin.cpp:
23132         * platform/win/SoundWin.cpp:
23133         * platform/win/TemporaryLinkStubs.cpp:
23134         * platform/win/TextBoundariesWin.cpp:
23135         * platform/win/WebCoreHistory.cpp:
23136         * platform/win/WebCoreHistory.h:
23137         * platform/win/WebCoreSystemInterface.cpp:
23138         * platform/win/WebCoreSystemInterface.h:
23139         * platform/win/WheelEventWin.cpp:
23140         * platform/win/WidgetWin.cpp:
23141         * plugins/win/PlugInInfoStoreWin.cpp:
23142         * plugins/win/PluginDatabaseWin.cpp:
23143         * plugins/win/PluginDatabaseWin.h:
23144         * plugins/win/PluginDebug.h:
23145         * plugins/win/PluginPackageWin.cpp:
23146         * plugins/win/PluginPackageWin.h:
23147         * plugins/win/PluginStreamWin.cpp:
23148         * plugins/win/PluginStreamWin.h:
23149         * plugins/win/PluginViewWin.cpp:
23150         * plugins/win/PluginViewWin.h:
23151         * plugins/win/npapi.cpp:
23152         * plugins/win/npfunctions.h:
23153         * rendering/RenderThemeSafari.cpp:
23154         * rendering/RenderThemeSafari.h:
23155         * rendering/RenderThemeWin.h:
23157 2007-06-07  Sam Weinig  <sam@webkit.org>
23159         Fix build.
23161         * WebCore.vcproj/WebCore.vcproj:
23163 2007-06-07  Anders Carlsson  <andersca@apple.com>
23165         Reviewed by Steve.
23167         <rdar://problem/5252902>
23168         Shockwave plug-in content crashes.
23169         
23170         Add a new quirk for plug-ins that need their WNDPROCs to be ASCII. If someone uses SetWindowLongA to set the WNDPROC to an ASCII one
23171         and the previous one was an Unicode one, the value returned from SetWindowLongA (the old WNDPROC) will not be a function pointer, but instead
23172         a special value. The Win32 API CallWndProc knows that when it encounters a special value it must convert the message to Unicode. Shockwave 
23173         does not use CallWndProc but instead treats the WNDPROC as a function.
23174         
23175         * plugins/win/PluginViewWin.cpp:
23176         (WebCore::PluginViewWndProc):
23177         (WebCore::PluginViewWin::determineQuirks):
23178         (WebCore::PluginViewWin::init):
23179         * plugins/win/PluginViewWin.h:
23180         (WebCore::):
23181         (WebCore::PluginViewWin::quirks):
23183 2007-06-07  Sam Weinig  <sam@webkit.org>
23185         Build fix for the build fix.
23187         * WebCore.vcproj/WebCore.vcproj:
23189 2007-06-07  Sam Weinig  <sam@webkit.org>
23191         Build fix.
23193         * WebCore.vcproj/WebCore.vcproj:
23195 2007-06-06  Sam Weinig  <sam@webkit.org>
23197         Build fix.
23199         * WebCore.vcproj/WebCore.vcproj:
23201 2007-06-03  Steve Falkenburg  <sfalken@apple.com>
23203         Reviewed by Oliver.
23205         Update to last fix.
23206         Invalidate a list of rects rather than unioning them.
23208         * plugins/win/PluginViewWin.cpp:
23209         (WebCore::PluginViewWin::invalidateTimerFired):
23210         (WebCore::PluginViewWin::invalidateRect):
23211         * plugins/win/PluginViewWin.h:
23213 2007-06-03  Steve Falkenburg  <sfalken@apple.com>
23215         Reviewed by Oliver.
23217         <rdar://problem/5245016> 100A89+WebKit.dll: Can't select text in page location field at kids.yahoo.com
23218         
23219         Delay invalidates for windowless Flash to prevent Flash WM_PAINT and WM_USER+1 messages from
23220         starving other HWNDs.
23221         
23222         This code defers the invalidate through a WebCore::Timer.  We could have used a Windows ::SetTimer
23223         to further lessen CPU load, but this would have the additional risk of negatively impacting Flash
23224         performance, since WebCore::Timer is set up to be more responsive than ::SetTimer.
23226         * plugins/win/PluginViewWin.cpp:
23227         (WebCore::PluginViewWin::invalidateTimerFired): Added.
23228         (WebCore::PluginViewWin::invalidateRect): Delay invalidates for windowless Flash.
23229         (WebCore::PluginViewWin::determineQuirks): Add delayed invalidate quirk.
23230         * plugins/win/PluginViewWin.h:
23232 2007-06-02  Steve Falkenburg  <sfalken@apple.com>
23234         Reviewed by Adam.
23236         Update last fix to use startsWith instead of strcmpi.
23238         * plugins/win/PluginStreamWin.cpp:
23239         (WebCore::PluginStreamWin::startStream):
23240         * plugins/win/PluginViewWin.cpp:
23241         (WebCore::scriptStringIfJavaScriptURL):
23243 2007-06-02  Steve Falkenburg  <sfalken@apple.com>
23245         Reviewed by gramps.
23247         Fix http://www.tvguide.com/ "LAUNCH VIDEO & PHOTO PLAYER" button.
23248         Make "javascript" URL scheme string compare case insensitive.
23250         * plugins/win/PluginStreamWin.cpp:
23251         (WebCore::PluginStreamWin::startStream): Use strcmpi.
23252         * plugins/win/PluginViewWin.cpp:
23253         (WebCore::scriptStringIfJavaScriptURL): Use strcmpi.
23255 2007-06-01  Anders Carlsson  <andersca@apple.com>
23257         Reviewed by Steve.
23259         If the value exists but is empty, return an empty String.
23260         
23261         * plugins/win/PluginPackageWin.cpp:
23262         (WebCore::getVersionInfo):
23264 2007-06-01  Anders Carlsson  <andersca@apple.com>
23266         Reviewed by Steve.
23268         Add the default path for the new WMP Firefox plugin.
23270         * plugins/win/PluginDatabaseWin.cpp:
23271         (WebCore::addWindowsMediaPlayerPluginPath):
23273 2007-05-31  Sam Weinig  <sam@webkit.org>
23275         Fixed build.
23277         * WebCore.vcproj/WebCore.vcproj:
23279 2007-05-31  Sam Weinig  <sam@webkit.org>
23281         Fixed build.
23283         * WebCore.vcproj/WebCore.vcproj:
23285 2007-05-30  Ada Chan  <adachan@apple.com>
23287         Reviewed by Adam.
23289         Fixed build.
23291         * platform/win/PopupMenuWin.cpp:
23292         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
23294 2007-05-30  Sam Weinig  <sam@webkit.org>
23296         Build Fix.
23298         * WebCore.vcproj/WebCore.vcproj:
23300 2007-05-29  Sam Weinig  <sam@webkit.org>
23302         Fix the build.
23304         * WebCore.vcproj/WebCore.vcproj:
23306 2007-05-29  Anders Carlsson  <andersca@apple.com>
23308         Reviewed by Adam.
23310         <rdar://4782915> plugin is not in the right place at jumble.com/play.html
23312         Pass the plugin window coordinates for windowed plugins too.
23313         
23314         * plugins/win/PluginViewWin.cpp:
23315         (WebCore::PluginViewWin::setNPWindowRect):
23317 2007-05-29  Anders Carlsson  <andersca@apple.com>
23319         Reviewed by Adam.
23321         <rdar://problem/4761543> nike.com doesn't finish loading if Flash plugin is installed
23322         <rdar://problem/5131528> play button on Flash in ESPN front page does not start movie
23323         
23324         Make sure to call NPP_SetWindow right after creating the plugin, and not from the main loop. However,
23325         the WMP plugin needs to have the plugin's window coordinates set correctly when calling NPP_SetWindow so add a 
23326         quirk for that.
23327         
23328         * plugins/win/PluginViewWin.cpp:
23329         (WebCore::PluginViewWin::determineQuirks):
23330         (WebCore::PluginViewWin::init):
23331         * plugins/win/PluginViewWin.h:
23332         (WebCore::):
23334 2007-05-29  Sam Weinig  <sam@webkit.org>
23336         Reviewed by Adam Roben.
23338         - Removes platform/win/NotImplemented.h because we have consolidated
23339           the notImplemented() for all platforms in platform/NotImplemented.h
23340         - Fixes remaining uses of old macro to use the new notImplemented() one.
23342         * WebCore.vcproj/WebCore.vcproj:
23343         * page/win/EventHandlerWin.cpp:
23344         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
23345         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
23346         (WebCore::SVGResourceFilter::prepareFilter):
23347         (WebCore::SVGResourceFilter::applyFilter):
23348         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
23349         (WebCore::SVGResourceMasker::applyMask):
23350         * platform/win/GraphicsContextWin.cpp:
23351         (WebCore::contextForImage):
23352         * platform/win/NotImplemented.h: Removed.
23353         * platform/win/SearchPopupMenuWin.cpp:
23354         (WebCore::SearchPopupMenu::saveRecentSearches):
23355         (WebCore::SearchPopupMenu::loadRecentSearches):
23356         * platform/win/TemporaryLinkStubs.cpp:
23357         (Frame::print):
23358         (Frame::issueTransposeCommand):
23359         (GraphicsContextPlatformPrivate::clip):
23360         (WebCore::FrameView::updateBorder):
23361         (Widget::setIsSelected):
23362         (ScrollView::inWindow):
23363         (WebCore::focusRingColor):
23364         (WebCore::setFocusRingColorChangeFunction):
23365         (Frame::setNeedsReapplyStyles):
23366         (FrameLoader::overrideMediaType):
23367         (DocumentLoader::getResponseModifiedHeader):
23368         (ResourceHandle::willLoadFromCache):
23369         (WebCore::userIdleTime):
23370         (CachedPage::close):
23371         (WebCore::supportedKeySizes):
23372         (WebCore::signedPublicKeyAndChallengeString):
23373         * plugins/win/PluginViewWin.cpp:
23374         (WebCore::PluginViewWin::newStream):
23375         (WebCore::PluginViewWin::write):
23376         (WebCore::PluginViewWin::setValue):
23378 2007-05-29  Anders Carlsson  <andersca@apple.com>
23380         Build fix.
23381         
23382         * rendering/RenderThemeSafari.cpp:
23383         (WebCore::RenderThemeSafari::adjustSliderThumbStyle):
23385 2007-05-29  Anders Carlsson  <andersca@apple.com>
23387         Reviewed by Adam.
23389         Port code from open source changeset 21808, fixing
23390         http://bugs.webkit.org/show_bug.cgi?id=13871 
23391         
23392         * rendering/RenderThemeSafari.cpp:
23393         (WebCore::RenderThemeMac::adjustSliderThumbStyle):
23394         * rendering/RenderThemeSafari.h:
23396 2007-05-29  Ada Chan  <adachan@apple.com>
23398         Build fix.
23399         - Added "$(ProjectDir)..\platform\win" to include paths
23400         - Added WebCore\bindings\js\JSCSSStyleDeclarationCustom.cpp to project
23402         * WebCore.vcproj/WebCore.vcproj:
23404 2007-05-28  Sam Weinig  <sam@webkit.org>
23406         Build fix.
23408         * WebCore.vcproj/WebCore.vcproj:
23410 2007-05-27  Sam Weinig  <sam@webkit.org>
23412         Build fix.
23414         * WebCore.vcproj/WebCore.vcproj:
23416 2007-05-24  Geoffrey Garen  <ggaren@apple.com>
23418         Reviewed by Darin Adler.
23420         Fixed a bug with Settings where a number of different objects held bare 
23421         Settings* data members, even though the Page owns the Settings object and 
23422         deletes it upon destruction.
23424         Added NULL checks since the Page can be deleted before the frame/document.
23426         * plugins/win/PluginViewWin.cpp:
23427         (WebCore::PluginViewWin::load):
23429 2007-05-24  Sam Weinig  <sam@webkit.org>
23431         Reviewed by NOBODY.
23433         Build fix.
23435         * WebCore.vcproj/WebCore.vcproj:
23437 2007-05-24  Anders Carlsson  <andersca@apple.com>
23439         Reviewed by Adam.
23441         <rdar://5211882>
23442         Need to relaunch Boomer to recognize newly installed QT plug-in
23443         
23444         <rdar://5061867>
23445         After installing Flash, Safari would still not display pages that needed it
23446         
23447         * plugins/win/PluginDatabaseWin.cpp:
23448         (WebCore::PluginDatabaseWin::refresh):
23449         Return whether the plugin database changed or not.
23450         
23451         (WebCore::PluginDatabaseWin::findPlugin):
23452         New function that tries to find a plug-in given its url and MIME type.
23453         
23454         (WebCore::PluginDatabaseWin::createPluginView):
23455         If no plugin is found, refresh the database and search for the plugin again if the database changed.
23456         
23457 2007-05-24  Adele Peterson  <adele@apple.com>
23459         - fix http://bugs.webkit.org/show_bug.cgi?id=13837
23460           Separator in new <select> widget disappears when block element with border is in document.
23462         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintMenuListButton):
23463          Added calls to set the stroke style and thickness when painting the arrows and the separator.
23465 2007-05-24  Sam Weinig  <sam@webkit.org>
23467         Build fix.
23469         * WebCore.vcproj/WebCore.vcproj:
23471 2007-05-23  Sam Weinig  <sam@webkit.org>
23473         Build fix.
23475         * WebCore.vcproj/WebCore.vcproj:
23477 2007-05-23  Anders Carlsson  <andersca@apple.com>
23479         Fix build.
23480         
23481         * platform/win/CursorWin.cpp:
23482         (WebCore::zoomInCursor):
23483         (WebCore::zoomOutCursor):
23485 2007-05-22  Ada Chan  <adachan@apple.com>
23487         Fix build.
23489         * plugins/win/PluginViewWin.cpp:
23490         (WebCore::PluginViewWin::handleMouseEvent):
23492 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
23494         Reviewed by oliver
23496         Build fix.
23498         * plugins/win/PluginViewWin.cpp:
23499         (WebCore::PluginViewWin::handleMouseEvent): 
23501 2007-05-21  Sam Weinig  <sam@webkit.org>
23503         Reviewed by Oliver.
23505         Build fix.
23507         * WebCore.vcproj/WebCore.vcproj:
23509 2007-05-21  Sam Weinig  <sam@webkit.org>
23511         Reviewed by Adam.
23513         Build fix.
23515         * WebCore.vcproj/WebCore.vcproj:
23517 2007-05-17  Steve Falkenburg  <sfalken@apple.com>
23519         Reviewed by Geoff, Adam.
23521         Use precompiled headers (via WebCorePrefix.h) to speed up WebCoreWin builds.
23522         This improved WebCore debug rebuild time from 40 minutes to 25 for me.
23523         
23524         A few files needed to be excluded, since they didn't build properly with
23525         the prefix file: ColorData.c, CSSGrammar.cpp, HTMLEntityNames.c, XPathGrammar.cpp, XPathParser.cpp.
23527         * WebCore.vcproj/WebCore.vcproj: Turn on precompiled header, force includes flags.
23528         * WebCorePrefix.cpp: Added.
23529         * WebCorePrefix.h: Added.
23530         * config.h: Modified to be compatible with WebCorePrefix.h.
23532 2007-05-18  Sam Weinig  <sam@webkit.org>
23534         Reviewed by Adam.
23536         Fixing the vcproj paths.
23538         * WebCore.vcproj/WebCore.vcproj:
23540 2007-05-18  Sam Weinig  <sam@webkit.org>
23542         Reviewed by Geoff.
23544         Build fix after r21577.
23546         * WebCore.vcproj/WebCore.vcproj:
23548 2007-05-18  Adam Roben  <aroben@apple.com>
23550         Build fix after r21562.
23552         * platform/win/TemporaryLinkStubs.cpp:
23553         * platform/win/WidgetWin.cpp:
23554         * plugins/win/PluginViewWin.cpp:
23555         * plugins/win/PluginViewWin.h:
23557 2007-05-18  Anders Carlsson  <andersca@apple.com>
23559         Reviewed by Geoff.
23560         
23561         <rdar://problem/4914940> Some plugins won't redraw correctly when scrolling
23562         
23563         This patch does two things:
23564         
23565         1. It comments out the call to set the window's region to an empty region while it's being moved. This was done to prevent
23566         the QT plugin from drawing outside its bounds when scrolling it when it's inside an iframe or div with overflow.
23567         
23568         2. It lets Windows handle its invalid region when moving the window and setting its new window region.
23569         
23570         * plugins/win/PluginViewWin.cpp:
23571         (WebCore::PluginViewWin::updateWindow):
23573 2007-05-18  Adam Roben  <aroben@apple.com>
23575         Build fix after r21555.
23577         * page/win/EventHandlerWin.cpp:
23578         (WebCore::EventHandler::passMouseMoveEventToSubframe):
23580 2007-05-17  Sam Weinig  <sam@webkit.org>
23582         Reviewed by Adam.
23584         Build Fix after <rdar://problem/5201423>
23586         * WebCore.vcproj/WebCore.vcproj:
23588 2007-05-17  Adele Peterson  <adele@apple.com>
23590         Reviewed by Hyatt.
23592         Follow up to <rdar://problem/5092645> PopupMenuWin needs bidiReorderCharacters logic from RenderListBox
23594         * platform/win/PopupMenuWin.cpp: (WebCore::PopupMenu::paint):
23595           Use the clientStyle to determine how to handle bidi text.  For popup buttons, which we restrict to LTR,
23596           we will match the button text.
23598 2007-05-17  Anders Carlsson  <andersca@apple.com>
23600         Reviewed by Darin.
23602         <rdar://problem/5210600> New WMP plugin doesn't show any contents
23604         Call NPP_SetWindow after the window's size has been updated.
23605         
23606         * plugins/win/PluginViewWin.cpp:
23607         (WebCore::PluginViewWin::setFrameGeometry):
23609 2007-05-17  Anders Carlsson  <andersca@apple.com>
23611         Reviewed by John.
23613         <rdar://problem/5204016> Repro crash on nytimes.com in MimeTypeRegistry::getMIMETypeForExtension
23614         
23615         Return null if the extension is null.
23616         
23617         * platform/win/MimeTypeRegistryWin.cpp:
23618         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
23620 2007-05-16  Adele Peterson  <adele@apple.com>
23622         Reviewed by Hyatt.
23624         Fix for:
23625             <rdar://problem/5092645> PopupMenuWin needs bidiReorderCharacters logic from RenderListBox
23626             <rdar://problem/5205654> Select popup menus should always be ltr to match the mac
23628         * platform/win/PopupMenuWin.cpp:
23629         (WebCore::PopupMenu::show): Remove special cases for RTL menus, since we are always going to left align.
23630         (WebCore::PopupMenu::calculatePositionAndSize): ditto.
23631         (WebCore::PopupMenu::paint): Added call to bidiReorderCharacters.
23633 2007-05-14  Oliver Hunt  <oliver@apple.com>
23635         Reviewed by Sam.
23637         Fix for <rdar://problem/5147895> REGRESSION: Content-Disposition: filename is ignored for drag-and-drop.
23639         If the image does not already have a title, fall back to the 
23640         name suggested by Content-Disposition.
23642         * platform/win/ClipboardWin.cpp:
23643         (WebCore::createGlobalImageFileDescriptor):
23645 2007-05-14  Oliver Hunt  <oliver@apple.com>
23647         Reviewed by Sam.
23649         Fix for <rdar://problem/5202805> Null dereference in createGlobalData(CString str)
23650         
23651         Null terminate manually to prevent us from dereferencing null.
23653         * platform/win/ClipboardUtilitiesWin.cpp:
23654         (WebCore::createGlobalData):
23656 2007-05-14  Oliver Hunt  <oliver@apple.com>
23658         Reviewed by Geoff.
23660         Windows side of fix for
23661         <rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
23663         * platform/win/ClipboardUtilitiesWin.cpp:
23664         (WebCore::cfHDropFormat):
23665           Need to be able to access externally
23666           
23667         * platform/win/ClipboardUtilitiesWin.h:
23668           Declare cfHDropFormat
23669           
23670         * platform/win/DragDataWin.cpp:
23671         (WebCore::DragData::containsFiles):
23672         (WebCore::DragData::asFilenames):
23673           Add implementation of containsFiles and asFilenames
23675 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
23677         Build fix.
23679         * WebCore.vcproj/WebCore.vcproj:
23681 2007-05-14  Anders Carlsson  <andersca@apple.com>
23683         Reviewed by Geoff.
23685         <rdar://problem/5176940> Seed10: MS Silverlight 1.0 beta plug-in is not supported
23686         
23687         * plugins/win/PluginDatabaseWin.cpp:
23688         (WebCore::addPluginsFromRegistry):
23689         New function that adds plugins from the registry from HKEY_LOCAL_MACHINE/MozillaPlugins.
23691         * plugins/win/PluginViewWin.cpp:
23692         (WebCore::PluginViewWin::invalidateRect):
23693         (WebCore::PluginViewWin::forceRedraw):
23694         Make these work with windowed plugins.
23695         
23696 2007-05-13  Darin Adler  <darin@apple.com>
23698         Requested by Hyatt.
23700         - internal part of http://bugs.webkit.org/show_bug.cgi?id=13529
23701           DOM3 keyIdentifier text is incorrect
23703         * platform/win/KeyEventWin.cpp:
23704         (WebCore::keyIdentifierForWindowsKeyCode): Use 4 digits for "U+" stuff.
23706 2007-05-12  Oliver Hunt  <oliver@apple.com>
23708         rs=hyatt.
23710         Stubs to prevent build bustage
23712         * platform/win/DragDataWin.cpp:
23713         (WebCore::DragData::containsFiles):
23714         (WebCore::DragData::asFilenames):
23716 2007-05-11  Darin Adler  <darin@apple.com>
23718         * WebCore.vcproj/WebCore.vcproj: Added new RenderWordBreak.cpp/h files.
23720 2007-05-10  Adele Peterson  <adele@apple.com>
23722         Reviewed by Hyatt.
23724         * bridge/win/FrameWin.cpp:
23725         (WebCore::imageFromSelection): Updated to use selectionRect instead of visibleSelectionRect
23726         
23727 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
23729         Rubber-stamped by Geoff.
23731         Moved shared EditorWin code to Editor.cpp in open source.
23733         * platform/win/EditorWin.cpp: Deleted (moved) most of this file.
23735 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
23737         Reviewed by Darin, Oliver.
23739         Removed localized string stubs.
23741         * platform/win/TemporaryLinkStubs.cpp:
23743 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
23745         Reviewed by Ada.
23747         Updated for new editor interface.
23749         * platform/win/EditorWin.cpp:
23750         (WebCore::Editor::advanceToNextMisspelling):
23751         (WebCore::isRangeUngrammatical):
23753 2007-05-07  Alice Liu  <alice.liu@apple.com>
23755         Reviewed by Oliver.
23757         Fixed <rdar://5087119> Paste fidelity isn't as good as it is on the mac
23758         and <rdar://5087118> Plain text copy/paste yields bad line endings on Boomer
23759         and re-organized standalone functions in DragDataWin.cpp and PasteboardWin.cpp
23760         into ClipboardUtilitiesWin.h/cpp.
23762         * WebCore.vcproj/WebCore.vcproj:
23763         * platform/win/ClipboardUtilitiesWin.cpp: Added.
23764         (WebCore::cfHDropFormat):
23765         (WebCore::getWebLocData):
23766         (WebCore::extractURL):
23767         (WebCore::texthtmlFormat):
23768         (WebCore::createGlobalData):
23769         (WebCore::markupToCF_HTML):
23770         (WebCore::urlToMarkup):
23771         (WebCore::replaceNewlinesWithWindowsStyleNewlines):
23772         (WebCore::replaceNBSPWithSpace):
23773         (WebCore::urlWFormat):
23774         (WebCore::urlFormat):
23775         (WebCore::plainTextFormat):
23776         (WebCore::plainTextWFormat):
23777         (WebCore::filenameWFormat):
23778         (WebCore::filenameFormat):
23779         (WebCore::htmlFormat):
23780         (WebCore::getURL):
23781         (WebCore::getPlainText):
23782         (WebCore::fragmentFromFilenames):
23783         (WebCore::containsFilenames):
23784         (WebCore::fragmentFromCF_HTML):
23785         (WebCore::fragmentFromHTML):
23786         (WebCore::containsHTML):
23787         * platform/win/ClipboardUtilitiesWin.h: Added.
23788         * platform/win/ClipboardWin.cpp:
23789         (WebCore::ClipboardWin::writeRange):
23790         * platform/win/DragDataWin.cpp:
23791         * platform/win/PasteboardWin.cpp:
23792         (WebCore::Pasteboard::writeSelection):
23793         (WebCore::Pasteboard::documentFragment):
23795 2007-05-04  Steve Falkenburg  <sfalken@apple.com>
23797         Reviewed by Darin.
23799         Fix crash when using "check spelling while typing".
23801         * WebCore.vcproj/WebCore.vcproj: Added TextBreakIteratorInternalICUWin.cpp
23802         * platform/win/TemporaryLinkStubs.cpp: Removed findSentenceBoundary, findNextSentenceFromIndex.
23804 2007-05-04  Alice Liu  <alice.liu@apple.com>
23806         Reviewed by Darin.
23808         changed use of DeprecatedString::fromUTF8 to UTF8Encoding().decode()
23810         * platform/win/DragDataWin.cpp:
23811         (WebCore::fragmentFromHTML):
23812         * platform/win/PasteboardWin.cpp:
23813         (WebCore::Pasteboard::documentFragment):
23815 2007-05-03  Steve Falkenburg  <sfalken@apple.com>
23817         Reviewed by Ada, Oliver.
23819         Checkpoint:
23820         <rdar://problem/4602372> Spelling
23821         <rdar://problem/4769763> Spell checking engine support
23823         * platform/win/EditorWin.cpp:
23824         (WebCore::findFirstBadGrammarInRange): Account for start offset when reporting bad grammar range (fixed my porting mistake).
23825         (WebCore::Editor::advanceToNextMisspelling): Include user description with spelling error.
23826         (WebCore::isRangeUngrammatical): Include user description with spelling error.
23828 2007-05-03  Alice Liu  <alice.liu@apple.com>
23830         Reviewed by Oliver.
23832         Fixed <rdar://5181466> HTML formatted clipboard data is not converted from UTF8 when pasted
23834         * platform/win/DragDataWin.cpp:
23835         (WebCore::fragmentFromHTML):
23836         * platform/win/PasteboardWin.cpp:
23837         (WebCore::fragmentFromCF_HTML):
23838         (WebCore::Pasteboard::documentFragment):
23840 2007-05-03  Oliver Hunt  <oliver@apple.com>
23842         Reviewed by Steve
23844         Fix misuse of GlobalLock.
23846         * platform/win/PasteboardWin.cpp:
23847         (WebCore::createGlobalData):
23849 2007-05-03  Oliver Hunt  <oliver@apple.com>
23851         Reviewed by Steve.
23853         Add logic to draw underlines for grammar and spelling errors.
23854         (rdar://problem/4769832)
23856         * platform/win/GraphicsContextWin.cpp:
23857         (WebCore::spellingPatternColor):
23858         (WebCore::grammarPatternColor):
23859           Can't define global const with constructor so use function scoped globals instead.
23860         (WebCore::setCGStrokeColor):
23861           Utility function pulled over from GraphicsContextCG          
23862         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
23863         
23864         * platform/win/TemporaryLinkStubs.cpp:
23865           Remove old drawLineForMisspellingOrBadGrammar stub
23867 2007-05-01  Steve Falkenburg  <sfalken@apple.com>
23869         Reviewed by Oliver.
23871         Fix crash when retrieving title of context menu after it has been selected.
23872         Necessary to get spelling corrections code working.
23874         * platform/win/ContextMenuWin.cpp:
23875         (WebCore::ContextMenu::itemWithAction): menu item info fType is a set of flags, MFT_STRING is 0, so we need to or off flags before comparing.
23877 2007-04-29  Adam Roben  <aroben@apple.com>
23879         Build fix after r21183.
23881         * WebCore.vcproj/WebCore.vcproj: Added LayoutState.(h|cpp).
23883 2007-04-29  Oliver Hunt  <oliver@apple.com>
23885         Reviewed by Steve.
23887         Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
23889         Prevent build bustage from opensource changes, correct scaling
23891         * platform/win/DragImageWin.cpp:
23892         (WebCore::scaleDragImage):
23894 2007-04-24  Steve Falkenburg  <sfalken@apple.com>
23896         Reviewed by Darin, Oliver.
23898         Checkpoint:
23899         <rdar://problem/4602372> Spelling
23900         <rdar://problem/4769763> Spell checking engine support
23901         
23902         Ported code from EditorMac.mm into EditorWin.cpp.
23903         Once this works, I'll move this code into Editor.cpp and remove it
23904         form EditorMac.mm.
23906         * platform/win/EditorWin.cpp:
23907         (WebCore::Editor::ignoreSpelling):
23908         (WebCore::Editor::learnSpelling):
23909         (WebCore::findFirstMisspellingInRange):
23910         (WebCore::paragraphAlignedRangeForRange):
23911         (WebCore::findFirstGrammarDetailInRange):
23912         (WebCore::findFirstBadGrammarInRange):
23913         (WebCore::Editor::advanceToNextMisspelling):
23914         (WebCore::Editor::isSelectionMisspelled):
23915         (WebCore::isRangeUngrammatical):
23916         (WebCore::Editor::isSelectionUngrammatical):
23917         (WebCore::Editor::guessesForUngrammaticalSelection):
23918         (WebCore::Editor::guessesForMisspelledSelection):
23919         (WebCore::Editor::showSpellingGuessPanel):
23920         (WebCore::Editor::spellingPanelIsShowing):
23921         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
23922         (WebCore::markAllMisspellingsInRange):
23923         (WebCore::markAllBadGrammarInRange):
23924         (WebCore::markMisspellingsOrBadGrammar):
23925         (WebCore::Editor::markMisspellings):
23926         (WebCore::Editor::markBadGrammar):
23927         * platform/win/TemporaryLinkStubs.cpp:
23929 2007-04-23  Anders Carlsson  <andersca@apple.com>
23931         Reviewed by Ada.
23933         <rdar://problem/5061022>
23934         REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
23935         
23936         * page/win/EventHandlerWin.cpp:
23937         (WebCore::EventHandler::passWheelEventToWidget):
23938         Get rid of passWheelEventToSubframe and pass wheel events to all widgets.
23940 2007-04-23  Adam Roben  <aroben@apple.com>
23942         Build fix.
23944         * page/win/EventHandlerWin.cpp: Removed passWheelEventToSubframe.
23946 2007-04-20  Beth Dakin  <bdakin@apple.com>
23948         Reviewed by Adam.
23950         Fix for <rdar://problem/5089822> Boomer does not send scroll events
23952         * platform/win/ScrollViewWin.cpp:
23953         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
23955 2007-04-19  Adam Roben  <aroben@apple.com>
23957         * WebCore.vcproj/WebCore.vcproj: Removed empty filter.
23959 2007-04-19  Adam Roben  <aroben@apple.com>
23961         * WebCore.vcproj/WebCore.vcproj: Removed unused files.
23963 2007-04-18  Adam Roben  <aroben@apple.com>
23965         Reviewed by Oliver.
23967         Added an equality operator to COMPtr.
23969         * platform/win/COMPtr.h:
23970         (operator==):
23971         (operator!=):
23973 2007-04-18  Oliver Hunt  <oliver@apple.com>
23975         Reviewed by Geoff.
23977         Allow images to be dragged from page and dropped as files.
23978         This is the remainder of the fix for <rdar://problem/5035948> 
23979           -- Dragging image or link from boomer doesn't create webloc 
23980              or image file.
23982         * platform/win/ClipboardWin.cpp:
23983         (WebCore::filesystemPathFromUrlOrTitle):
23984           Make name generation nicer, and better match Firefox
23985         
23986         (WebCore::createGlobalURLContent):
23987           rename function
23988         
23989         (WebCore::createGlobalImageFileContent):
23990           Copies image data into global store
23991         
23992         (WebCore::createGlobalUrlFileDescriptor):
23993           Rename function
23994           Updated for parameter change on filesystemPathFromUrlOrTitle
23995         
23996         (WebCore::createGlobalImageFileDescriptor):
23997           Set up file descriptor for image drag
23998         
23999         (WebCore::getCachedImage):
24000           Helper function
24001         
24002         (WebCore::writeImageToDataObject):
24003           Attempts to build and insert data for image->file drag
24004         
24005         (WebCore::ClipboardWin::declareAndWriteDragImage):
24006           Attempts to build and insert data for image->file drag
24007         
24008         (WebCore::ClipboardWin::writeURL):
24009           Add call to imageDataToDataObject
24011 2007-04-17  Adam Roben  <aroben@apple.com>
24013         Rubberstamped by Oliver.
24015         * platform/network/cf/ResourceHandleCFNet.cpp: Removed an unnecessary
24016         include.
24018 2007-04-17  Oliver Hunt  <oliver@apple.com>
24020         Whoops, had code commented out from manual failure test.
24021         Also fixed date of previous changelog entry
24023         * platform/win/ClipboardWin.cpp:
24024         (WebCore::writeFileToDataObject):
24026 2007-04-17  Oliver Hunt  <oliver@apple.com>
24028         Reviewed by Ada.
24030         Partial fix for <rdar://problem/5035948> -- Dragging image 
24031         or link from boomer doesn't create webloc or image file.
24032         
24033         Add all the ground work to set up FileDescriptors and FileContent
24034         for allowing files to be created from drag and drop actions,
24035         and hook up logic for links to create WebLoc data for drag and drop.
24037         * platform/win/ClipboardWin.cpp:
24038         (WebCore::fileDescriptorFormat):
24039         (WebCore::fileContentFormat):
24040           Clipboard formats 
24041           
24042         (WebCore::pathRemoveBadFSCharacters):
24043         (WebCore::filesystemPathFromUrlOrTitle):
24044           Helper functions for create filenames
24045           
24046         (WebCore::createGlobalDataForURLContent):
24047           Create the WebLoc content
24048           
24049         (WebCore::createGlobalDataForUrlFileDescriptor):
24050           Create a file descriptor for the WebLoc data
24051           
24052         (WebCore::writeFileToDataObject):
24053           Basic helper function to push generated file info
24054           into the target DataObject
24055           
24056         (WebCore::ClipboardWin::writeURL):
24057           Now puts WebLoc file onto the Clipboard
24059 2007-04-16  Adam Roben  <aroben@apple.com>
24061         Reviewed by Adele.
24063         Fix <rdar://problem/5002577> Focus ring SPI in GraphicsContextWin.cpp
24064         needs to move to WebKitSystemInterface
24066         * platform/win/GraphicsContextWin.cpp:
24067         (WebCore::GraphicsContext::drawFocusRing): Use wkDrawFocusRing.
24069 2007-04-14  Adam Roben  <aroben@apple.com>
24071         * WebCore.vcproj/WebCore.submit.sln: Use the Debug_Internal
24072         configuration.
24074 2007-04-14  Adam Roben  <aroben@apple.com>
24076         Small correctness fix that is needed for building OpenSource.
24078         * platform/win/PopupMenuWin.cpp: Use RenderTheme instead of RenderThemeWin.
24080 2007-04-13  Adam Roben  <aroben@apple.com>
24082         Reviewed by Tim.
24084         Sync our config.h with the OpenSource version so we can merge ours in
24085         later.
24087         * config.h: Added #defines from the OpenSource version, moved
24088         Windows-specific defines inside #if PLATFORM(WIN[_OS]), and got rid
24089         of assert.h
24090         * platform/win/CursorWin.cpp:
24091         (WebCore::Cursor::Cursor): Use ASSERT instead of assert.
24093 2007-04-13  Adam Roben  <aroben@apple.com>
24095         Rubberstamped by Tim.
24097         Removed the loader/win directory since it only contains empty files.
24099         * WebCore.vcproj/WebCore.vcproj: Removed empty files.
24100         * loader/win/FrameLoaderWin.cpp: Removed.
24101         * loader/win/ResourceLoaderWin.cpp: Removed.
24103 2007-04-12  Adam Roben  <aroben@apple.com>
24105         Rubberstamped by Steve.
24107         Removed unused file.
24109         * WebCore.vcproj/WebCore.sln: Removed.
24111 2007-04-12  Adam Roben  <aroben@apple.com>
24113         Didn't mean to commit this.
24115         * WebCore.vcproj/WebCore.vcproj:
24117 2007-04-12  Adam Roben  <aroben@apple.com>
24119         Reviewed by Steve.
24121         <rdar://problem/5131565> Need to be able to use debug WebKit with
24122         release Safari.
24124         * WebCore.vcproj/WebCore.vcproj:
24125         * WebCore.vcproj/debug.vsprops:
24126         * WebCore.vcproj/debug_internal.vsprops: Added.
24127         * WebCore.vcproj/release.vsprops:
24129 2007-04-11  Adam Roben  <aroben@apple.com>
24131         Reviewed by Tim.
24133         Get rid of FrameViewWin.cpp, since it's empty.
24135         * WebCore.vcproj/WebCore.vcproj:
24136         * bridge/win/FrameViewWin.cpp: Removed.
24138 2007-04-11  Adam Roben  <aroben@apple.com>
24140         Reviewed by Anders.
24142         Update for changes to Pasteboard.
24144         * platform/win/PasteboardWin.cpp:
24145         (WebCore::Pasteboard::writeImage):
24147 2007-04-10  Brady Eidson  <beidson@apple.com>
24149         Reviewed by Darin
24151         <rdar://problem/4887095> - PageCache and PageState should be combined
24153         Changed a TemporaryLinkStub and updated the project file
24155         * WebCore.vcproj/WebCore.vcproj:
24156         * platform/win/TemporaryLinkStubs.cpp:
24157         (CachedPage::close):
24159 2007-04-10  John Sullivan  <sullivan@apple.com>
24161         * platform/win/TemporaryLinkStubs.cpp:
24162         (WebCore::Editor::markBadGrammar):
24163         Keep build going: added stub for this new method
24165 2007-04-10  Anders Carlsson  <andersca@apple.com>
24167         Reviewed by Adam.
24169         <rdar://problem/5056988>
24170         Can not open player on http://radioalice.com
24172         Fix scriptStringIfJavaScriptURL to not use the path of the URL. This would ignore any characters past 
24173         a '?' character because that would be parsed as the query part of the URL.
24174         
24175         * plugins/win/PluginViewWin.cpp:
24176         (WebCore::scriptStringIfJavaScriptURL):
24177         Make this be more like the mac, chopping off the first 12 characters ("javascript:") 
24178         and then decoding the remaining characters.
24180 2007-04-10  Anders Carlsson  <acarlsson@apple.com>
24182         * plugins/win/PluginViewWin.cpp:
24183         (WebCore::PluginViewWin::PluginViewWin):
24184         Initialize m_status.
24186 2007-04-09  Anders Carlsson  <acarlsson@apple.com>
24188         Reviewed by Adam.
24190         <rdar://problem/5062624>
24191         No prompt to install QT for pages with uninstalled QT plug-in.
24192         
24193         Add a status() accessor to PluginViewWin. This can be used by WebKit to find out if the plug-in
24194         loaded successfully or not.
24195         
24196         * plugins/win/PluginViewWin.cpp:
24197         (WebCore::PluginViewWin::PluginViewWin):
24198         (WebCore::PluginViewWin::init):
24199         * plugins/win/PluginViewWin.h:
24200         (WebCore::):
24201         (WebCore::PluginViewWin::status):
24203 2007-04-09  Brady Eidson  <beidson@apple.com>
24205         Build fix
24207         * plugins/win/PluginViewWin.cpp:
24208         (WebCore::PluginViewWin::performRequest): assume userGesture is true
24210 2007-04-09  Adam Roben  <aroben@apple.com>
24212         Build fix.
24214         * platform/win/PasteboardWin.cpp:
24215         (WebCore::Pasteboard::writeImage):
24217 2007-04-08  Adam Roben  <aroben@apple.com>
24219         Reviewed by Oliver.
24221         Stubbed out Frame::dashboardRegionsChanged now that it's not
24222         Mac-specific.
24224         * bridge/win/FrameWin.cpp:
24225         (WebCore::Frame::dashboardRegionsChanged):
24227 2007-04-06  Oliver Hunt  <oliver@apple.com>
24229         Reviewed by Adam.
24231         Fix for rdar://problem/5097227 Can't drag Flash-based 
24232         scrollbar on mtv.com
24233         
24234         The problem was when creating a mouse move event for the 
24235         plugin we weren't passing on the mouse button state.  
24236         
24237         The opensource side of this patch adds logic that allows 
24238         us to distinguish between a MouseEvent with NoButton and
24239         a MouseEvent with LeftButton, so we can then provide the 
24240         correct information to the plugin.
24242         * plugins/win/PluginViewWin.cpp:
24243         (WebCore::PluginViewWin::handleMouseEvent):
24245 2007-04-06  Dave Hyatt  <hyatt@apple.com>
24247         Internal side of fix for bug 13274.
24249         Reviewed by olliej
24251         * page/win/EventHandlerWin.cpp:
24252         (WebCore::EventHandler::passMousePressEventToSubframe):
24253         * platform/win/PlatformScrollBarSafari.cpp:
24254         (WebCore::PlatformScrollbar::handleMousePressEvent):
24255         * platform/win/PopupMenuWin.cpp:
24256         (WebCore::PopupMenu::PopupMenu):
24257         (WebCore::PopupWndProc):
24258         * platform/win/ScrollViewWin.cpp:
24259         (WebCore::ScrollView::removeChild):
24260         * platform/win/WidgetWin.cpp:
24262 2007-04-07  Mark Rowe  <mrowe@apple.com>
24264         Internal build fox after opensource r20753.
24266         * platform/win/PlatformMouseEventWin.cpp:
24267         * platform/win/TemporaryLinkStubs.cpp:
24269 2007-04-03  Oliver Hunt  <oliver@apple.com>
24271         Buildfix
24273         * platform/network/cf/ResourceResponseCFNet.cpp:
24274         (WebCore::ResourceResponse::doUpdateResourceResponse):
24275            Adding .get() calls
24277 2007-04-03  Maciej Stachowiak  <mjs@apple.com>
24279         Reviewed by Alice.
24281         - fixed <rdar://problem/5107069> WebCore leaks a copy of the CFHTTPMessage CFDictionary (from CFHTTPMessageCopyAllHeaderFields)
24283         * platform/network/cf/ResourceResponseCFNet.cpp:
24284         (WebCore::ResourceResponse::doUpdateResourceResponse): Use RetainPtr (once to avoid a leak and once
24285         just as style cleanup).
24287 2007-04-02  Anders Carlsson  <andersca@apple.com>
24289         Reviewed by Adam.
24291         Fix crashes seen when running the plugin layout tests.
24292         
24293         * plugins/win/PluginPackageWin.cpp:
24294         (WebCore::PluginPackageWin::load):
24295         Fill in the enumerate pointer, not the evaluate pointer (it's already been filled in).
24296         
24297         * plugins/win/PluginStreamWin.cpp:
24298         (WebCore::PluginStreamWin::didFinishLoading):
24299         Handle the case where there was no plugin stream data at all.
24301 2007-04-02  Anders Carlsson  <andersca@apple.com>
24303         Reviewed by Darin.
24305         Check that NPStream pointers passed to NPN_DestroyStream are valid.
24306         
24307         * plugins/win/PluginStreamWin.cpp:
24308         (WebCore::streams):
24309         (WebCore::PluginStreamWin::PluginStreamWin):
24310         (WebCore::PluginStreamWin::~PluginStreamWin):
24311         (WebCore::PluginStreamWin::ownerForStream):
24312         * plugins/win/PluginStreamWin.h:
24313         * plugins/win/PluginViewWin.cpp:
24314         (WebCore::PluginViewWin::destroyStream):
24316 2007-04-02  Anders Carlsson  <andersca@apple.com>
24318         Reviewed by Darin.
24320         <rdar://problem/5095582>
24321         PluginViewWin doesn't implement NPN_DestroyStream.
24323         * plugins/win/PluginStreamWin.cpp:
24324         (WebCore::PluginStreamWin::startStream):
24325         Handle the case where NPN_DestroyStream is called from the newstream handler.
24326         
24327         * plugins/win/PluginViewWin.cpp:
24328         (WebCore::PluginViewWin::destroyStream):
24329         Implement this.
24331 2007-04-02  Anders Carlsson  <andersca@apple.com>
24333         Reviewed by Dave Hyatt.
24335         <rdar://problem/5097225> 
24336         Mouse cursors don't work with windowless plugins
24337         
24338         * platform/win/WidgetWin.cpp:
24339         (WebCore::Widget::setCursor):
24340         Add an "ignoreNextSetCursor" boolean and don't call SetCursor if it's true.
24341         
24342         * plugins/win/PluginViewWin.cpp:
24343         (WebCore::PluginViewWin::handleMouseEvent):
24344         Store away the current cursor and make sure that it won't be reset.
24346 2007-04-02  Anders Carlsson  <andersca@apple.com>
24348         Reviewed by Adam.
24350         Fix logic in windowless paint functions.
24351         
24352         * plugins/win/PluginViewWin.cpp:
24353         (WebCore::PluginViewWin::invalidateRect):
24354         (WebCore::PluginViewWin::invalidateRegion):
24355         (WebCore::PluginViewWin::forceRedraw):
24357 2007-03-31  Dave Hyatt  <hyatt@apple.com>
24359         Internal side of 13234.   Open source side was reviewed by
24360         Mitz.  Layout of justified text was broken when dragged or
24361         when a ::selection style was in effect.
24363         * platform/win/FontWin.cpp:
24364         (WebCore::Font::selectionRectForComplexText):
24365         (WebCore::Font::drawComplexText):
24366         (WebCore::Font::floatWidthForComplexText):
24367         * platform/win/UniscribeController.cpp:
24368         (WebCore::UniscribeController::UniscribeController):
24369         (WebCore::UniscribeController::offsetForPosition):
24370         * platform/win/UniscribeController.h:
24371         * platform/win/WebCoreTextRenderer.cpp:
24372         (WebCore::doDrawTextAtPoint):
24374 2007-03-30  Anders Carlsson  <andersca@apple.com>
24376         Reviewed by Geoff.
24378         * plugins/win/PluginDatabaseWin.cpp:
24379         (WebCore::PluginDatabaseWin::addExtraPluginPath):
24380         * plugins/win/PluginDatabaseWin.h:
24381         New function for adding an extra plugin path, to be used by DRT.
24382         
24383         * plugins/win/PluginPackageWin.cpp:
24384         (WebCore::PluginPackageWin::load):
24385         Set the current directory tho the plugin directory while loading the plugin. Add new NPN callbacks.
24386         
24387         * plugins/win/PluginViewWin.cpp:
24388         (WebCore::PluginViewWin::invalidateRect):
24389         (WebCore::PluginViewWin::invalidateRegion):
24390         (WebCore::PluginViewWin::forceRedraw):
24391         Don't do anything if the plugin is windowed.
24392         
24393         * plugins/win/npapi.cpp:
24394         (NPN_PushPopupsEnabledState):
24395         (NPN_PopPopupsEnabledState):
24396         Add stubs.
24397         
24398         * plugins/win/npfunctions.h:
24399         Add new methods and merge some fixes from the open source version.
24401 2007-03-29  Dave Hyatt  <hyatt@apple.com>
24403         Enable CG's local font cache.  rdar://problem/5070005
24404        
24405         Reviewed by aroben
24407         * platform/win/FontCacheWin.cpp:
24408         (WebCore::FontCache::platformInit):
24410 2007-03-28  Maciej Stachowiak  <mjs@apple.com>
24412         Reviewed by Darin.
24414         - updates for <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
24417         * platform/win/ScrollViewWin.cpp:
24418         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
24419         (WebCore::ScrollView::scrollRectIntoViewRecursively):
24421 2007-03-27  Dave Hyatt  <hyatt@apple.com>
24423         Fix for 5090964, arabic text is all jumbled in list boxes and popup menus (and in the
24424         Boomer app too).  The fallback font was not the right size because the font you're mapping
24425         from had to be selected into the HDC first.
24426        
24427         Reviewed by ggaren
24429         * ChangeLog:
24430         * platform/win/FontCacheWin.cpp:
24431         (WebCore::FontCache::getFontDataForCharacters):
24433 2007-03-27  Geoffrey Garen  <ggaren@apple.com>
24435         Reviewed by Anders Carlsson.
24437         Fixed <rdar://problem/5085076> WebView stops painting after 
24438         loading stand-alone netflix movie preview in WMP format
24439         
24440         The stand-alone WMP plug-in seems to do all its drawing in
24441         the WM_ERASEBKGN phase, not the WM_PAINT phase, so our
24442         InvalidateRect call for plug-in windows needs to specify 
24443         'true' for whether the background region should be erased.
24444         
24445         A smart plug-in that wants to avoid background draws can
24446         still do so by just returning 1 in response to WM_ERASEBKGN,
24447         or by setting its background brush to NULL.
24449         * plugins/win/PluginViewWin.cpp:
24450         (WebCore::PluginViewWin::updateWindow):
24452 2007-03-27  Anders Carlsson  <acarlsson@apple.com>
24454         Reviewed by Maciej.
24456         <rdar://problem/5091459>
24457         Crash when destroying "null plugin"
24458         
24459         <rdar://problem/5056845>
24460         Invoking itunes page has missing plugin icon on it
24461         
24462         * plugins/win/PluginViewWin.cpp:
24463         (WebCore::PluginViewWin::paintMissingPluginIcon):
24464         Clip before painting.
24465         
24466         (WebCore::freeStringArray):
24467         Add null-check.
24468         
24469         (WebCore::PluginViewWin::PluginViewWin):
24470         Initialize plugin names and values.
24471         
24472 2007-03-27  Dave Hyatt  <hyatt@apple.com>
24474         Add support for glyph offsets to the GlyphBuffer.
24475        
24476         Reviewed by olliej
24478         * platform/win/FontWin.cpp:
24479         (WebCore::Font::drawGlyphs):
24480         * platform/win/UniscribeController.cpp:
24481         (WebCore::UniscribeController::shapeAndPlaceItem):
24483 2007-03-26  Antti Koivisto  <antti@apple.com>
24485         Reviewed by Darin.
24486         
24487         Initialize new m_isContinuous field in WheelEvent
24489         * platform/win/WheelEventWin.cpp:
24490         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
24492 2007-03-27  Dave Hyatt  <hyatt@apple.com>
24494         Enable complex text.  Selection and small-caps support are now enabled with this patch.
24495         
24496         Reviewed by aroben
24498         * platform/win/FontWin.cpp:
24499         (WebCore::Font::selectionRectForComplexText):
24500         (WebCore::Font::drawComplexText):
24501         (WebCore::Font::floatWidthForComplexText):
24502         (WebCore::Font::offsetForPositionForComplexText):
24503         * platform/win/UniscribeController.cpp:
24504         (WebCore::UniscribeController::UniscribeController):
24505         (WebCore::UniscribeController::floatWidth):
24506         (WebCore::UniscribeController::offsetForPosition):
24507         (WebCore::UniscribeController::advance):
24508         (WebCore::UniscribeController::itemizeShapeAndPlace):
24509         (WebCore::UniscribeController::shapeAndPlaceItem):
24510         * platform/win/UniscribeController.h:
24511         (WebCore::UniscribeController::runWidthSoFar):
24513 2007-03-26  Adele Peterson  <adele@apple.com>
24515         Reviewed by Adam.
24517         Fix for <rdar://problem/5088844> Popup menu is not positioned correctly on a yahoo comics page
24518         
24519         Fixes test: fast/forms/control-restrict-line-height.html
24520         
24521         This change was made in RenderThemeMac a while ago, and will fix the line height for aqua popup buttons, 
24522         buttons and search fields.
24523         
24524         * rendering/RenderThemeSafari.cpp: WebCore::RenderThemeSafari::setFontFromControlSize):
24525           Don't honor line-height for controls that have restricted font size.
24526           
24527 2007-03-25  Brady Eidson  <beidson@apple.com>
24529         Reviewed by Oliver
24531         <rdar://problem/5086888> - WebHistory(Item) Leak
24533         * platform/win/COMPtr.h:
24534         (COMPtr::COMPtr): An an adoptRef constructor
24536 2007-03-24  Adam Roben  <aroben@apple.com>
24538         Reviewed by Maciej.
24540         Fix <rdar://problem/5076610> Crash in PluginViewWin::updateWindow when
24541         loading a PDF page for the first time after installing Acrobat Reader
24543         Don't call PluginPackageWin::load() until the PluginViewWin has been
24544         inserted into the Widget tree. load() can result in arbitrary code
24545         execution (in this case, a EULA window appears which takes focus from
24546         the WebView, causing Frame::setIsActive(false) to be called), and we
24547         don't want to be in a transitional state when that happens.
24549         * plugins/win/PluginDatabaseWin.cpp:
24550         (WebCore::PluginDatabaseWin::createPluginView): Call PluginViewWin's
24551         one and only constructor.
24552         * plugins/win/PluginViewWin.cpp:
24553         (WebCore::PluginViewWin::setParent): Call init() after inserting
24554         ourselves into the Widget tree.
24555         (WebCore::PluginViewWin::PluginViewWin): Defer all real work until
24556         init() is called.
24557         (WebCore::PluginViewWin::init): Added. Calls m_plugin->load(), then
24558         does the rest of the work that was once done by the constructor.
24559         * plugins/win/PluginViewWin.h: Removed createNullPlugin and simplified
24560         constructor, added setParent override and new init method.
24562 2007-03-24  Brady Eidson  <beidson@apple.com>
24564         Reviewed by Adam
24566         <rdar://problem/5086210> - Move RetainPtr to WTF for WebKitWin and the App
24568         * WebCore.vcproj/WebCore.vcproj: Add the ForwardingHeader to the vcprojs
24570 2007-03-23  Adele Peterson  <adele@apple.com>
24572         Reviewed by Maciej.
24574         Fix for <rdar://problem/5083928> In editable webviews, caps lock key is ignored
24576         * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
24577         Removed code to store lowercase characters in m_text.  Now that we use the character code
24578         to create m_text this is already taken care of.  This does mean that m_unmodifiedText is
24579         not right.  This is used for accesskeys, which don't work yet, so that is covered in rdar://5085596.
24580         This also fixes line endings in this file.
24582 2007-03-22  Geoffrey Garen  <ggaren@apple.com>
24584         Reviewed by Adam Roben.
24585         
24586         Fixed <rdar://problem/5082985> Select menus are too see-through
24588         Upped alpha value from 90 to 95. Menus will still seem a little
24589         more see-through than on the mac, since their backgrounds are
24590         white, not grey, but white matches other Windows browsers.
24591         
24592         * ChangeLog:
24593         * platform/win/PopupMenuWin.cpp:
24595 2007-03-22  Anders Carlsson  <acarlsson@apple.com>
24597         Reviewed by Maciej.
24599         <rdar://problem/5081539>
24600         QT content is dupped on a page, if page is being previewed or printed.
24601         
24602         Don't update the frame geometry if the document is in printing mode.
24603         
24604         * plugins/win/PluginViewWin.cpp:
24605         (WebCore::PluginViewWin::setFrameGeometry):
24607 2007-03-22  Beth Dakin  <bdakin@apple.com>
24609         Fix by Hyatt, reviewed and committed by me.
24611         Fix for <rdar://problem/5082360> Incomplete frame paint when 
24612         shrinking window @ google.com
24614         * platform/win/ScrollViewWin.cpp:
24615         (WebCore::ScrollView::setFrameGeometry): Wrong order!
24617 2007-03-22  Dave Hyatt  <hyatt@apple.com>
24619         Fix for crasher in layout caused by paints that happen without layout being current.  Change to be
24620         more like the Mac and crawl the frame tree up front ensuring everyone is up to date before painting.
24622         Reviewed by olliej
24624         * platform/win/ScrollViewWin.cpp:
24625         (WebCore::ScrollView::setFrameGeometry):
24626         (WebCore::ScrollView::children):
24627         (WebCore::ScrollView::geometryChanged):
24629 2007-03-22  Dave Hyatt  <hyatt@apple.com>
24631         Fix for mouse wheel issues.  Only return success from passWheelEventToSubframe is the event was
24632         actually accepted.
24633         
24634         * page/win/EventHandlerWin.cpp:
24635         (WebCore::EventHandler::passWheelEventToSubframe):
24637 2007-03-21  Dave Hyatt  <hyatt@apple.com>
24639         Fix numerous bugs in RTL support.  Only use a directional override if the run
24640         tells us to.  Uniscribe will give incorrect results when measuring RTL runs as LTR if the
24641         directional override is set.  Switch from logical order for glyphs to visual order
24642         instead.  This is more similar to ATSUI (less similar to the fast code path, which always uses
24643         logical ordering for glyph generation).  Using visual ordering forces a lot of games to be played
24644         (have to walk the script items in backwards order for RTL for example), but Uniscribe does not combine
24645         glyphs properly if visual ordering is not used.
24646         
24647         Add support for justification, letter-spacing, word-spacing and rounding hacks.  The CG vs. ATSUI layout
24648         test now passes with identical results to the Mac.  The ATSUI spacing features layout test now
24649         generates correct results (although they are different from the Mac because we fall back to Arial for
24650         Hebrew instead of Lucida Grande).
24652         Reviewed by oliver
24654         * platform/win/UniscribeController.cpp:
24655         (WebCore::UniscribeController::UniscribeController):
24656         (WebCore::UniscribeController::resetControlAndState):
24657         (WebCore::UniscribeController::shapeAndPlaceItem):
24658         (WebCore::UniscribeController::shape):
24659         * platform/win/UniscribeController.h:
24661 2007-03-20  Adam Roben  <aroben@apple.com>
24663         Reviewed by Ada.
24665         Added null-checks for ResourceHandle::cookieStorage() before passing it
24666         into CFNetwork functions, which are not null-safe.
24668         * platform/network/win/CookieJarWin.cpp:
24669         (WebCore::setCookies):
24670         (WebCore::cookies):
24672 2007-03-20  Adam Roben  <aroben@apple.com>
24674         Build fix.
24676         * WebCore.vcproj/WebCore.vcproj: Added XPathNodeSet.(cpp|h).
24678 2007-03-20  Adam Roben  <aroben@apple.com>
24680         Reviewed by Oliver.
24682         Made the metrics of styled selects match those on the Mac to get
24683         fast/forms/001.html passing.
24685         * rendering/RenderThemeSafari.cpp: Use 2px less padding for the
24686         select's arrow since the arrow is 2px wider than on the Mac.
24688 2007-03-20  Adam Roben  <aroben@apple.com>
24690         Build fix.
24692         * platform/network/cf/ResourceHandleCFNet.cpp:
24693         (WebCore::makeFinalRequest): Fix typo.
24695 2007-03-20  Dave Hyatt  <hyatt@apple.com>
24697         Land advanced text code path (turned off).
24698        
24699         Reviewed by aroben
24700         
24701         * WebCore.vcproj/WebCore.vcproj:
24702         * platform/win/FontCacheWin.cpp:
24703         (WebCore::FontCache::createFontPlatformData):
24704         * platform/win/FontDataWin.cpp:
24705         (WebCore::FontData::platformInit):
24706         (WebCore::FontData::platformDestroy):
24707         (WebCore::FontData::smallCapsFontData):
24708         (WebCore::FontData::scriptFontProperties):
24709         * platform/win/FontWin.cpp:
24710         (WebCore::Font::drawComplexText):
24711         (WebCore::Font::floatWidthForComplexText):
24712         (WebCore::Font::offsetForPositionForComplexText):
24713         * platform/win/UniscribeController.cpp: Added.
24714         (WebCore::UniscribeController::UniscribeController):
24715         (WebCore::UniscribeController::resetControlAndState):
24716         (WebCore::UniscribeController::shapeAndPlaceItem):
24717         (WebCore::UniscribeController::shape):
24718         * platform/win/UniscribeController.h: Added.
24719         (WebCore::UniscribeController::width):
24720         (WebCore::UniscribeController::glyphBuffer):
24722 2007-03-20  Anders Carlsson  <acarlsson@apple.com>
24724         Reviewed by Adam.
24726         <rdar://problem/4921198>
24727         Cookie acceptance policy not settable
24729         * platform/network/cf/ResourceHandleCFNet.cpp:
24730         
24731         (WebCore::willSendRequest):
24732         (WebCore::willCacheResponse):
24733         Remove FIXMEs.
24734         
24735         (WebCore::makeFinalRequest):
24736         New function that makes a final CFURLRequest depending on cookie policy and whether any
24737         invalid SSL certificates should be ignored.
24738         
24739         (WebCore::ResourceHandle::start):
24740         (WebCore::ResourceHandle::loadResourceSynchronously):
24741         Use makeFinalRequest.
24742         
24743         (WebCore::ResourceHandle::cookieStorageAcceptPolicy):
24744         (WebCore::ResourceHandle::setCookieStorageAcceptPolicy):
24745         (WebCore::ResourceHandle::cookieStorage):
24746         (WebCore::ResourceHandle::setCookieStorage):
24747         (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
24748         New functions for setting cookie policy, the deafult cookie storage and whether invalid
24749         SSL certificates should result in an error.
24750         
24751         * platform/network/cf/ResourceRequestCFNet.cpp:
24752         (WebCore::ResourceRequest::doUpdatePlatformRequest):
24753         Set cookie storage, cookie policy and SSL properties.
24755         * platform/network/win/CookieJarWin.cpp:
24756         (WebCore::setCookies):
24757         (WebCore::cookies):
24758         Use same functions as the mac (sorta).
24759         
24760         (WebCore::cookiesEnabled):
24761         Implement this.
24763 2007-03-19  Adam Roben  <aroben@apple.com>
24765         Reviewed by Anders and Darin.
24767         Added JavaScriptStatistics to the project for
24768         <rdar://problems/5071653>.
24770         * WebCore.vcproj/WebCore.vcproj: Added include/pthreads to the include
24771         path, and added JavaScriptStatistics.(cpp|h).
24773 2007-03-18  David Hyatt  <hyatt@apple.com>
24775         Fix the CSS2 system font for 'menu' to match Mac.  Makes the system fonts layout test pass.
24777         * rendering/RenderThemeSafari.cpp:
24778         (WebCore::RenderThemeSafari::systemFont):
24780 2007-03-18  Adam Roben  <aroben@apple.com>
24782         Reviewed by Hyatt.
24784         Changed the file upload button to say "Choose File" to match Mac.
24786         * platform/win/TemporaryLinkStubs.cpp:
24787         (WebCore::fileButtonChooseFileLabel):
24789 2007-03-18  Geoffrey Garen  <ggaren@apple.com>
24791         Reviewed by Oliver Hunt.
24793         Fixed <rdar://problem/5061807> STRESS (2): Crash in PlatformScrollbar::setRect
24795         No test case because I can't seem to get the Windows DRT to cooperate. I'll try again tomorrow.
24797         The problem was that the FrameView would try to reset the document's scrollbars after having 
24798         been removed from the page, so its page pointer would be NULL. Added NULL checks.
24800         This situation ultimately results from the FrameView's non-trivial destructor, which
24801         creates a fragile dependency on tear-down timing. It looks like the timing on Windows
24802         is slightly different from the timing on Mac. I didn't see any obvious resulting bugs,
24803         though, so the NULL checks should be sufficient for now.
24805         * platform/win/ScrollViewWin.cpp:
24806         (WebCore::ScrollView::windowResizerRect):
24807         (WebCore::ScrollView::addToDirtyRegion):
24808         (WebCore::ScrollView::scrollBackingStore):
24809         (WebCore::ScrollView::updateBackingStore):
24811 2007-03-17  David Hyatt  <hyatt@apple.com>
24813         The internal side of the patch that ensures Boomer paints twice on ibench.  Don't let the timer beat out
24814         that first paint.
24816         Reviewed by aroben
24818         * platform/win/ScrollViewWin.cpp:
24819         (WebCore::ScrollView::update):
24821 2007-03-17  Adam Roben  <aroben@apple.com>
24823         Reviewed by Brady.
24825         Fix fast/dom/isindex-002.html.
24827         Add default strings to our two remaining unimplemented localizable
24828         strings in WebCore.
24830         * platform/win/TemporaryLinkStubs.cpp:
24831         (WebCore::searchableIndexIntroduction): Added English string from Mac.
24832         (WebCore::inputElementAltText): Ditto.
24834 2007-03-17  Adele Peterson  <adele@apple.com>
24836         Reviewed by Hyatt.
24838         Fix for <rdar://problem/4960391> REGRESSION (r18922): onChange never fired after selecting an item from a menulist
24840         * platform/win/PopupMenuWin.cpp:
24841         (WebCore::PopupMenu::PopupMenu): Initialize m_focusedIndex to 0.  Instead of using the client to track the focused index, we'll
24842          keep track of it internally.  Our old behavior was trying to match Firefox by updating the selected index as you focus items, but that
24843          doesn't seem necessary if the selection never gets committed.
24844         (WebCore::PopupMenu::show): Initialize the focused index to the client's selected index.
24845         (WebCore::PopupMenu::setFocusedIndex): Remove the fireOnChange argument.  Remove the call to valueChanged.
24846         (WebCore::PopupMenu::focusedIndex): Return m_focusedIndex instead of getting this from the client.
24847         (WebCore::PopupMenu::down): Use the focusedIndex.
24848         (WebCore::PopupMenu::up): ditto.
24849         (WebCore::PopupMenu::paint): Paint a selected appearance for the item with the focused index.
24851 2007-03-16  Adele Peterson  <adele@apple.com>
24853         Reviewed by Lou.
24855         Fix for <rdar://problem/5065040> cannot mousedown + drag in a <select> menu
24857         * platform/win/PopupMenuWin.cpp:
24858         (WebCore::PopupMenu::show): Set the capture when the popup window comes up.
24859         (WebCore::PopupWndProc): Release the capture only when the mouse is not down, and the mouse moves outside the popup window, 
24860          or if you mouse up inside the window, and you're about to hide the popup.  The mouse will get recaptured if you mouse down
24861          again in the window.
24863 2007-03-15  Brady Eidson  <beidson@apple.com>
24865         Reviewed by Oliver
24867         CFNetwork related cleanup that was a work around for previous deficiencies in CFURLDownload
24868         This might fix some of the random crashers we see on stress testing if they end up 
24869         downloading links.
24871         * platform/network/cf/ResourceHandleCFNet.cpp:
24872         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):  Always call cancel if theres a
24873           connection - the ref-count-check hack is no longer neccesary
24874         (WebCore::ResourceHandle::releaseConnectionForDownload): Give up the CFURLConnection without
24875           derefing it
24877 2007-03-15  Maciej Stachowiak  <mjs@apple.com>
24879         Reviewed by Geoff and Steve.
24880         
24881         - fixed <rdar://problem/5029776> iBench JavaScript test slower than Opera
24882         - fixes to use FastMalloc on Windows
24884         * config.h: Don't force USE_SYSTEM_MALLOC
24886 2007-03-15  Adam Roben  <aroben@apple.com>
24888         Rubberstamped by Hyatt.
24890         * platform/win/FontDataWin.cpp:
24891         (WebCore::FontData::platformInit): Move the code to get the font face
24892         to the top of the function for easier debugging.
24893         * platform/win/FontPlatformDataWin.cpp:
24894         (WebCore::FontPlatformData::FontPlatformData): ASSERT that we got a
24895         valid CGFontRef back from CG, as CG and GDI should agree on the fonts
24896         installed.
24898 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
24900         Reviewed by Adam.
24902         Use CFURLResponseCopySuggestedFilename.
24903         
24904         * platform/network/cf/ResourceResponseCFNet.cpp:
24905         (WebCore::suggestedFilenameForResponse):
24907 2007-03-14  Adam Roben  <aroben@apple.com>
24909         Reviewed by Hyatt.
24911         Use CG to get xHeight.
24913         * platform/win/FontDataWin.cpp:
24914         (WebCore::scaleEmToUnits): Made robust against divide-by-zero errors.
24915         (WebCore::FontData::platformInit): Ported Mac code to get xHeight using CG.
24917 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
24919         Build fixes.
24920         
24921         * platform/graphics/win/ImageWin.cpp:
24922         (WebCore::Image::loadPlatformResource):
24923         * platform/win/EditorWin.cpp:
24925 2007-03-13  Adam Roben  <aroben@apple.com>
24927         Reviewed by Anders.
24929         * platform/win/FontDataWin.cpp:
24930         (WebCore::scaleEmToUnits): Ported from FontDataMac.
24931         (WebCore::FontData::platformInit): Use CG for metrics, and apply Mac's
24932         line-height hack for Times, Helvetica, and Courier.
24933         (WebCore::FontData::platformWidthForGlyph): Call wkGetGlyphAdvances to
24934         use some CG SPI to match Mac.
24936 2007-03-12  Darin Adler  <darin@apple.com>
24938         * WebCore.vcproj/WebCore.vcproj: Added new JavaScript wrapper derived source files.
24940 2007-03-12  Anders Carlsson  <acarlsson@apple.com>
24942         Reviewed by Darin.
24944         <rdar://problem/5054694>
24945         Repro crash when viewing fast/dom/HTMLObjectElement/object-as-frame.html
24946         
24947         * bridge/win/FrameWin.cpp:
24948         (WebCore::Frame::createScriptInstanceForWidget):
24949         Return 0 for frame views.
24951 2007-03-12  Anders Carlsson  <acarlsson@apple.com>
24953         Reviewed by Adam.
24955         <rdar://problem/5054713>
24956         Crash in suggestedFilenameForResponse in two fast/encoding tests.
24957         
24958         Add null checks.
24959         
24960         * platform/network/cf/ResourceResponseCFNet.cpp:
24961         (WebCore::suggestedFilenameForResponse):
24963 2007-03-12  Adele Peterson  <adele@apple.com>
24965         Reviewed by Oliver.
24967         Fix for <rdar://problem/5053618> Disable "recent searches" search field menu.
24969         * platform/win/SearchPopupMenuWin.cpp: (WebCore::SearchPopupMenu::enabled):
24971 2007-03-12  Adele Peterson  <adele@apple.com>
24973         Reviewed by Oliver.
24974         
24975         WebCore part of fix for <rdar://problem/5044790> preventing default of keypress event doesn't work (affects .mac)
24977         * platform/win/KeyEventWin.cpp:
24978         (WebCore::singleCharacterString): Added inline keyword.   
24979         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
24980         Renamed arguments to be more meaningful.  Added characterCode argument to be used when constructing m_text.
24982 2007-03-12  Adele Peterson  <adele@apple.com>
24984         Reviewed by Oliver.
24986         Forking KeyEventWin.cpp from revision 20118.
24988         * WebCore.vcproj/WebCore.vcproj:
24989         * platform/win/KeyEventWin.cpp: Added.
24991 2007-03-11  Oliver Hunt  <oliver@apple.com>
24993         Reviewed by Adele.
24995         Removed Frame::respondToChangedSelection stub
24996         added Editor::markMisspellings stub
24998         * platform/win/TemporaryLinkStubs.cpp:
24999         (WebCore::Editor::markMisspellings):
25001 2007-03-10  Geoffrey Garen  <ggaren@apple.com>
25003         Reviewed by Darin Adler.
25005         Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
25006         JSCore causes a hang @ www.panoramas.dk
25007         
25008         See JavaScriptCore ChangeLog for details.
25009         
25010         Stress test doesn't show any problems.
25011         
25012         Drop the JSLock before making calls through the plug-in API from functions
25013         that may have been called by JavaScript.
25014         
25015         * plugins/win/PluginViewWin.cpp:
25016         (WebCore::PluginViewWin::paint):
25017         (WebCore::PluginViewWin::handleKeyboardEvent):
25018         (WebCore::PluginViewWin::handleMouseEvent):
25019         (WebCore::PluginViewWin::setNPWindowRect):
25020         (WebCore::PluginViewWin::start):
25021         (WebCore::PluginViewWin::stop):
25022         (WebCore::PluginViewWin::performRequest):
25023         (WebCore::PluginViewWin::bindingInstance):
25025 2007-03-09  Oliver Hunt  <oliver@apple.com>
25027         Reviewed by John.
25029         Fix the doubled text in the image used to drag a link
25031         * platform/win/WebCoreTextRenderer.cpp:
25032         (WebCore::WebCoreDrawDoubledTextAtPoint):
25034 2007-03-09  Anders Carlsson  <acarlsson@apple.com>
25036         Reviewed by Adam.
25038         Implement setting the suggested filename for a response.
25039         
25040         * platform/network/cf/ResourceResponseCFNet.cpp:
25041         (WebCore::filenameFromHTTPContentDisposition):
25042         (WebCore::filenameHasSaneExtension):
25043         (WebCore::suggestedFilenameForResponse):
25044         (WebCore::ResourceResponse::doUpdateResourceResponse):
25045         * platform/win/MimeTypeRegistryWin.cpp:
25046         (WebCore::getMIMETypeForUTI):
25047         
25048         (WebCore::mimeTypeForExtension):
25049         Fix two bugs in this function.
25050         
25051         (WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
25053 2007-03-09  Anders Carlsson  <acarlsson@apple.com>
25055         * plugins/win/PluginViewWin.cpp:
25056         (WebCore::PluginViewWin::performRequest):
25057         Fixup comments and remove an obsolete FIXME.
25059 2007-03-09  Oliver Hunt  <oliver@apple.com>
25061         Reviewed by Steve.
25063         Executing a script for a plugin can cause cause this to be deleted
25064         so we take a reference to our parent prior to executing the script
25066         * plugins/win/PluginViewWin.cpp:
25067         (WebCore::PluginViewWin::performRequest):
25069 2007-03-08  Oliver Hunt  <oliver@apple.com>
25071         Reviewed by Steve.
25073         Allow webloc files to be dropped onto the webview
25074         
25075         <rdar://problem/4883564> Regression: cannot open webloc file by dnd to Boomer's window
25077         * platform/win/DragDataWin.cpp:
25078         (WebCore::cfHDropFormat):
25079            Clipboard format for HDROP, non-static as i will need it elsewhere in the future 
25080         (WebCore::getWebLocData):
25081            Extract a url from a webloc file
25082         (WebCore::getURL):
25083            Call getWebLocData
25085 2007-03-08  Steve Falkenburg  <sfalken@apple.com>
25087         Fix Production build more
25089         * WebCore.vcproj/WebCore.vcproj:
25091 2007-03-08  Steve Falkenburg  <sfalken@apple.com>
25093         Production build fix
25095         * WebCore.vcproj/WebCore.vcproj:
25097 2007-03-08  Adam Roben  <aroben@apple.com>
25099         Reviewed by Steve.
25100         
25101         Fix <rdar://problem/4969070> Failed error pages show "unknown error"
25102         rather than specific error
25104         Make ResourceError aware of kCFErrorDomainCFNetwork.
25106         * platform/network/cf/ResourceErrorCF.cpp:
25107         (WebCore::ResourceError::ResourceError): Added case for
25108         kCFErrorDomainCFNetwork.
25110 2007-03-06  Adam Roben  <aroben@apple.com>
25112         Fixing the build while semi-blind is fun.
25114         * platform/win/TemporaryLinkStubs.cpp:
25115         (WebCore::supportedKeySizes): Need a namespace.
25116         (WebCore::signedPublicKeyAndChallengeString): Ditto.
25118 2007-03-06  Adam Roben  <aroben@apple.com>
25120         It works better if you use valid C++ syntax.
25122         * platform/win/TemporaryLinkStubs.cpp:
25124 2007-03-06  Adam Roben  <aroben@apple.com>
25126         Build fix.
25128         * platform/win/TemporaryLinkStubs.cpp: Added missing stubs.
25130 2007-03-06  Adam Roben  <aroben@apple.com>
25132         Reviewed by Anders.
25134         Always keep rounding hacks on.
25136         * platform/win/FileChooserWin.cpp:
25137         (WebCore::FileChooser::basenameForWidth): Tell StringTruncator to keep
25138         rounding hacks on.
25139         * platform/win/WebCoreTextRenderer.cpp:
25140         (WebCore::WebCoreTextFloatWidth): Ditto.
25142 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
25144         Build fix.
25145         
25146         * plugins/win/PluginViewWin.cpp:
25147         (WebCore::PluginViewWin::userAgent):
25149 2007-03-05  Anders Carlsson  <acarlsson@apple.com>
25151         Reviewed by Adam.
25153         <rdar://problem/5041348>
25154         Can't watch videos at cnn.com
25155         
25156         * plugins/win/PluginStreamWin.cpp:
25157         (WebCore::PluginStreamWin::cancelAndDestroyStream):
25158         Change this function back to call call stop() after destroyStream(). Also, make sure to
25159         protect the stream since destroyStream can eventually, well, destroy it.
25161 2007-03-05  Anders Carlsson  <acarlsson@apple.com>
25163         Reviewed by Adam.
25165         <rdar://problem/4987743>
25166         Regression: java content is represented as broken images on pages
25167         
25168         * plugins/win/PluginPackageWin.cpp:
25169         (WebCore::PluginPackageWin::load):
25170         Make sure to set the size of the NPPluginFuncs struct correctly.
25172 2007-03-05  Steve Falkenburg  <sfalken@apple.com>
25174         Fix build
25176         * plugins/win/PluginStreamWin.cpp:
25177         (WebCore::PluginStreamWin::stop): Call cancel() instead of stopLoading(), since the latter was removed.
25179 2007-03-02  Adam Roben  <aroben@apple.com>
25181         Reviewed by Anders.
25183         Added optional underlining of a single character to
25184         WebCoreTextRenderer.
25186         No layout tests possible.
25188         * platform/win/WebCoreTextRenderer.cpp:
25189         (WebCore::doDrawTextAtPoint): Added. This is an extraction of the code
25190         from DrawTextAtPoint that now also contains the underlining code.
25191         (WebCore::WebCoreDrawTextAtPoint): Call the helper function.
25192         (WebCore::WebCoreDrawDoubledTextAtPoint): Ditto.
25193         * platform/win/WebCoreTextRenderer.h: Added optional underlinedIndex
25194         parameters.
25196 2007-03-01  Anders Carlsson  <acarlsson@apple.com>
25198         Reviewed by Tim.
25200         * plugins/win/npfunctions.h:
25201         Fix tyop.
25202         
25203 2007-02-28  Adam Roben  <aroben@apple.com>
25205         Reviewed by Anders.
25207         Clean up WebCoreTextRenderer. WebCoreDrawTextAtPoint now just draws
25208         text at a point. It doesn't center truncate, clip, or modify alignment.
25210         No layout test possible.
25212         * platform/win/WebCoreTextRenderer.cpp:
25213         (WebCore::WebCoreDrawTextAtPoint): Use only WebCore types, and don't
25214         center truncate or modify alignment.
25215         (WebCore::WebCoreDrawDoubledTextAtPoint): Moved from WebKitGraphics.cpp.
25216         (WebCore::WebCoreTextFloatWidth): Added.
25217         * platform/win/WebCoreTextRenderer.h: Updated/added declarations.
25219 2007-02-28  Adele Peterson  <adele@apple.com>
25221         Reviewed by Adam.
25223         Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
25224         and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
25226         * platform/win/TemporaryLinkStubs.cpp:
25227         (WebCore::searchMenuNoRecentSearchesText):
25228         (WebCore::searchMenuRecentSearchesText):
25229         (WebCore::searchMenuClearRecentSearchesText):
25230         (WebCore::AXWebAreaText):
25231         (WebCore::AXLinkText):
25232         (WebCore::AXListMarkerText):
25233         (WebCore::AXImageMapText):
25234         (WebCore::AXHeadingText):
25236 2007-02-28  Maciej Stachowiak  <mjs@apple.com>
25238         Reviewed by Adam.
25240         - fixed <rdar://problem/5005120> Crash: selecting View all RSS Articles from context menu of bookmark folder
25242         * platform/network/cf/ResourceRequestCFNet.cpp:
25243         (WebCore::ResourceRequest::doUpdatePlatformRequest): Use RetainPtr
25244         instead of explicit release, as this was caused by CFRelease on
25245         a null pointer, and REtainPtr is tolerant.
25247 2007-02-27  Beth Dakin  <bdakin@apple.com>
25249         Reviewed by Adam.
25251         <rdar://problem/4956528> Implement Pasteboard::writeImage for 
25252         Boomer context menus
25254         * platform/win/PasteboardWin.cpp:
25255         (WebCore::Pasteboard::writeImage): Copy a bitmap to the clipboard.
25257 2007-02-27  Oliver Hunt  <oliver@apple.com>
25259         Reviewed by Lou and Steve.
25261         Add a store for current Cursor to fix <rdar://problem/4788352>
25263         * platform/win/WidgetWin.cpp:
25264         (WebCore::Widget::setCursor):
25266 2007-02-26  Oliver Hunt  <oliver@apple.com>
25268         Reviewed by Maciej.
25270         To stop the drag image for transparent images from looking 
25271         ugly (especially fully transparent images) we render the 
25272         image to a white background prior to passing the image on to 
25273         Windows
25274         
25275         <rdar://problem/5015946>
25277         * platform/win/DragImageWin.cpp:
25278         (WebCore::createDragImageFromImage):
25280 2007-02-26  Adam Roben  <aroben@apple.com>
25282         Reviewed by Adele.
25284         * platform/win/GraphicsContextWin.cpp: Get rid of so-five-hours-ago SVG_SUPPORT.
25286 2007-02-26  Adam Roben  <aroben@apple.com>
25288         Build fix.
25290         * config.h: Remove redundant #define.
25291         * WebCore.vcproj/WebCore.vcproj: Update to new macros.
25293 2007-02-26  Adam Roben  <aroben@apple.com>
25295         Rubberstamped by Ada.
25297         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Make #if match the header file.
25299 2007-02-26  Adam Roben  <aroben@apple.com>
25301         Reviewed by Darin.
25303         Build fix.
25305         * WebCore.vcproj/build-generated-files.sh: Updated FEATURE_DEFINES.
25306         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Use shiny new ENABLE(SVG).
25307         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Ditto.
25309 2007-02-25  Maciej Stachowiak  <mjs@apple.com>
25311         Reviewed by Adam.
25313         - fixed layout test failure in fast/overflow/scrollRevealButton
25314         
25315         I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
25316         as clipped by all ancestor scroll views, not just this one. Currently it only works
25317         correctly on mac however. visibleContentRect, only accounting for the clipping from
25318         this particular scroll view, is sufficient for most purposes.
25320         * platform/win/ScrollViewWin.cpp:
25321         (WebCore::ScrolView::fullyClippedContentRect):
25323 2007-02-24  Adam Roben  <aroben@apple.com>
25325         Change #if to #ifdef to match style.
25327         * platform/win/PopupMenuWin.cpp:
25328         (WebCore::PopupMenu::show):
25330 2007-02-24  Adam Roben  <aroben@apple.com>
25332         Reviewed by Steve.
25334         Fix <rdar://problem/5013502> REGRESSION: <select> menus are not
25335         animating smoothly
25337         This was caused by making the menus partially transparent in r12250.
25339         * platform/win/PopupMenuWin.cpp:
25340         (WebCore::PopupMenu::show): Disable animations.
25342 2007-02-23  Anders Carlsson  <acarlsson@apple.com>
25344         Reviewed by Adam.
25346         <rdar://problem/4761543>
25347         nike.com doesn't finish loading if Flash plugin is installed.
25348         
25349         If a plugin requests a JavaScript URL with a non null frame target, execute the JavaScript expression. If the result 
25350         is not "undefined", replace the contents of the frame with the result converted to a string.
25352         * plugins/win/PluginViewWin.cpp:
25353         (WebCore::getString):
25354         (WebCore::PluginViewWin::performRequest):
25355         (WebCore::PluginViewWin::requestTimerFired):
25357 2007-02-22  Oliver Hunt  <oliver@apple.com>
25359         rs = adam
25360         
25361         Replacing radar numbers from previous patch with one
25362         the isn't fictitious <rdar://problem/5018591>
25364         * platform/win/CursorWin.cpp:
25365         (WebCore::columnResizeCursor):
25366         (WebCore::rowResizeCursor):
25367         (WebCore::verticalTextCursor):
25369 2007-02-22  Oliver Hunt  <oliver@apple.com>
25371         Reviewed by Ada.
25373         Implemented a couple more cursor methods
25375         * platform/win/CursorWin.cpp:
25376         (WebCore::columnResizeCursor):
25377         (WebCore::rowResizeCursor):
25378         (WebCore::verticalTextCursor):
25379           Added radar bug reference <rdar://problem/5018452>
25380         (WebCore::progressCursor):
25381         (WebCore::noDropCursor):
25382         (WebCore::notAllowedCursor):
25383           Making them return the correct cursor
25385 2007-02-22  Oliver Hunt  <oliver@apple.com>
25387         Reviewed by Anders.
25389         Removing accessive COMPtr use from ClipboardWin constructors
25390         Adding data verification to ClipoardWin::SetData
25391         Small amount code tidying, and allowing for failure when writing an URL
25393         * page/win/EventHandlerWin.cpp:
25394         (WebCore::EventHandler::createDraggingClipboard):
25395           Updated for new ClipboardWin constructor
25396         * platform/win/ClipboardWin.cpp:
25397         (WebCore::ClipboardWin::ClipboardWin):
25398         (WebCore::writeURL):
25399         (WebCore::ClipboardWin::getData):
25400           Tidying code, and allowing failure
25401         (WebCore::ClipboardWin::setData):
25402           Verifying that we're writing a valid url
25403                     
25404         * platform/win/ClipboardWin.h:
25405         * platform/win/EditorWin.cpp:
25406         (WebCore::Editor::newGeneralClipboard):
25407           Updated for new ClipboardWin constructor
25409 2007-02-22  Oliver Hunt  <oliver@apple.com>
25411         Reviewed by Ada, Lou, and Steve.
25413         Last of the major Drag and drop implementation 
25414         patches for windows:
25415         * Adds support for DOM Clipboard during drag operations
25416         * Un-statics and refactors a few Pasteboard and DragData functions
25417           to allow them to share implementation with ClipboardWin and other 
25418           drag logic
25419         * Moves COMPtr.h from WebKit to WebCore
25420         * Adds WCDataObject, which is basically a direct copy of
25421           SDataObject from the app, with a few modifications to support
25422           DOM clipboard functionality.  Also includes a few suggestions
25423           from Ada and Steve, mostly involving memory management :D
25424         
25425         This resolves 
25426         <rdar://problem/4821407> Cannot drag link to bookmarks bar to create new link
25427         <rdar://problem/4869496> User Interaction Essentials: Drag
25429         * WebCore.vcproj/WebCore.vcproj:
25430           Adding new files
25431           
25432         * page/win/DragControllerWin.cpp:
25433         (WebCore::DragController::maxDragImageSize):
25434           Maximum size of drag image to allow sharp edges
25435           is 208x208
25436           
25437         * page/win/EventHandlerWin.cpp:
25438         (WebCore::EventHandler::createDraggingClipboard):
25439           Properly implemented now
25440           
25441         * platform/win/ClipboardWin.cpp:
25442         (WebCore::):
25443         (WebCore::clipboardTypeFromMIMEType):
25444         (WebCore::ClipboardWin::ClipboardWin):
25445         (WebCore::ClipboardWin::~ClipboardWin):
25446         (WebCore::writeURL):
25447           Helper function to write a url to a WCDataObject
25448         (WebCore::ClipboardWin::clearData):
25449         (WebCore::ClipboardWin::clearAllData):
25450         (WebCore::ClipboardWin::getData):
25451         (WebCore::ClipboardWin::setData):
25452         (WebCore::addMimeTypesForFormat):
25453           Helper function for ClipboardWin::types
25454         (WebCore::ClipboardWin::types):
25455         (WebCore::ClipboardWin::setDragImage):
25456         (WebCore::ClipboardWin::setDragImageElement):
25457           General setters, match behaviour of WebKit/Mac
25458         (WebCore::ClipboardWin::createDragImage):
25459           Creates a drag image for a DOM specified Image is specified
25460           can't currently generate an image for an arbitrary element
25461         (WebCore::imageToMarkup):
25462           Wraps a url in an img tag
25463         (WebCore::ClipboardWin::declareAndWriteDragImage):
25464         (WebCore::ClipboardWin::writeURL):
25465         (WebCore::ClipboardWin::writeRange):
25466         (WebCore::ClipboardWin::hasData):
25467           Implement Clipboard required by DragController.
25468           Provides read/write DOM Clipboard implementation for dragging,
25469           read only when accessing system clipboard.
25470           
25471         * platform/win/ClipboardWin.h:
25472         (WebCore::ClipboardWin::dataObject):
25473           Provide an accessor for the dataObject
25474           
25475         * platform/win/DragDataWin.cpp:
25476         (WebCore::urlWFormat):
25477         (WebCore::urlFormat):
25478         (WebCore::plainTextFormat):
25479         (WebCore::plainTextWFormat):
25480         (WebCore::texthtmlFormat):
25481         (WebCore::htmlFormat):
25482         (WebCore::getURL):
25483         (WebCore::DragData::asURL):
25484         (WebCore::getPlainText):
25485         (WebCore::DragData::asPlainText):
25486         (WebCore::DragData::asFragment):
25487           Refactoring and removing of a few static modifiers to allow sharing with Clipboard
25488           
25489         * platform/win/DragImageWin.cpp:
25490         (WebCore::dragImageSize):
25491         (WebCore::deleteDragImage):
25492         (WebCore::allocImage):
25493         (WebCore::createCgContextFromBitmap):
25494         (WebCore::scaleDragImage):
25495         (WebCore::dissolveDragImageToFraction):
25496         (WebCore::createDragImageFromImage):
25497         (WebCore::createDragImageIconForCachedImage):
25498           Implement DragImage functions
25499           
25500         * platform/win/EditorWin.cpp:
25501         (WebCore::Editor::newGeneralClipboard):
25502           Creating a Clipboard that wraps the system clipboard
25503           
25504         * platform/win/PasteboardWin.cpp:
25505         (WebCore::createGlobalData):
25506         (WebCore::markupToCF_HTML):
25507         (WebCore::urlToMarkup):
25508         (WebCore::replaceNBSP):
25509           removing 'static'
25510           
25511         * platform/win/WCDataObject.cpp: Added.
25512         (WebCore::WCEnumFormatEtc::WCEnumFormatEtc):
25513         (WebCore::WCEnumFormatEtc::QueryInterface):
25514         (WebCore::WCEnumFormatEtc::AddRef):
25515         (WebCore::WCEnumFormatEtc::Release):
25516         (WebCore::WCEnumFormatEtc::Next):
25517         (WebCore::WCEnumFormatEtc::Skip):
25518         (WebCore::WCEnumFormatEtc::Reset):
25519         (WebCore::WCEnumFormatEtc::Clone):
25520         (WebCore::WCDataObject::createInstance):
25521         (WebCore::WCDataObject::WCDataObject):
25522         (WebCore::WCDataObject::~WCDataObject):
25523         (WebCore::WCDataObject::QueryInterface):
25524         (WebCore::WCDataObject::AddRef):
25525         (WebCore::WCDataObject::Release):
25526         (WebCore::WCDataObject::GetData):
25527         (WebCore::WCDataObject::GetDataHere):
25528         (WebCore::WCDataObject::QueryGetData):
25529         (WebCore::WCDataObject::GetCanonicalFormatEtc):
25530         (WebCore::WCDataObject::SetData):
25531         (WebCore::WCDataObject::CopyMedium):
25532         (WebCore::WCDataObject::EnumFormatEtc):
25533         (WebCore::WCDataObject::DAdvise):
25534         (WebCore::WCDataObject::DUnadvise):
25535         (WebCore::WCDataObject::EnumDAdvise):
25536         (WebCore::WCDataObject::clearData):
25537           Copied from SDataObject in the App createInstance and clearData
25538           are the only new functions.  clearData removes any entries in the
25539           object with a specified CLIPFORMAT.
25540           Have also made a few error and memory handling changes suggested
25541           by Steve and Ada
25542         * platform/win/WCDataObject.h: Added.
25543           Header for the above
25545 2007-02-22  Adam Roben  <aroben@apple.com>
25547         Reviewed by Adele.
25549         Make sure we always paint the right size search results icon.
25551         * rendering/RenderThemeSafari.cpp:
25552         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Removed unused parameter.
25553         (WebCore::RenderThemeSafari::paintSearchFieldDecoration): Ditto.
25554         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Base
25555         the control size off of the search field rect to ensure that the icon
25556         and the control are the same size.
25557         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
25559 2007-02-21  Adam Roben  <aroben@apple.com>
25561         Reviewed by Adele.
25563         Updated for SafariTheme changes.
25565         * rendering/RenderThemeSafari.cpp:
25566         (WebCore::RenderThemeSafari::paintMenuList): Use DropDownButtonPart.
25568 2007-02-20  Adele Peterson  <adele@apple.com>
25570         Reviewed by Darin.
25572         * WebCore.vcproj/WebCore.vcproj: Added JSHTMLSelectElementCustom.h
25574 2007-02-20  Beth Dakin  <bdakin@apple.com>
25576         Reviewed by Maciej.
25578         Some changes needed to match moving writeImage() to the Pasteboard 
25579         on the Mac.
25581         * platform/win/PasteboardWin.cpp:
25582         (WebCore::Pasteboard::writeURL): Now takes a bool indicating if the 
25583         url if for an image.
25584         (WebCore::Pasteboard::writeImage): This is just a stub for now. I 
25585         am putting it here instead of on TemporaryLinkStubs because I plan 
25586         on implementing it very soon.
25588 2007-02-20  Adam Roben  <aroben@apple.com>
25590         Reviewed by Darin and Anders.
25592         Fix <rdar://problem/5003318> App: Status bar text is more difficult to
25593         read than Mac OS X Safari
25595         * WebCore.vcproj/WebCore.vcproj: Added new files.
25596         * platform/win/FileChooserWin.cpp:
25597         (WebCore::FileChooser::openFileChooser):
25598         (WebCore::FileChooser::basenameForWidth): Added truncation.
25599         * platform/win/WebCoreTextRenderer.cpp:
25600         (WebCore::WebCoreDrawTextAtPoint): Added bottomAlign and centerTruncate parameters.
25601         * platform/win/WebCoreTextRenderer.h: Ditto.
25603 2007-02-20  Alice Liu  <alice.liu@apple.com>
25605         Build fix
25607         * WebCore.vcproj/WebCore.vcproj:
25608         Added PositionIterator.cpp & h
25610 2007-02-20  Steve Falkenburg  <sfalken@apple.com>
25612         Production build fix
25614         * WebCore.vcproj/WebCore.vcproj:
25616 2007-02-19  Geoffrey Garen  <ggaren@apple.com>
25618         Reviewed by Adam Roben.
25620         Fixed some leaks in RenderThemeSafari.
25621         
25622         I just merged some of the code I wrote for RenderThemeMac.
25623         
25624         * rendering/RenderThemeSafari.cpp:
25625         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
25626         (WebCore::RenderThemeSafari::paintSliderTrack):
25628 2007-02-19  Anders Carlsson  <acarlsson@apple.com>
25630         Reviewed by Oliver.
25632         Fix build.
25634         * page/win/DragControllerWin.cpp:
25635         (WebCore::DragController::maxDragImageSize):
25637 2007-02-19  Adele Peterson  <adele@apple.com>
25639         Reviewed by Adam.
25641         Fix for <rdar://problem/5006882> PlatformScrollbarSafari doesn't support small scroll bars
25643         * platform/win/PlatformScrollBar.h:
25644         * platform/win/PlatformScrollBarSafari.cpp:
25645         (WebCore::):
25646         (WebCore::PlatformScrollbar::PlatformScrollbar):
25647         (WebCore::trackRepaintRect):
25648         (WebCore::buttonRepaintRect):
25649         (WebCore::PlatformScrollbar::invalidateTrack):
25650         (WebCore::PlatformScrollbar::invalidatePart):
25651         (WebCore::PlatformScrollbar::backButtonRect):
25652         (WebCore::PlatformScrollbar::forwardButtonRect):
25653         (WebCore::PlatformScrollbar::trackRect):
25654         (WebCore::PlatformScrollbar::splitTrack):
25655         (WebCore::PlatformScrollbar::thumbLength):
25656         (WebCore::PlatformScrollbar::paintButton):
25657         (WebCore::PlatformScrollbar::paintTrack):
25658         (WebCore::PlatformScrollbar::paintThumb):
25659         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
25660         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
25661         * platform/win/PopupMenuWin.cpp:
25662         (WebCore::PopupMenu::show):
25663         (WebCore::PopupMenu::calculatePositionAndSize):
25665 2007-02-19  Anders Carlsson  <acarlsson@apple.com>
25667         Reviewed by Adam.
25669         <rdar://problem/5008424>
25670         Regression: Crash loading mp3.com
25671         
25672         * platform/network/cf/ResourceErrorCF.cpp:
25673         (WebCore::ResourceError::ResourceError):
25674         Handle null resource errrors.
25676 2007-02-19  Adam Roben  <aroben@apple.com>
25678         Build fix.
25680         * bridge/win/FrameWin.cpp:
25681         (WebCore::computePageRectsForFrame): This is no longer an instance
25682         method of Frame.
25683         * bridge/win/FrameWin.h:
25685 2007-02-18  Maciej Stachowiak  <mjs@apple.com>
25687         Reviewed by Oliver.
25689         - Adapt for Lars's patch to clean up Frame
25691         * bridge/win/FrameWin.cpp:
25692         (WebCore::Frame::cleanupPlatformScriptObjects):
25693         (WebCore::Frame::createScriptInstanceForWidget):
25694         (WebCore::Frame::computePageRects):
25695         (WebCore::drawRectIntoContext):
25696         (WebCore::imageFromSelection):
25697         (WebCore::Frame::isCharacterSmartReplaceExempt):
25698         * bridge/win/FrameWin.h:
25699         * page/win/EventHandlerWin.cpp:
25700         * platform/win/ScrollViewWin.cpp:
25701         (WebCore::ScrollView::windowResizerRect):
25702         (WebCore::ScrollView::addToDirtyRegion):
25703         (WebCore::ScrollView::scrollBackingStore):
25704         (WebCore::ScrollView::updateBackingStore):
25705         * platform/win/TemporaryLinkStubs.cpp:
25706         (Frame::print):
25707         (Frame::issueTransposeCommand):
25708         (WebCore::Frame::respondToChangedSelection):
25709         * plugins/win/PluginDatabaseWin.cpp:
25710         (WebCore::PluginDatabaseWin::createPluginView):
25711         * plugins/win/PluginDatabaseWin.h:
25712         * plugins/win/PluginViewWin.cpp:
25713         (WebCore::PluginViewWin::createNullPluginView):
25714         (WebCore::PluginViewWin::PluginViewWin):
25715         * plugins/win/PluginViewWin.h:
25717 2007-02-18  Ada Chan  <adachan@apple.com>
25719         Reviewed by Adam.
25721         Move app text controls to use WebView.
25722         - added a method to let us render text using WebKit.
25724         * WebCore.vcproj/WebCore.vcproj:
25725         * platform/win/WebCoreTextRenderer.cpp: Added.
25726         (WebCore::WebCoreDrawTextAtPoint):
25727         * platform/win/WebCoreTextRenderer.h: Added.
25729 2007-02-18  Adam Roben  <aroben@apple.com>
25731         Rubberstamped by Hyatt.
25733         Fix <rdar://problem/5006918> All selected text is black, even if it is
25734         some other color when not selected
25736         * platform/win/PopupMenuWin.cpp:
25737         (WebCore::PopupMenu::paint): Use the listbox colors for selected items.
25738         * rendering/RenderThemeSafari.cpp: Removed platformActiveSelectionForegroundColor.
25739         * rendering/RenderThemeSafari.h: Ditto.
25741 2007-02-18  Adam Roben  <aroben@apple.com>
25743         Reviewed by Hyatt.
25745         Fix <rdar://problem/5006872> <select> popups need Aqua scroll bars
25747         PopupMenuWin now uses a PlatformScrollbar.
25749         * platform/win/PlatformScrollBarSafari.cpp:
25750         (WebCore::PlatformScrollbar::hitTest): Allow hit testing even when we
25751         don't have a parent widget.
25752         (WebCore::PlatformScrollbar::autoscrollPressedPart): Don't autoscroll
25753         if nothing is pressed.
25754         * platform/win/PopupMenuWin.cpp: m_scrollOffset is now measured in menu
25755         items, not in pixels.
25756         (WebCore::PopupMenu::PopupMenu): Initialize new member.
25757         (WebCore::PopupMenu::show): Make popups partially transparent, don't
25758         use Windows' built-in scroll bars, and create a PlatformScrollbar if
25759         needed.
25760         (WebCore::PopupMenu::calculatePositionAndSize): Get the scroll bar's
25761         width from PlatformScrollbar instead of from Windows.
25762         (WebCore::PopupMenu::visibleItems): Added.
25763         (WebCore::PopupMenu::listIndexAtPoint): Definition moved here from header.
25764         (WebCore::PopupMenu::invalidateItem): Update for m_scrollOffset change,
25765         and shrink the damage rect to not invalidate the scroll bar unnecessarily.
25766         (WebCore::PopupMenu::scrollToRevealSelection): Updated to use PlatformScrollbar.
25767         (WebCore::PopupMenu::updateFromElement): Changed bool to BOOL.
25768         (WebCore::PopupMenu::paint): Updated for m_scrollOffset change, and
25769         paint the scroll bar at the end.
25770         (WebCore::PopupMenu::valueChanged): Added. Code comes from the old scrollTo method.
25771         (WebCore::PopupMenu::windowClipRect): Added.
25772         (WebCore::PopupWndProc):
25773             - Set up the scroll bar in WM_SIZE
25774             - Send mouse events to the scroll bar when appropriate
25775             - Get rid of handling of WM_VSCROLL events (we shouldn't receive these anymore)
25777 2007-02-18  Oliver Hunt  <oliver@apple.com>
25779         Reviewed by Adam.
25781         Updated to include stubs for drag and drop methods
25782         Added DragImage[Win].cpp to project file
25783         Now uses platform independent EventHandler::handleDrag
25785         * WebCore.vcproj/WebCore.vcproj:
25787         * bridge/win/FrameWin.cpp:
25788         (WebCore::Frame::dragImageForSelection):
25789           Just wrap the platform specific selectionImage method
25791         * page/win/DragControllerWin.cpp:
25792           Defining constants for drag images -- basically copied the Mac definitions
25794         * page/win/EventHandlerWin.cpp:
25795         (WebCore::EventHandler::createDraggingClipboard):
25796           Basic implementation -- needs to create an IDataObject to be useful
25797           but ClipboardWin is basically unimplemented anyway so not yet a problem
25799         * platform/win/ClipboardWin.cpp:
25800         (WebCore::ClipboardWin::createDragImage):
25801         (WebCore::ClipboardWin::declareAndWriteDragImage):
25802         (WebCore::ClipboardWin::writeURL):
25803         (WebCore::ClipboardWin::writeRange):
25804         (WebCore::ClipboardWin::hasData):
25805           Stubs
25807         * platform/win/ClipboardWin.h:
25808           Updated interface
25810         * platform/win/DragImageWin.cpp: Added.
25811         (WebCore::dragImageSize):
25812         (WebCore::deleteDragImage):
25813         (WebCore::scaleDragImage):
25814         (WebCore::dissolveDragImageToFraction):
25815         (WebCore::createDragImageFromImage):
25816         (WebCore::createDragImageIconForCachedImage):
25817           Stubs
25819 2007-02-17  Adam Roben  <aroben@apple.com>
25821         * WebCore.vcproj/WebCore.vcproj: Removed bogus single-file
25822         configuration for MimeTypeRegistryWin.cpp.
25824 2007-02-17  David Hyatt  <hyatt@apple.com>
25826         Part of the OpenSource fix to make sure the fill color starts off as transparent.  Make sure our CG context
25827         has its state properly in sync with the CGContext.
25829         Reviewed by aroben
25831         * platform/win/GraphicsContextWin.cpp:
25832         (WebCore::GraphicsContext::GraphicsContext):
25834 2007-02-17  Adam Roben  <aroben@apple.com>
25836         Build fix.
25838         * platform/win/CursorWin.cpp:
25839         (WebCore::notAllowedCursor):
25841 2007-02-17  Dave Hyatt <hyatt@apple.com>
25843         Change how resizers are invalidated to fix Radar bug #4976772.
25844         
25845         Reviewed by olliej
25847         * platform/win/GraphicsContextWin.cpp:
25848         (WebCore::GraphicsContext::GraphicsContext):
25849         * platform/win/ScrollViewWin.cpp:
25850         (WebCore::ScrollView::suppressScrollbars):
25851         (WebCore::ScrollView::paint):
25852         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
25853         * platform/win/WidgetWin.cpp:
25854         (WebCore::Widget::invalidateRect):
25856 2007-02-16  Dave Hyatt <hyatt@apple.com>
25858         Fix for Radar bug #4981074, RSS Scrollbar overlaps window resizer.  Teach all scrollbars how to
25859         avoid the window resizer.
25860         
25861         Reviewed by aroben
25863         * platform/win/PlatformScrollBar.h:
25864         * platform/win/PlatformScrollBarSafari.cpp:
25865         (WebCore::PlatformScrollbar::PlatformScrollbar):
25866         (WebCore::PlatformScrollbar::setRect):
25867         (WebCore::PlatformScrollbar::setParent):
25868         * platform/win/PlatformScrollBarWin.cpp:
25869         (WebCore::PlatformScrollbar::PlatformScrollbar):
25870         (WebCore::PlatformScrollbar::setRect):
25871         (WebCore::PlatformScrollbar::setParent):
25872         * platform/win/ScrollViewWin.cpp:
25873         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
25874         (WebCore::ScrollView::updateScrollbars):
25875         (WebCore::ScrollView::resizerOverlapsContent):
25876         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
25877         (WebCore::ScrollView::setParent):
25879 2007-02-16  Adam Roben  <aroben@apple.com>
25881         Rubberstamped by Anders.
25883         * platform/win/PlatformScrollBarSafari.cpp:
25884         (WebCore::PlatformScrollbar::paint): Don't draw the arrows when we're disabled.
25886 2007-02-15  Dave Hyatt  <hyatt@apple.com>
25888         Reviewed by Adam.
25890         Fix for 4804657 and 4952931, scroll view gets confused and ends up at a bad scroll
25891         offset.
25892         
25893         * platform/win/ScrollViewWin.cpp:
25894         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
25895         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
25896         (WebCore::ScrollView::updateScrollbars):
25898 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
25900         Reviewed by Adam.
25902         <rdar://problem/4993040>
25903         Crash in plugin code watching yahoo news video
25904         
25905         Zero out the plugin function struct.
25906         
25907         * plugins/win/PluginPackageWin.cpp:
25908         (WebCore::PluginPackageWin::load):
25910 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
25912         Fix build.
25914         Use adoptCF instead of adopt.
25916         * platform/network/cf/ResourceHandleCFNet.cpp:
25917         (WebCore::ResourceHandle::start):
25918         * platform/network/cf/ResourceRequestCFNet.cpp:
25919         (WebCore::ResourceRequest::doUpdatePlatformRequest):
25921 2007-02-16  Adam Roben  <aroben@apple.com>
25923         Reviewed by Oliver.
25925         Implemented square button look.
25927         * rendering/RenderThemeSafari.cpp:
25928         (WebCore::RenderThemeSafari::adjustRepaintRect): Only inflate the rect
25929         if we have a pushbutton.
25930         (WebCore::RenderThemeSafari::paintButton): Ditto.
25932 2007-02-15  Anders Carlsson  <acarlsson@apple.com>
25934         Reviewed by Adam.
25936         Add the default Flash plugin location to the list of plugin paths.
25938         * plugins/win/PluginDatabaseWin.cpp:
25939         (WebCore::addFlashPluginPath):
25940         (WebCore::PluginDatabaseWin::defaultPluginPaths):
25942 2007-02-15  Lou Amadio  <lamadio@apple.com>
25944         Reviewed by Steve.
25946         <rdar://problem/4945799> CGText: should use correct mechanism to set font smoothing style
25947         
25948         * platform/win/FontWin.cpp:
25949         (WebCore::Font::drawGlyphs):
25951 2007-02-15  Anders Carlsson  <acarlsson@apple.com>
25953         Reviewed by Adam.
25955         <rdar://problem/4987529>
25956         Regression: first clicks don't work at flash-based Nokia.com
25958         * plugins/win/PluginViewWin.cpp:
25959         (WebCore::PluginViewWin::handleMouseEvent):
25960         Don't set buttons for mouse move. Also, ignore unknown mouse events.
25962 2007-02-13  Brady Eidson  <beidson@apple.com>
25964         Reviewed by Adam
25966         Switch permanently from CFStreamError to CFErrorRef in ResourceHandleCF
25968         * platform/network/cf/ResourceHandleCFNet.cpp:
25969         (WebCore::didFail):
25970         (WebCore::ResourceHandle::start):
25972 2007-02-13  Adam Roben  <aroben@apple.com>
25974         Build fix.
25976         * WebCore.vcproj/WebCore.vcproj: Remove SVGDOMImplementation.(cpp|h)
25978 2007-02-12  Ada Chan  <adachan@apple.com>
25980         Reviewed by Steve.
25982         <rdar://4952715> Events not being passed from WebCore/WebKit up through IWebForm::doCommandBySelector
25983         Frame::doTextFieldCommandFromEvent()'s signature has changed from taking in a PlatformKeyboardEvent
25984         to KeyboardEvent.  Match that in FrameWin.
25986         * bridge/win/FrameWin.cpp:
25987         (WebCore::FrameWin::doTextFieldCommandFromEvent):
25988         * bridge/win/FrameWin.h:
25990 2007-02-10  Adam Roben  <aroben@apple.com>
25992         Rubberstamped by Oliver.
25994         * rendering/RenderThemeSafari.cpp:
25995         (WebCore::RenderThemeSafari::paintButton): Call controlSizeFromRect
25996         instead of controlSizeForFont to determine the correct control size.
25998 2007-02-09  Alice Liu  <alice.liu@apple.com>
26000         Reviewed by Brady and Adam.
26002         Fixed <rdar://4986194> Typing in content editable body does not automatically scroll to reveal cursor
26004         * platform/win/ScrollViewWin.cpp:
26005         (WebCore::ScrollView::updateScrollbars):
26006         The scrollview's scrolloffset wasn't getting set in cases where there were no scrollbars
26007         You can have a scrolloffset even if you don't have scrollbars
26009 2007-02-09  Darin Adler  <darin@apple.com>
26011         Reviewed by Adele.
26013         - Add TextEvent to the DOM (based on the proposed DOM level 3)
26014           to be used to fix some international input bugs soon.
26015           At this point, we don't send any text events.
26017         - Remove some obsolete files.
26019         * WebCore.vcproj/WebCore.vcproj: Add new files, remove obsolete files.
26021 2007-02-09  Anders Carlsson  <acarlsson@apple.com>
26023         Reviewed by Adam.
26025         * plugins/win/PluginViewWin.cpp:
26026         (WebCore::PluginViewWin::performRequest):
26027         Add the stream to the m_streams hash set.
26029 2007-02-08  Adele Peterson  <adele@apple.com>
26031         Reviewed by Brady.
26033         Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
26034         <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
26036         This also fixes a bug where when you called window.focus() on a background window, it did not come to the front.
26038         * bridge/win/FrameWin.h: Removed focusWindow() and unfocusWindow() stubs since there are now implementations in the base class.
26039         * platform/win/TemporaryLinkStubs.cpp:
26041 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
26043         Reviewed by Geoff.
26045         <rdar://problem/4955068>
26046         PluginViewWin leaks memory.
26047         
26048         Make streams ref-counted. Remove streams from the hash set once they're done loading.
26049         
26050         Don't try to paint if painting is disabled.
26051         
26052         * plugins/win/PluginStreamWin.cpp:
26053         (WebCore::PluginStreamWin::PluginStreamWin):
26054         (WebCore::PluginStreamWin::cancelAndDestroyStream):
26055         (WebCore::PluginStreamWin::destroyStream):
26056         * plugins/win/PluginStreamWin.h:
26057         * plugins/win/PluginViewWin.cpp:
26058         (WebCore::PluginViewWin::paint):
26059         (WebCore::PluginViewWin::stop):
26060         (WebCore::PluginViewWin::~PluginViewWin):
26061         (WebCore::PluginViewWin::disconnectStream):
26062         * plugins/win/PluginViewWin.h:
26064 2007-02-08  Adam Roben  <aroben@apple.com>
26066         Reviewed by Adele.
26068         Fix scrollbar painting.
26070         * platform/win/PlatformScrollBarSafari.cpp:
26071         (WebCore::trackRepaintRect): Added.
26072         (WebCore::buttonRepaintRect): Added.
26073         (WebCore::PlatformScrollbar::invalidateTrack): Inavlidate the repaint
26074         rect, not the rect used for hit testing.
26075         (WebCore::PlatformScrollbar::invalidatePart): Ditto.
26076         (WebCore::PlatformScrollbar::paint): Paint the track first, then the
26077         buttons, then the thumb.
26078         (WebCore::PlatformScrollbar::paintButton): Paint in the repaintRect,
26079         not the rect used for hit testing.
26080         (WebCore::PlatformScrollbar::paintTrack): Ditto.
26082 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
26084         Remove unused stub.
26085         
26086         * platform/win/TemporaryLinkStubs.cpp:
26088 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
26090         Reviewed by Brady.
26092         <rdar://problem/4888871>
26093         Need to support synchronous XMLHttpRequest.
26095         * platform/network/cf/ResourceHandleCFNet.cpp:
26096         (WebCore::ResourceHandle::loadResourceSynchronously):
26098 2007-02-07  Adam Roben  <aroben@apple.com>
26100         Reviewed by Maciej.
26102         Fix mini search field painting.
26104         * rendering/RenderThemeSafari.cpp:
26105         (WebCore::RenderThemeSafari::searchFieldSizes): Use the right height.
26107 2007-02-07  Adele Peterson  <adele@apple.com>
26109         Reviewed by Adam.
26111         Draw a single down arrow for styled menu lists.
26113         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintMenuListButton):
26114         * rendering/RenderThemeWin.cpp: Moved #ifndef USE_SAFARI_THEME to enclose the body of the file.
26116 2007-02-07  Brady Eidson  <beidson@apple.com>
26118         RS = Adam
26119         
26120         Touch these files to force it to recompile...
26122         * platform/win/PlatformScrollBarSafari.cpp:
26123         * rendering/RenderThemeWin.cpp:
26125 2007-02-07  Adam Roben  <aroben@apple.com>
26127         Rubberstamped by Maciej.
26129         Turn on SafariTheme so we can try it out.
26131         * WebCore.vcproj/WebCore.vcproj:
26133 2007-02-07  Adam Roben  <aroben@apple.com>
26135         Reviewed by Adele.
26137         * rendering/RenderThemeSafari.cpp:
26138         (WebCore::RenderThemeSafari::determineState): Pass focus information down to SafariTheme.
26140 2007-02-06  Adam Roben  <aroben@apple.com>
26142         Rubberstamped by Brady.
26144         Updated for log channel rename.
26146         * platform/win/GDIObjectCounter.cpp:
26147         (WebCore::GDIObjectCounter::~GDIObjectCounter):
26149 2007-02-06  Adele Peterson  <adele@apple.com>
26151         Reviewed by Adam.
26153         Added support for radio buttons and checkboxes.
26155         * platform/win/PlatformScrollBarSafari.cpp:
26156         (WebCore::PlatformScrollbar::paintButton):
26157         (WebCore::PlatformScrollbar::paintTrack):
26158         (WebCore::PlatformScrollbar::paintThumb):
26159         * rendering/RenderThemeSafari.cpp:
26160         (WebCore::RenderThemeSafari::determineState):
26161         (WebCore::RenderThemeSafari::platformActiveSelectionForegroundColor):
26162         (WebCore::RenderThemeSafari::adjustRepaintRect):
26163         (WebCore::RenderThemeSafari::paintCheckbox):
26164         (WebCore::RenderThemeSafari::checkboxMargins):
26165         (WebCore::RenderThemeSafari::paintRadio):
26166         (WebCore::RenderThemeSafari::radioMargins):
26167         (WebCore::RenderThemeSafari::adjustMenuListStyle):
26168         (WebCore::RenderThemeSafari::paintSliderThumb):
26169         * rendering/RenderThemeSafari.h:
26171 2007-02-05  Adam Roben  <aroben@apple.com>
26173         Reviewed by Ada and Oliver.
26175         Add a GDIObjectCounter class that informs us of GDI leaks.
26177         * WebCore.vcproj/WebCore.vcproj: Added new files.
26178         * platform/win/GDIObjectCounter.cpp: Added.
26179         (WebCore::GDIObjectCounter::GDIObjectCounter):
26180         (WebCore::GDIObjectCounter::init):
26181         (WebCore::GDIObjectCounter::~GDIObjectCounter):
26182         (WebCore::GDIObjectCounter::currentGDIObjectsInUse):
26183         * platform/win/GDIObjectCounter.h: Added.
26185 2007-02-05  Adam Roben  <aroben@apple.com>
26187         Build fix.
26189         * WebCore.vcproj/WebCore.vcproj: Add new files.
26191 2007-02-04  Oliver Hunt  <oliver@apple.com>
26193         Reviewed by Adam.           
26195         Removed unimplemented EventHandler::handleMouseUp, 
26196         as a platform independent version is available now.
26198         * page/win/EventHandlerWin.cpp:
26199         (WebCore::EventHandler::eventActivatedView): 
26200           Now we use this method, it needs to be implemented
26202 2007-02-02  Steve Falkenburg  <sfalken@apple.com>
26204         Fix build.
26206         * WebCore.vcproj/WebCore.vcproj:
26208 2007-02-02  Steve Falkenburg  <sfalken@apple.com>
26210         * platform/network/cf/FormDataStreamCFNet.cpp:
26212 2007-02-02  Adam Roben  <aroben@apple.com>
26214         Turn on Lucida Grande.
26216         * rendering/RenderThemeSafari.cpp:
26217         (WebCore::RenderThemeSafari::systemFont):
26218             Use Lucida Grande.
26219         (WebCore::RenderThemeSafari::setFontFromControlSize):
26220             Ditto.
26221         (WebCore::RenderThemeSafari::controlSizeForSystemFont):
26222             Implemented using font sizes from NSFont.m.
26223         (WebCore::RenderThemeSafari::adjustRepaintRect):
26224             Uncommented.
26225         (WebCore::RenderThemeSafari::minimumMenuListSize):
26226             Ditto.
26228 2007-02-02  Adam Roben  <aroben@apple.com>
26230         Reviewed by Maciej.
26232         Implemented menulist drawing.
26234         * rendering/RenderThemeSafari.cpp:
26235         (WebCore::controlSizeFromRect):
26236             Moved to top of file.
26237         (WebCore::RenderThemeSafari::adjustRepaintRect):
26238             Uncommented menulist case.
26239         (WebCore::RenderThemeSafari::popupButtonMargins):
26240             Added controlSize parameter, made margins match AppKit artwork.
26241         (WebCore::RenderThemeSafari::paintMenuList):
26242             Implemented.
26243         * rendering/RenderThemeSafari.h:
26244             Updated decalartion.
26246 2007-02-01  Anders Carlsson  <acarlsson@apple.com>
26248         Reviewed by Brady.
26250         * platform/network/cf/ResourceHandleCFNet.cpp:
26251         (WebCore::willSendRequest):
26252         Make sure to always retain the request we return. (In practice, we were already doing this since
26253         client can never be null).
26254         
26255         (WebCore::didReceiveResponse):
26256         Remove client null check.
26258 2007-02-01  Steve Falkenburg  <sfalken@apple.com>
26260         Production build fix
26262         * WebCore.vcproj/WebCore.vcproj:
26264 2007-01-31  Oliver Hunt  <oliver@apple.com>
26266         Reviewed by Adam.
26268         Updating event handler logic to make use of methods migrated from 
26269         WebKit to WebCore
26271         * page/win/EventHandlerWin.cpp:
26272         (WebCore::EventHandler::handleDrag):   
26273           Updating handleDrag to use methods that we've migrated to WebCore
26274         * platform/win/PlatformMouseEventWin.cpp:
26275         (WebCore::messageToEventType):                        
26276         (WebCore::PlatformMouseEvent::PlatformMouseEvent):   
26277           provide the type of mouse event
26278           
26280 2007-01-31  Steve Falkenburg  <sfalken@apple.com>
26282         Reviewed by Ada.
26284         Fix BString bugs.
26286         * platform/win/BString.cpp:
26287         (WebCore::BString::BString): Call SysAllocString instead of SysAllocStringLen
26288         (WebCore::BString::operator=): Add proper null checks
26289         (WebCore::operator ==): Add proper null checks
26291 2007-01-30  Anders Carlsson  <acarlsson@apple.com>
26293         Build fix.
26294         
26295         * platform/win/TemporaryLinkStubs.cpp:
26296         (ResourceHandle::setDefersLoading):
26298 2007-01-30  Steve Falkenburg  <sfalken@apple.com>
26300         Production build fix
26302         * WebCore.vcproj/WebCore.vcproj:
26304 2007-01-29  Adam Roben  <aroben@apple.com>
26306         Build fix.
26308         * platform/win/TemporaryLinkStubs.cpp: Removed old stub.
26310 2007-01-29  Brady Eidson  <beidson@apple.com>
26312         Reviewed by Oliver
26314         All the downloads plumbing for if you have ToT CFNetwork + my changes
26315         (or after they submit with my changes)
26317         * platform/network/cf/FormDataStreamCFNet.cpp: Reword the #ifdef for CFNetwork ToT for clarity
26318         * platform/network/cf/ResourceHandleCFNet.cpp:
26319         (WebCore::didFail): Use a RetainPtr .get()
26320         (WebCore::ResourceHandleInternal::~ResourceHandleInternal): Only cancel the connection if we hold the last ref
26321         (WebCore::ResourceHandle::start): Use a RetainPtr - adopt and .get()
26322         (WebCore::ResourceHandle::cancel): Use a RetainPtr .get()
26323         (WebCore::ResourceHandle::receivedCredential):Use a RetainPtr .get()
26324         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Use a RetainPtr .get()
26325         (WebCore::ResourceHandle::connection): Use a RetainPtr .get()
26326         * platform/network/cf/ResourceRequestCFNet.cpp:
26327         (WebCore::ResourceRequest::doUpdatePlatformRequest): Prevent a crash if a null
26329 2007-01-29  Brady Eidson  <beidson@apple.com>
26331         Reviewed by Geoff
26333         Change LOG_NOTIMPL() to use a LOG() and its logging channel instead of LOG_ERROR()
26334         so you can actually turn it off.
26335         
26336         * platform/win/NotImplemented.h:
26338 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
26339         
26340         - fix build
26342         * platform/win/TemporaryLinkStubs.cpp:
26344 2007-01-29  Steve Falkenburg  <sfalken@apple.com>
26346         Fix build break from RootObject ownership change.
26348         * bridge/win/FrameWin.cpp:
26349         (WebCore::FrameWin::createRootObject): Added
26350         (WebCore::FrameWin::cleanupPluginObjects): change destroy to invalidate
26351         (WebCore::FrameWin::bindingRootObject): change new RootObject to RootObject::create
26352         * bridge/win/FrameWin.h: 
26353         * plugins/win/PluginViewWin.cpp:
26354         (WebCore::PluginViewWin::bindingInstance): change new RootObject to FrameWin::createRootObject.
26356 2007-01-26  Adam Roben  <aroben@apple.com>
26358         Reviewed by Oliver.
26360         Fix frequent failed assertions when painting scroll bars.
26362         * platform/win/PlatformScrollBarSafari.cpp:
26363         (WebCore::PlatformScrollbar::paint): Check that painting is enabled
26364         before painting.
26366 2007-01-26  Oliver Hunt <oliver@apple.com>
26368         Build fix.
26370         * WebCore.vcproj/WebCore.vcproj:
26372 2007-01-26  Beth Dakin  <bdakin@apple.com>
26374         Reviewed by Darin.
26376         Due to <rdar://problem/4956565> REGRESSION: After scrolling frame, 
26377         hovering over link in this frame doesn't change cursor to pointing 
26378         hand
26380         lastEventIsMouseUp() is a Mac-only issue. This patch makes it Mac-
26381         only code, so we can remove the temporary link stub for it.
26383         * platform/win/TemporaryLinkStubs.cpp:
26385 2007-01-26  Oliver Hunt <oliver@apple.com>
26387         Build fix -- adding SVGInlineTextBox.{cpp,h} to project
26389         * WebCore.vcproj/WebCore.vcproj:
26391 2007-01-25  Oliver Hunt  <oliver@apple.com>
26393         Reviewed by Maciej.
26395         Fixed DragDataWin behaviour so that it will provide plain text
26396         for a file dropped on the window.
26398         * platform/win/DragDataWin.cpp:
26399         (WebCore::DragData::asPlainText):
26401 2007-01-25  Brady Eidson  <beidson@apple.com>
26403         Reviewed by Adam
26405         -Setup for new CFNetwork API for those using their ToT and their next submission
26406         -Setup for new CoreFoundation API for those using their ToT and their next submission
26408         * platform/network/cf/FormDataStreamCFNet.cpp:
26409         (WebCore::setHTTPBody): New callback format - will need to define USE_NEW_CFSTREAM_CALLBACKS 
26410           to switch to the new API
26411         * platform/network/cf/ResourceHandleCFNet.cpp:
26412         (WebCore::didFail):  This automagically works :)
26414 2007-01-25  Adele Peterson  <adele@apple.com>
26416         Reviewed by Adam. 
26418         Added support for slider.
26420         * rendering/RenderThemeSafari.cpp:
26421         (WebCore::RenderThemeSafari::RenderThemeSafari):
26422         (WebCore::RenderThemeSafari::inflateRect):
26423         (WebCore::RenderThemeSafari::paintSliderTrack):
26424         (WebCore::RenderThemeSafari::paintSliderThumb):
26425         * rendering/RenderThemeSafari.h:
26427 2007-01-25  Steve Falkenburg  <sfalken@apple.com>
26429         Production build fix
26431         * WebCore.vcproj/WebCore.vcproj:
26433 2007-01-24  Adele Peterson  <adele@apple.com>
26435         Reviewed by Brady and Oliver.
26437         Moved keyEvent method from FrameWin to EventHandler and updated
26438         call sites.  Now this method is shared with the mac.
26440         * bridge/win/FrameWin.cpp:
26441         * bridge/win/FrameWin.h:
26443 2007-01-24  Steve Falkenburg  <sfalken@apple.com>
26445         Reviewed by Lou.
26447         * bridge/win/FrameWin.cpp:
26448         (WebCore::regExpForLabels): Ported from FrameMac.mm
26449         (WebCore::FrameWin::searchForLabelsAboveCell): Ported from FrameMac.mm
26450         (WebCore::FrameWin::searchForLabelsBeforeElement): Ported from FrameMac.mm
26451         (WebCore::FrameWin::matchLabelsAgainstElement): Ported from FrameMac.mm
26452         * bridge/win/FrameWin.h:
26454 2007-01-24  Adam Roben  <aroben@apple.com>
26456         Reviewed by Adele.
26458         Added PlatformScrollBarSafari for Aqua scroll bars.
26460         * WebCore.vcproj/WebCore.vcproj: Added new file to project.
26461         * platform/win/PlatformScrollBarSafari.cpp: Added. Copied from PlatformScrollBarWin.cpp.
26462         (WebCore::PlatformScrollbar::PlatformScrollbar):
26463         (WebCore::PlatformScrollbar::paint):
26464         (WebCore::PlatformScrollbar::backButtonRect):
26465         (WebCore::PlatformScrollbar::forwardButtonRect):
26466         (WebCore::PlatformScrollbar::trackRect):
26467         (WebCore::PlatformScrollbar::thumbLength):
26468         (WebCore::PlatformScrollbar::paintButton):
26469         (WebCore::PlatformScrollbar::paintTrack):
26470         (WebCore::PlatformScrollbar::paintThumb):
26471         (WebCore::PlatformScrollbar::paintGripper):
26472         (WebCore::PlatformScrollbar::gripperRect):
26473         (WebCore::PlatformScrollbar::themeChanged):
26474         * platform/win/PlatformScrollBarWin.cpp: Added #ifndef USE_SAFARI_THEME.
26475         * rendering/RenderThemeSafari.cpp: Updated for SafariTheme.h changes.
26476         (WebCore::RenderThemeSafari::RenderThemeSafari):
26478 2007-01-23  Brady Eidson  <beidson@apple.com>
26480         Reviewed by Steve
26482         Initial hookup of Download support
26484         * platform/network/cf/ResourceErrorCF.cpp:
26485         (WebCore::ResourceError::ResourceError):
26486         (WebCore::ResourceError::operator CFStreamError):
26487         
26488         * platform/network/cf/ResourceHandleCFNet.cpp:
26489         (WebCore::ResourceHandle::loaderRunLoop): Accessor so downloads can run on the same 
26490           runloop as connections
26491         (WebCore::ResourceHandle::start):
26492         (WebCore::ResourceHandle::connection):
26494         * platform/win/BString.cpp:
26495         (WebCore::BString::BString): Ability to create BString from a CFStringRef
26496         * platform/win/BString.h:
26498 2007-01-23  Anders Carlsson  <acarlsson@apple.com>
26500         Reviewed by Darin.
26502         <rdar://problem/4919754>
26503         Boomer freezes after attempt to play video.
26504         
26505         * plugins/win/PluginStreamWin.cpp:
26506         Change WebReasonNone to -2, some plugins return -1 to indicate error.
26507         
26508         (WebCore::PluginStreamWin::stop):
26509         Just don't clear the loader, stop loading as well.
26510         
26511         (WebCore::PluginStreamWin::startStream):
26512         Destroy the stream if newstream returns an error.
26513         
26514         * plugins/win/PluginViewWin.cpp:
26515         (WebCore::PluginViewWin::performRequest):
26516         If the call to toString throws an exception, clear it.
26518 2007-01-23  Steve Falkenburg  <sfalken@apple.com>
26520         Fix release build.
26522         * WebCore.vcproj/WebCore.vcproj:
26524 2007-01-23  Adele Peterson  <adele@apple.com>
26526         Reviewed by Adam. 
26528         Added call to paintThemeTextArea.
26530         * rendering/RenderThemeSafari.cpp:
26531         (WebCore::RenderThemeSafari::paintTextArea):
26533 2007-01-23  Anders Carlsson  <acarlsson@apple.com>
26535         Build fixes.
26536         
26537         * WebCore.vcproj/WebCore.vcproj:
26538         Copy plugin and JS headers.
26539         
26540         * loader/win/FrameLoaderWin.cpp:
26541         Move functions to WebKitWin.
26543 2007-01-23  Oliver Hunt  <oliver@apple.com>
26545         Reviewed by Adam.
26547         * WebCore.vcproj/WebCore.vcproj:
26548         * page/win/DragControllerWin.cpp: Added.
26549         (WebCore::DragController::dragOperation):
26550         (WebCore::DragController::isCopyKeyDown):
26551           Platform specific implementation
26553         * platform/win/ClipboardWin.cpp:
26554         (WebCore::ClipboardWin::ClipboardWin):
26555         (WebCore::ClipboardWin::isForDragging):
26556         * platform/win/ClipboardWin.h:
26557           Migrated common Clipboard functionality from ClipboardMac/Win -> Clipboard
26559         * platform/win/DragDataWin.cpp: Added.
26560         (WebCore::DragData::createClipboard):
26561         (WebCore::urlWFormat):
26562         (WebCore::urlFormat):
26563         (WebCore::filenameWFormat):
26564         (WebCore::filenameFormat):
26565         (WebCore::plainTextFormat):
26566         (WebCore::plainTextWFormat):
26567         (WebCore::DragData::containsURL):
26568         (WebCore::extractURL):
26569         (WebCore::DragData::asURL):
26570         (WebCore::DragData::containsPlainText):
26571         (WebCore::DragData::asPlainText):
26572         (WebCore::texthtmlFormat):
26573         (WebCore::htmlFormat):
26574         (WebCore::containsHTML):
26575         (WebCore::fragmentFromHTML):
26576         (WebCore::containsFilenames):
26577         (WebCore::fragmentFromFilenames):
26578         (WebCore::DragData::containsColor):
26579         (WebCore::DragData::canSmartReplace):
26580         (WebCore::DragData::containsCompatibleContent):
26581         (WebCore::DragData::asFragment):
26582         (WebCore::DragData::asColor):
26583           Implementation of DragData accesor methods, and helper functions
26585         * platform/win/EditorWin.cpp:
26586         (WebCore::Editor::newGeneralClipboard):
26587           Updated for new ClipboardWin constructor
26589         * platform/win/PasteboardWin.cpp:
26590         (WebCore::fragmentFromCF_HTML):
26591         (WebCore::Pasteboard::documentFragment):
26592           Pulled out CF_HTML parsing to a seperate function so logic 
26593           can be shared with DragDataWin
26595 2007-01-22  Adam Roben  <aroben@apple.com>
26597         Reviewed by Adele.
26599         Implemented search field painting, and did some cleanup.
26601         * rendering/RenderThemeSafari.cpp:
26602         (WebCore::RenderThemeSafari::RenderThemeSafari): Updated for changes to SafariTheme.
26603         (WebCore::RenderThemeSafari::paintButton): Ditto.
26604         (WebCore::RenderThemeSafari::paintTextField): Ditto.
26605         (WebCore::controlSizeFromRect): New helper function.
26606         (WebCore::RenderThemeSafari::paintSearchField): Implemented.
26607         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Ditto.
26608         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Ditto.
26609         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
26610         (WebCore::RenderThemeSafari::setSearchFieldSize): Uncommented setSizeFromFont call.
26611         (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle): Ditto.
26612         (WebCore::RenderThemeSafari::adjustSearchFieldDecorationStyle): Ditto.
26613         (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationStyle): Ditto.
26614         (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle): Ditto.
26616 2007-01-22  Anders Carlsson  <acarlsson@apple.com>
26618         Reviewed by Adam.
26619         
26620         <rdar://problem/4771115>
26621         Windows Media Player plugin crashes.
26623         * WebCore.vcproj/WebCore.vcproj:
26624         Formatting changes.
26625         
26626         * plugins/win/PluginDatabaseWin.cpp:
26627         (WebCore::PluginDatabaseWin::defaultPluginPaths):
26628         Add Windows Media Player path.
26629         
26630         * plugins/win/PluginStreamWin.cpp:
26631         (WebCore::PluginStreamWin::sendJavaScriptStream):
26632         * plugins/win/PluginStreamWin.h:
26633         New function which sends a JavaScript result stream and handles any errors that the
26634         plug-in returns.
26635         
26636         * plugins/win/PluginViewWin.cpp:
26637         (WebCore::PluginViewWin::setFrameGeometry):
26638         Always call NPP_SetWindow, some plugins (like WMP) relies on it.
26639         
26640         (WebCore::PluginViewWin::performRequest):
26641         If a plug-in requests a javascript: URL that doesn't evaluate to a string, call toString on it.
26642         The Windows Media Player plugin calls javascript:document.location and expects to get the location back.
26644 2007-01-23  Darin Adler  <darin@apple.com>
26646         - internal part of fix for http://bugs.webkit.org/show_bug.cgi?id=12273
26647           REGRESSION: File input value invisible after removing and re-appending
26649         * WebCore.vcproj/WebCore.vcproj: Added FileChooser.cpp.
26651         * platform/win/FileChooserWin.cpp: Removed many now-unneeded functions.
26652         (WebCore::FileChooser::FileChooser): Updated for changed parameters and members.
26653         (WebCore::FileChooser::openFileChooser): Changed to take document parmaeter and
26654         find the FrameView from that instead of the upload control.
26655         (WebCore::FileChooser::basenameForWidth): Added ignored Font parameter.
26657 2007-01-22  Anders Carlsson  <acarlsson@apple.com>
26659         Reviewed by Adam.
26661         <rdar://problem/4903230>
26662         Boomer crashes at Flickr website when "View as slideshow" is clicked.
26663         
26664         * plugins/win/PluginViewWin.cpp:
26665         (WebCore::PluginViewWin::bindingInstance):
26666         Return null if m_plugin is null (which it can be if the plugin failed to load).
26668 2007-01-22  Anders Carlsson  <acarlsson@apple.com>
26670         Build fix.
26671         
26672         * WebCore.vcproj/WebCore.vcproj:
26674 2007-01-22  Adam Roben  <aroben@apple.com>
26676         Moved ifdefs to match Darin's suggestion.
26678         * rendering/RenderThemeSafari.cpp:
26679         * rendering/RenderThemeSafari.h:
26681 2007-01-22  Adam Roben  <aroben@apple.com>
26683         Build fix.
26685         * rendering/RenderThemeSafari.cpp:
26686         (WebCore::theme):
26687         * rendering/RenderThemeSafari.h:
26689 2007-01-21  Adam Roben  <aroben@apple.com>
26691         Reviewed by Maciej.
26693         Implemented drawing button states and control sizes.
26695         * WebCore.vcproj/WebCore.vcproj:
26696         * rendering/RenderThemeSafari.cpp:
26697         (WebCore::RenderThemeSafari::determineState): Added.
26698         (WebCore::RenderThemeSafari::systemFont): Implemented rest of font sizes.
26699         (WebCore::RenderThemeSafari::paintButton): Updated for SafariTheme changes.
26700         (WebCore::RenderThemeSafari::paintTextField): Ditto.
26701         * rendering/RenderThemeSafari.h: Added declaration.
26703 2007-01-21  Adam Roben  <aroben@apple.com>
26705         Reviewed by Maciej.
26707         * rendering/RenderThemeSafari.cpp: Updated declarations of SafariTheme calls.
26708         (WebCore::systemFontSizeForControlSize): Added.
26709         (WebCore::RenderThemeSafari::systemFont): Made it work in the small-control case.
26710         (WebCore::RenderThemeSafari::adjustRepaintRect): Made it work for buttons and checkboxes.
26711         (WebCore::RenderThemeSafari::setFontFromControlSize): Fixed to work on Windows.
26712         (WebCore::RenderThemeSafari::checkboxMargins): Added controlSize parameter.
26713         (WebCore::RenderThemeSafari::buttonMargins): Ditto.
26714         (WebCore::RenderThemeSafari::paintButton): Fixed FIXME, added save/restore calls.
26715         (WebCore::RenderThemeSafari::paintTextField): Added save/restore calls.
26716         * rendering/RenderThemeSafari.h: Updated declarations.
26718 2007-01-21  Adele Peterson  <adele@apple.com>
26720         Reviewed by Adam. 
26722         Adding RenderThemeSafari.
26724         * WebCore.vcproj/WebCore.vcproj:
26725         * rendering/RenderThemeSafari.cpp: Added.
26726         (WebCore::):
26727         (WebCore::theme):
26728         (WebCore::RenderThemeSafari::RenderThemeSafari):
26729         (WebCore::RenderThemeSafari::~RenderThemeSafari):
26730         (WebCore::RenderThemeSafari::platformActiveSelectionBackgroundColor):
26731         (WebCore::RenderThemeSafari::platformInactiveSelectionBackgroundColor):
26732         (WebCore::RenderThemeSafari::activeListBoxSelectionBackgroundColor):
26733         (WebCore::RenderThemeSafari::systemFont):
26734         (WebCore::RenderThemeSafari::isControlStyled):
26735         (WebCore::RenderThemeSafari::adjustRepaintRect):
26736         (WebCore::RenderThemeSafari::inflateRect):
26737         (WebCore::RenderThemeSafari::baselinePosition):
26738         (WebCore::RenderThemeSafari::controlSupportsTints):
26739         (WebCore::RenderThemeSafari::controlSizeForFont):
26740         (WebCore::RenderThemeSafari::sizeForFont):
26741         (WebCore::RenderThemeSafari::sizeForSystemFont):
26742         (WebCore::RenderThemeSafari::setSizeFromFont):
26743         (WebCore::RenderThemeSafari::setFontFromControlSize):
26744         (WebCore::RenderThemeSafari::controlSizeForSystemFont):
26745         (WebCore::RenderThemeSafari::paintCheckbox):
26746         (WebCore::RenderThemeSafari::checkboxSizes):
26747         (WebCore::RenderThemeSafari::checkboxMargins):
26748         (WebCore::RenderThemeSafari::setCheckboxSize):
26749         (WebCore::RenderThemeSafari::paintRadio):
26750         (WebCore::RenderThemeSafari::radioSizes):
26751         (WebCore::RenderThemeSafari::radioMargins):
26752         (WebCore::RenderThemeSafari::setRadioSize):
26753         (WebCore::RenderThemeSafari::setButtonPaddingFromControlSize):
26754         (WebCore::RenderThemeSafari::adjustButtonStyle):
26755         (WebCore::RenderThemeSafari::buttonSizes):
26756         (WebCore::RenderThemeSafari::buttonMargins):
26757         (WebCore::RenderThemeSafari::setButtonSize):
26758         (WebCore::RenderThemeSafari::paintButton):
26759         (WebCore::RenderThemeSafari::paintTextField):
26760         (WebCore::RenderThemeSafari::adjustTextFieldStyle):
26761         (WebCore::RenderThemeSafari::paintTextArea):
26762         (WebCore::RenderThemeSafari::adjustTextAreaStyle):
26763         (WebCore::RenderThemeSafari::popupButtonMargins):
26764         (WebCore::RenderThemeSafari::popupButtonSizes):
26765         (WebCore::RenderThemeSafari::popupButtonPadding):
26766         (WebCore::RenderThemeSafari::setPopupPaddingFromControlSize):
26767         (WebCore::RenderThemeSafari::paintMenuList):
26768         (WebCore::TopGradientInterpolate):
26769         (WebCore::BottomGradientInterpolate):
26770         (WebCore::MainGradientInterpolate):
26771         (WebCore::TrackGradientInterpolate):
26772         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
26773         (WebCore::RenderThemeSafari::paintMenuListButton):
26774         (WebCore::RenderThemeSafari::adjustMenuListStyle):
26775         (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
26776         (WebCore::RenderThemeSafari::menuListSizes):
26777         (WebCore::RenderThemeSafari::minimumMenuListSize):
26778         (WebCore::RenderThemeSafari::paintSliderTrack):
26779         (WebCore::RenderThemeSafari::paintSliderThumb):
26780         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
26781         (WebCore::RenderThemeSafari::paintSearchField):
26782         (WebCore::RenderThemeSafari::searchFieldSizes):
26783         (WebCore::RenderThemeSafari::setSearchFieldSize):
26784         (WebCore::RenderThemeSafari::adjustSearchFieldStyle):
26785         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
26786         (WebCore::RenderThemeSafari::cancelButtonSizes):
26787         (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle):
26788         (WebCore::RenderThemeSafari::resultsButtonSizes):
26789         (WebCore::RenderThemeSafari::adjustSearchFieldDecorationStyle):
26790         (WebCore::RenderThemeSafari::paintSearchFieldDecoration):
26791         (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationStyle):
26792         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
26793         (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle):
26794         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
26795         * rendering/RenderThemeSafari.h: Added.
26796         (WebCore::RenderThemeSafari::supportsControlTints):
26797         * rendering/RenderThemeWin.cpp:
26799 2007-01-21  Adam Roben  <aroben@apple.com>
26801         Build fix.
26803         * WebCore.vcproj/WebCore.vcproj: Added JSDocumentCustom.cpp.
26805 2007-01-19  Ada Chan  <adachan@apple.com>
26807         Build fix.
26809         * WebCore.vcproj/WebCore.vcproj:
26811 2007-01-19  Anders Carlsson  <acarlsson@apple.com>
26813         Build fix.
26815         * WebCore.vcproj/WebCore.vcproj:
26816         Add SVG files.
26818 2007-01-19  Anders Carlsson  <acarlsson@apple.com>
26820         Build fix.
26821         
26822         * platform/win/ContextMenuItemWin.cpp:
26823         (WebCore::ContextMenuItem::enabled):
26824         Use correct class name.
26826 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
26828         Reviewed by Adam.
26830         Remove some unused FrameWin functions.
26831         
26832         * bridge/win/FrameWin.cpp:
26833         (WebCore::FrameWin::~FrameWin):
26834         * bridge/win/FrameWin.h:
26835         * plugins/win/PluginViewWin.cpp:
26836         (WebCore::PluginViewWin::status):
26838 2007-01-18  Adam Roben  <aroben@apple.com>
26840         Build fix.
26842         * platform/win/ContextMenuItemWin.cpp:
26843         (WebCore::ContextMenu::enabled): Implemented.
26845 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
26847         Build fix.
26848         
26849         * WebCore.vcproj/WebCore.vcproj:
26850         * platform/win/GlyphMapWin.cpp: Removed.
26851         * platform/win/GlyphPageTreeNodeWin.cpp: Added.
26852         (WebCore::GlyphPage::fill):
26854 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
26856         Reviewed by Brady.
26858         Fix ownership handling of CFRequestRef. A ResourceRequest holds on to its CFRequestRef 
26859         and doesn't ref it when returning it. Also, implement willCacheResponse.
26860         
26861         * platform/network/cf/ResourceHandleCFNet.cpp:
26862         (WebCore::willSendRequest):
26863         (WebCore::willCacheResponse):
26864         (WebCore::ResourceHandle::start):
26865         * platform/network/cf/ResourceRequestCFNet.cpp:
26866         (WebCore::ResourceRequest::doUpdatePlatformRequest):
26868 2007-01-17  Brady Eidson  <beidson@apple.com>
26870         Reviewed by Maciej
26872         Final hookup of HTTP Auth plumbing - have the ResourceHandle actually call into
26873         CFNetwork for HTTP Auth.
26874         
26875         Also, deal with svn:eol-style issues on another batch of files that didn't have it set
26877         * platform/network/cf/ResourceHandleCFNet.cpp:
26878         (WebCore::ResourceHandle::receivedCredential):  Call into CFNetwork
26879         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):  Ditto
26880         (WebCore::ResourceHandle::receivedCancellation):  Copy Mac behavior by calling cancel on the handle
26882 2007-01-16  Brady Eidson  <beidson@apple.com>
26884         Reviewed by Anders
26886         Futher improvements/bug fixes to BString
26888         * platform/win/BString.cpp:
26889         (WebCore::BString::BString):
26890         (WebCore::BString::operator=):
26891         * platform/win/BString.h:
26893 2007-01-16  Brady Eidson  <beidson@apple.com>
26895         Reviewed by Ada, Adam, and Anders oh my!
26897         Add handle ==/!= operators to BString
26899         * platform/win/BString.cpp:
26900         (WebCore::operator ==):
26901         (WebCore::operator !=):
26902         * platform/win/BString.h:
26904 2007-01-16  Beth Dakin  <bdakin@apple.com>
26906         Reviewed by Adam.
26908         Fix for <rdar://problem/4874565> Draw context menus using CG
26910         * platform/win/ContextMenuItemWin.cpp:
26911         (WebCore::ContextMenuItem::type): Re-worked to be more forgiving.
26912         * platform/win/ContextMenuWin.cpp: No need for show() and hide()
26913         since WebKit takes care of this now.
26915 2007-01-15  Brady Eidson  <beidson@apple.com>
26917         Reviewed by Adam
26919         Hook up AuthenticationChallenge to CF network.  
26920         Call up through appropriate client methods through to WebFrame (FrameLoaderClient) at
26921         which point my upcoming implementation for the IWebURL<auth> classes will be used
26923         * WebCore.vcproj/WebCore.vcproj:
26924         * platform/network/cf/AuthenticationCF.cpp: Added.
26925         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26926         (WebCore::createCF):
26927         (WebCore::core):
26928         * platform/network/cf/AuthenticationCF.h: Added.
26929         * platform/network/cf/ResourceErrorCF.cpp: Added.
26930         (WebCore::ResourceError::ResourceError):
26931         (WebCore::ResourceError::operator CFStreamError):
26932         * platform/network/cf/ResourceHandleCFNet.cpp:
26933         (WebCore::didReceiveChallenge):
26934         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26935         (WebCore::ResourceHandle::receivedCredential):
26936         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26937         (WebCore::ResourceHandle::receivedCancellation):
26939 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
26941         Build fix.
26942         
26943         * WebCore.vcproj/WebCore.vcproj:
26944         Add ProgressTracker.[cpp|h]
26946 2007-01-12  Anders Carlsson  <acarlsson@apple.com>
26948         Reviewed by Darin.
26950         * loader/win/FrameLoaderWin.cpp:
26951         (WebCore::FrameLoader::didChangeTitle):
26952         Copied here from FrameLoaderMac.mm
26953         
26954         * platform/network/cf/ResourceHandleCFNet.cpp:
26955         (WebCore::ResourceHandle::start):
26956         Removed setting referrer and user-agend and added a check for null page.
26957         
26958         (WebCore::ResourceHandle::cancel):
26959         Don't call didFail.
26960         
26961         * platform/win/TemporaryLinkStubs.cpp:
26962         (FrameWin::getAppletInstanceForWidget):
26963         Use LOG_NOIMPL here.
26965 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
26967         * platform/network/cf/ResourceResponseCFNet.cpp:
26968         (WebCore::ResourceResponse::cfURLResponse):
26969         Add getter that I forgot to commit.
26970         
26971 2007-01-11  Brady Eidson  <beidson@apple.com>
26973         Reviewed by NOBODY.
26975         Make it build after my HTTP Auth OpenSource checkin
26977         * WebCore.vcproj/WebCore.vcproj:
26979 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
26981         Build fix.
26983         * WebCore.vcproj/WebCore.vcproj:
26984         * platform/win/TemporaryLinkStubs.cpp:
26985         (WebCore::Editor::advanceToNextMisspelling):
26987 2007-01-10  Steve Falkenburg  <sfalken@apple.com>
26989         Reviewed by Lou.
26991         <rdar://problem/4818840> Crash occurs after selecting Print Preview from under the File menu if no printer is selected
26992         
26993         * bridge/win/FrameWin.cpp:
26994         (WebCore::FrameWin::computePageRects): removed calls to setupRootForPrinting
26995         * bridge/win/FrameWin.h: removed setupRootForPrinting
26997 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
26999         Yet another build fix.
27000         
27001         * platform/win/TemporaryLinkStubs.cpp:
27002         (DocumentLoader::getResponseModifiedHeader):
27004 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
27006         Another build fix.
27007         
27008         * bridge/win/FrameWin.h:
27009         * loader/win/FrameLoaderWin.cpp:
27011 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
27013         Build fix.
27014         
27015         * platform/win/TemporaryLinkStubs.cpp:
27016         (ResourceHandle::setDefersLoading):
27018 2007-01-09  Steve Falkenburg  <sfalken@apple.com>
27020         Production build fix
27022         * WebCore.vcproj/WebCore.vcproj:
27024 2007-01-09  Anders Carlsson  <acarlsson@apple.com>
27026         Build fix.
27027         
27028         * platform/win/TextBoundariesWin.cpp:
27030 2007-01-08  Anders Carlsson  <acarlsson@apple.com>
27032         Remove FrameLoader functions that have been implemented.
27033         
27034         * platform/win/TemporaryLinkStubs.cpp:
27036 2007-01-08  Anders Carlsson  <acarlsson@apple.com>
27038         Build fix.
27039         
27040         * WebCore.vcproj/WebCore.vcproj:
27042 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
27044         Reviewed by Adam.
27046         Update temporary link stubs.
27047         
27048         * platform/win/TemporaryLinkStubs.cpp:
27049         (FrameLoader::referrer):
27050         (FrameLoader::overrideMediaType):
27051         (FrameLoader::checkLoadCompleteForThisFrame):
27052         (DocumentLoader::getResponseRefreshAndModifiedHeaders):
27053         (MainResourceLoader::create):
27054         (ResourceLoader::cancel):
27055         (ResourceLoader::load):
27056         (ResourceLoader::releaseResources):
27057         (ResourceLoader::addData):
27059 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
27061         Fix build.
27062         
27063         * platform/win/TemporaryLinkStubs.cpp:
27064         (ResourceLoader::cancel):
27065         (FrameLoader::didChangeTitle):
27066         (DocumentLoader::unreachableURL):
27068 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
27070         Fix the build.
27071         
27072         * WebCore.vcproj/WebCore.vcproj:
27073         * platform/network/cf/ResourceHandleCFNet.cpp:
27074         (WebCore::ResourceHandle::bufferedData):
27075         (WebCore::ResourceHandle::supportsBufferedData):
27076         * platform/win/TemporaryLinkStubs.cpp:
27077         (WebCore::CheckCacheObjectStatus):
27079 2007-01-04  David Hyatt  <hyatt@apple.com>
27081         Always use 1.0 as the synthetic bold offset for now.  Fixes bug 9534.
27083         Reviewed by olliej
27085         * platform/win/FontDataWin.cpp:
27086         (WebCore::FontData::platformInit):
27088 2007-01-03  Darin Adler  <darin@apple.com>
27090         Reviewed by Adele.
27092         - removed some obsolete source files
27094         * WebCore.vcproj/WebCore.vcproj: Removed obsolete files.
27096 2007-01-03  Beth Dakin  <bdakin@apple.com>
27098         Reviewed by John.
27100         Add stubs for all of the localized context menu item titles. The 
27101         stubs just return English Strings until we have a localization 
27102         solution in WebKit.
27104         * platform/win/TemporaryLinkStubs.cpp:
27105         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
27106         (WebCore::contextMenuItemTagDownloadLinkToDisk):
27107         (WebCore::contextMenuItemTagCopyLinkToClipboard):
27108         (WebCore::contextMenuItemTagOpenImageInNewWindow):
27109         (WebCore::contextMenuItemTagDownloadImageToDisk):
27110         (WebCore::contextMenuItemTagCopyImageToClipboard):
27111         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
27112         (WebCore::contextMenuItemTagCopy):
27113         (WebCore::contextMenuItemTagGoBack):
27114         (WebCore::contextMenuItemTagGoForward):
27115         (WebCore::contextMenuItemTagStop):
27116         (WebCore::contextMenuItemTagReload):
27117         (WebCore::contextMenuItemTagCut):
27118         (WebCore::contextMenuItemTagPaste):
27119         (WebCore::contextMenuItemTagNoGuessesFound):
27120         (WebCore::contextMenuItemTagIgnoreSpelling):
27121         (WebCore::contextMenuItemTagLearnSpelling):
27122         (WebCore::contextMenuItemTagSearchWeb):
27123         (WebCore::contextMenuItemTagLookUpInDictionary):
27124         (WebCore::contextMenuItemTagOpenLink):
27125         (WebCore::contextMenuItemTagIgnoreGrammar):
27126         (WebCore::contextMenuItemTagSpellingMenu):
27127         (WebCore::contextMenuItemTagShowSpellingPanel):
27128         (WebCore::contextMenuItemTagCheckSpelling):
27129         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
27130         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
27131         (WebCore::contextMenuItemTagFontMenu):
27132         (WebCore::contextMenuItemTagBold):
27133         (WebCore::contextMenuItemTagItalic):
27134         (WebCore::contextMenuItemTagUnderline):
27135         (WebCore::contextMenuItemTagOutline):
27136         (WebCore::contextMenuItemTagWritingDirectionMenu):
27137         (WebCore::contextMenuItemTagDefaultDirection):
27138         (WebCore::contextMenuItemTagLeftToRight):
27139         (WebCore::contextMenuItemTagRightToLeft):
27141 2007-01-03  Anders Carlsson  <acarlsson@apple.com>
27143         Reviewed by Geoff.
27145         <rdar://problem/4857027>
27146         ragnarok online misrenders (due to lack of support for windowless plugins)
27148         * plugins/win/PluginViewWin.cpp:
27149         (WebCore::PluginViewWin::updateWindow):
27150         Rename from updateHwnd since this now handles updating the clip rect for windowless plugins.
27151         
27152         (WebCore::PluginViewWin::paintMissingPluginIcon):
27153         New function which paints the missing plugin icon.
27154         
27155         (WebCore::PluginViewWin::paint):
27156         Do windowless painting here.
27157         
27158         (WebCore::PluginViewWin::handleKeyboardEvent):
27159         (WebCore::PluginViewWin::handleMouseEvent):
27160         (WebCore::PluginViewWin::handleEvent):
27161         New functions for handling mouse and keyboard events, translating them and handing them to the plugin.
27162         
27163         (WebCore::PluginViewWin::setNPWindowRect):
27164         Set correct window rect for windowless plugins.
27165         
27166         (WebCore::PluginViewWin::getValue):
27167         Add variable for containing HWND.
27168         
27169         (WebCore::PluginViewWin::setValue):
27170         Add windowless and transparent variables.
27171         
27172         (WebCore::PluginViewWin::invalidateRect):
27173         (WebCore::PluginViewWin::invalidateRegion):
27174         (WebCore::PluginViewWin::forceRedraw):
27175         Implement these.
27176         
27177         (WebCore::PluginViewWin::determineQuirks):
27178         Set quirks now that we support windowless flash.
27179         
27180         (WebCore::PluginViewWin::PluginViewWin):
27181         Only create the window if the plugin isn't windowless.
27182         
27183         * plugins/win/PluginViewWin.h:
27184         New declarations.
27185         
27186         * plugins/win/npapi.cpp:
27187         (NPN_InvalidateRect):
27188         (NPN_InvalidateRegion):
27189         (NPN_ForceRedraw):
27190         Implement these and forward them to the plugin view.
27192 2007-01-02  Brady Eidson  <beidson@apple.com>
27194         Reviewed by Lou
27196         Temporary Link Stub fix for Back/Forward cache landing in OpenSource
27198         * WebCore.vcproj/WebCore.vcproj:
27199         * platform/win/TemporaryLinkStubs.cpp:
27200         (DocumentLoader::request):
27201         (DocumentLoader::originalRequest):
27202         (DocumentLoader::title):
27203         (DocumentLoader::unreachableURL):
27204         (DocumentLoader::urlForHistory):
27205         (DocumentLoader::setCommitted):
27206         (DocumentLoader::prepareForLoadStart):
27207         (DocumentLoader::replaceRequestURLForAnchorScroll):
27208         (DocumentLoader::isClientRedirect):
27209         (DocumentLoader::isLoading):
27210         (DocumentLoader::getResponseRefreshAndModifiedHeaders):
27211         (FrameLoader::applyUserAgent):
27212         (FrameLoader::dataURLBaseFromRequest):
27213         (FrameLoader::load):
27214         (FrameLoader::opened):
27215         (ResourceHandle::willLoadFromCache):
27216         (WebCore::userIdleTime):
27217         (PageCache::close):
27219 2007-01-02  Anders Carlsson  <acarlsson@apple.com>
27221         Build fix.
27222         
27223         * WebCore.vcproj/WebCore.vcproj:
27225 2006-12-29  Geoffrey Garen  <ggaren@apple.com>
27226         
27227         Build fix.
27229         * bridge/win/FrameWin.cpp:
27230         (WebCore::FrameWin::bindingRootObject):
27231         * plugins/win/PluginViewWin.cpp:
27232         (WebCore::PluginViewWin::bindingInstance):
27234 2006-12-27  Oliver Hunt <oliver@apple.com>
27236         Build fix
27238         * WebCore.vcproj/WebCore.vcproj:
27239         * platform/graphics/win/ImageWin.cpp:
27240         (WebCore::BitmapImage::initPlatformData):
27241         (WebCore::BitmapImage::invalidatePlatformData):
27242         (WebCore::Image::loadPlatformResource):
27243         (WebCore::BitmapImage::getHBITMAP):
27245 2006-12-25  Geoffrey Garen  <ggaren@apple.com>
27247         Fixed build. Tsk, tsk, Oliver.
27249         * WebCore.vcproj/WebCore.vcproj:
27251 2006-12-25  Geoffrey Garen  <ggaren@apple.com>
27253         Reviewed by Oliver Hunt.
27255         Removed WebCoreSettings, cleaned up WebCore::Settings.
27257         * WebCore.vcproj/WebCore.vcproj: Added Settings.cpp to the project.
27259         * bridge/win/FrameWin.cpp: Updated to use new preferences names.
27260         (WebCore::FrameWin::bindingRootObject):
27261         (WebCore::FrameWin::windowScriptNPObject):
27263         * loader/win/FrameLoaderWin.cpp: ditto.
27264         (WebCore::FrameLoader::partClearedInBegin):
27266         * plugins/win/PluginViewWin.cpp: ditto.
27267         (WebCore::PluginViewWin::load):
27269 2006-12-22  Ada Chan  <adachan@apple.com>
27271         Reviewed by Anders.
27273         Build fix.
27275         * WebCore.vcproj/WebCore.vcproj:
27277 2006-12-22  Anders Carlsson  <acarlsson@apple.com>
27279         Build fix.
27280         
27281         * WebCore.vcproj/WebCore.vcproj:
27283 2006-12-22  John Sullivan  <sullivan@apple.com>
27285         Reviewed by Kevin Decker
27287         Renamed stub method name to match change in WebCore
27289         * platform/win/TemporaryLinkStubs.cpp:
27290         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
27291         renamed from markMisspellingsInAdjacentWords
27293 2006-12-20  Adam Roben  <aroben@apple.com>
27295         Reviewed by Hyatt.
27297         Fix: <rdar://4769797> REGRESSION: No focus rings
27299         * platform/win/GraphicsContextWin.cpp:
27300         (WebCore::GraphicsContext::drawFocusRing):
27301         * platform/win/TemporaryLinkStubs.cpp:
27302         (WebCore::focusRingColor): Changed to match the Aqua focus ring color.
27304 2006-12-20  David Hyatt  <hyatt@apple.com>
27306         Remove line width setting in font rendering now that GraphicsContext sets
27307         it for us.
27309         * platform/win/FontWin.cpp:
27310         (WebCore::Font::drawGlyphs):
27312 2006-12-20  David Hyatt  <hyatt@apple.com>
27314         Add support for stroking and filling of text to CSS.  Boomer side.  Same code as in FontMac.
27316         * platform/win/FontWin.cpp:
27317         (WebCore::Font::drawGlyphs):
27319 2006-12-19  Steve Falkenburg  <sfalken@apple.com>
27321         Remove non-existent header from vcproj
27323         * WebCore.vcproj/WebCore.vcproj:
27325 2006-12-19  Brady Eidson  <beidson@apple.com>
27327         Reviewed by Ada
27329         -Changed CFNetwork debugging output to use a logging channel
27330         -Added the url to each logging message - the debugging output was quite crippled without this
27331         
27332         * platform/network/cf/ResourceHandleCFNet.cpp:
27333         (WebCore::willSendRequest):
27334         (WebCore::didReceiveResponse):
27335         (WebCore::didReceiveData):
27336         (WebCore::didFinishLoading):
27337         (WebCore::didFail):
27338         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
27339         (WebCore::ResourceHandle::~ResourceHandle):
27340         (WebCore::ResourceHandle::start):
27342 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
27344         Reviewed by Geoff.
27346         <rdar://problem/4876963>
27347         Crash launching Boomer after all options deselected in pref->security
27348         
27349         * loader/win/FrameLoaderWin.cpp:
27350         (WebCore::FrameLoader::partClearedInBegin):
27351         Add check for JavaScript.
27353 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
27355         Reviewed by Kevin Decker.
27357         Add (currently disabled) plugin quirks. This is necessary in order to get the Flash plugin
27358         to request windowless plugins (which it only will do if it think it's running on a Mozilla browser).
27359         
27360         * plugins/win/PluginViewWin.cpp:
27361         (WebCore::PluginViewWin::userAgent):
27362         (WebCore::PluginViewWin::determineQuirks):
27363         (WebCore::PluginViewWin::PluginViewWin):
27364         * plugins/win/PluginViewWin.h:
27365         (WebCore::):
27366         * plugins/win/npapi.cpp:
27367         (NPN_UserAgent):
27369 2006-12-19  Brady Eidson  <beidson@apple.com>
27371         Change by Lou, reviewed by Brady
27373         Scrolling caused Desktop flickering as well as other strange
27374         flickering in the case of a missing plug-in
27376         * plugins/win/PluginViewWin.cpp:
27377         (WebCore::PluginViewWin::updateHwnd):
27379 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
27381         * WebCore.vcproj/WebCore.vcproj:
27382         Update for SVG changes.
27384 2006-12-18  Ada Chan  <adachan@apple.com>
27386         Reviewed by Adam.
27388         Removed scheduleClose() from FrameWin.  The implementation has
27389         been moved to Frame.cpp.                
27391         * bridge/win/FrameWin.h:
27392         * platform/win/TemporaryLinkStubs.cpp:
27393         (FrameWin::mimeTypeForFileName):
27395 2006-12-18  Anders Carlsson  <acarlsson@apple.com>
27397         Reviewed by Adam and Oliver.
27399         <rdar://problem/4856014> Target weekly ad doesn't work.
27400         
27401         Store the real base URL and use it for requests.
27402         
27403         * plugins/win/PluginViewWin.cpp:
27404         (WebCore::PluginViewWin::getURLNotify):
27405         (WebCore::PluginViewWin::getURL):
27406         (WebCore::PluginViewWin::handlePost):
27407         (WebCore::PluginViewWin::PluginViewWin):
27408         * plugins/win/PluginViewWin.h:
27410 2006-12-19  Darin Adler  <darin@apple.com>
27412         * platform/win/FontWin.cpp: (WebCore::Font::drawGlyphs): Fix build,
27413         wrong variable name.
27415 2006-12-18  David Hyatt  <hyatt@apple.com>
27417         Boomer side of my changes for filling/stroking of text.
27419         Reviewed by olliej
27421         * platform/win/FontWin.cpp:
27422         (WebCore::Font::drawGlyphs):
27424 2006-12-18  Alice Liu  <alice.liu@apple.com>
27426         Reviewed by Adam.
27428         <rdar://problem/4853363> hook up various deletion-related functions in WebView
27430         * WebCore.vcproj/WebCore.vcproj:
27431         Added file EditorDeleteAction.h
27433 2006-12-18  Kevin McCullough  <KMcCullough@apple.com>
27435         Reviewed by Oliver.
27437         - Remove CG header includes in OpenSource files
27439         * config.h:
27440         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
27442 2006-12-18  Adam Roben  <aroben@apple.com>
27444         Build fixes.
27446         * WebCore.vcproj/WebCore.vcproj: Removed deleted files.
27447         * platform/win/CursorWin.cpp: Added missing method.
27448         (WebCore::noneCursor):
27450 2006-12-16  Beth Dakin  <bdakin@apple.com>
27452         Reviewed by Adam (and partially Geoff).
27454         Boomer side of making WebCore Context Menus support state and
27455         enabled/disabled, and re-architecture of ContextMenuItem.
27457         * platform/win/ContextMenuItemWin.cpp: ContextMenuItem class holds
27458         the platformDescription as the sole member variable. Changes to
27459         account for this.
27460         (WebCore::ContextMenuItem::ContextMenuItem): Same.
27461         (WebCore::ContextMenuItem::releasePlatformDescription): Same.
27462         (WebCore::ContextMenuItem::type): Same
27463         (WebCore::ContextMenuItem::platformSubMenu): Same.
27464         (WebCore::ContextMenuItem::setType): Same.
27465         (WebCore::ContextMenuItem::setTitle): Same.
27466         (WebCore::ContextMenuItem::setSubMenu): Same.
27467         (WebCore::ContextMenuItem::setChecked): Same.
27468         (WebCore::ContextMenuItem::setEnabled): Same.
27469         * platform/win/ContextMenuWin.cpp:
27470         (WebCore::ContextMenu::insertItem): Takes ownership of the item by
27471         calling releasePlatformDescription()
27472         (WebCore::ContextMenu::appendItem): Same.
27473         (WebCore::ContextMenu::itemWithAction): This is the new at(). Since
27474         we are no longer using notifybypos, we instead need a way to find a
27475         menu item by its action. (Its ID.)
27476         (WebCore::ContextMenu::setPlatformDescription): No longer use
27477         notifybypos.
27479 2006-12-16  Adele Peterson  <adele@apple.com>
27481         RS by Adam.
27483         Removed TextField, RenderLineEdit classes.
27485         * WebCore.vcproj/WebCore.vcproj:
27486         * platform/win/TemporaryLinkStubs.cpp:
27488 2006-12-16  Adele Peterson  <adele@apple.com>
27490         Reviewed by Adam.
27492         Added PopupMenu and theme code for:
27493         <rdar://problem/4463829> Switch to use new search field implementation for <input type="search"> 
27495         * WebCore.vcproj/WebCore.vcproj:
27496         * platform/graphics/win/IconWin.cpp:
27497         (WebCore::Icon::Icon):
27498         * platform/win/PopupMenuWin.cpp:
27499         (WebCore::PopupMenu::setFocusedIndex):
27500         (WebCore::PopupWndProc):
27501         * platform/win/SearchPopupMenuWin.cpp: Added.
27502         (WebCore::SearchPopupMenu::SearchPopupMenu):
27503         (WebCore::autosaveKey):
27504         (WebCore::SearchPopupMenu::saveRecentSearches):
27505         (WebCore::SearchPopupMenu::loadRecentSearches):
27506         * rendering/RenderThemeWin.cpp:
27507         (WebCore::RenderThemeWin::paintSearchField):
27508         (WebCore::RenderThemeWin::adjustSearchFieldStyle):
27509         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
27510         (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
27511         (WebCore::RenderThemeWin::adjustSearchFieldDecorationStyle):
27512         (WebCore::RenderThemeWin::paintSearchFieldDecoration):
27513         (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationStyle):
27514         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
27515         (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
27516         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
27517         * rendering/RenderThemeWin.h:
27519 2006-12-15  Anders Carlson  <acarlsson@apple.com>
27521         * platform/win/TemporaryLinkStubs.cpp:
27522         Remove DocumentLoader::isStopped because it's now in DocumentLoader.cpp.
27523         
27524 2006-12-15  Geoffrey Garen  <ggaren@apple.com>
27526         I'm in ur prjct, fxng ur build.
27527         
27528         * WebCore.vcproj/WebCore.vcproj:
27529         * platform/win/TemporaryLinkStubs.cpp:
27530         (ResourceHandle::loadResourceSynchronously):
27532 2006-12-14  Geoffrey Garen  <ggaren@apple.com>
27534         Reviewed by Brady Eidson.
27535         
27536         Fixed <rdar://problem/4760682> Crash clicking nav links at left loading 
27537         www.tivofaq.com
27538         
27539         The underlying problem is that we can't resize framesets. I've filed that
27540         as <rdar://problem/4885227>.
27541         
27542         I've fixed the proximate problem: we were interpreting a click as a frameset
27543         resize, because the subframe event handler was returning false. A Subframe 
27544         event handler needs to return true to indicate that the subframe has handled 
27545         the event. This is how the Mac works, despite the plethora of convoluted code 
27546         suggesting otherwise.
27547         
27548         We should really remove these meaningless return values and unify Mac and 
27549         Windows event handling, but that's beyond the scope of this patch.
27551         * page/win/EventHandlerWin.cpp:
27552         (WebCore::EventHandler::passMousePressEventToSubframe):
27553         (WebCore::EventHandler::passMouseMoveEventToSubframe):
27554         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
27555         (WebCore::EventHandler::passWheelEventToSubframe):
27557 2006-12-14  Adele Peterson  <adele@apple.com>
27559         Reviewed by Adam. 
27561         Update PopupMenu code to use new PopupMenuClient instead of RenderMenuList.
27563         * platform/win/PopupMenuWin.cpp:
27564         (WebCore::PopupMenu::PopupMenu):
27565         (WebCore::PopupMenu::show):
27566         (WebCore::PopupMenu::calculatePositionAndSize):
27567         (WebCore::PopupMenu::setFocusedIndex):
27568         (WebCore::PopupMenu::focusedIndex):
27569         (WebCore::PopupMenu::focusFirst):
27570         (WebCore::PopupMenu::focusLast):
27571         (WebCore::PopupMenu::down):
27572         (WebCore::PopupMenu::up):
27573         (WebCore::PopupMenu::paint):
27574         (WebCore::PopupWndProc):
27576 2006-12-14  Steve Falkenburg  <sfalken@apple.com>
27578         Build fix.
27580         * platform/win/TemporaryLinkStubs.cpp:
27581         (SubresourceLoader::didCancel):
27583 2006-12-14  Steve Falkenburg  <sfalken@apple.com>
27585         Production build fix. Added JSSVGPODTypeWrapper.h to the vcproj.
27587         * WebCore.vcproj/WebCore.vcproj:
27589 2006-12-14  Adam Roben  <aroben@apple.com>
27591         Reviewed by Adele.
27593         Build fix.
27595         * platform/win/TemporaryLinkStubs.cpp:
27596         (DocumentLoader::URL):
27597         (ResourceHandle::loadResourceSynchronously):
27599 2006-12-14  Anders Carlsson  <acarlsson@apple.com>
27601         Fix the build.
27602         
27603         * platform/win/TemporaryLinkStubs.cpp:
27604         (FrameLoader::loadResourceSynchronously):
27605         (ResourceHandle::loadResourceSynchronously):
27607 2006-12-13  Anders Carlsson  <acarlsson@apple.com>
27609         Fix the build.
27610         
27611         * platform/win/TemporaryLinkStubs.cpp:
27612         (PolicyCheck::call):
27613         (DocumentLoader::URL):
27615 2006-12-13  Geoffrey Garen  <ggaren@apple.com>
27617         Reviewed by Darin Adler, Dave Hyatt.
27618         
27619         Fixed <rdar://problem/4840261> Frame::setIsActive not called when frames 
27620         are focused/unfocused
27621         
27622         Minor problems remain with focus in frames, but basic editing / cursor
27623         focus works.
27624         
27625         I moved tracking of the focused frame from the Widget hiearchy to Page's
27626         FocusController. Not all widgets are frames, so this change cleaned up a 
27627         dubious static cast. Also, the DOM needs to track frame focus because (1) 
27628         it needs to respond to focus changes and (2) you can focus an element / 
27629         frame even before it has a renderer / widget.
27631         * page/win/EventHandlerWin.cpp:
27632         (WebCore::EventHandler::focusDocumentView): Implemented. This function is
27633         poorly named, based on the Mac design.
27634         (WebCore::PluginViewWin::hasFocus): Added for completeness. It's not really
27635         used on Windows, though.
27637 2006-12-13  Steve Falkenburg  <sfalken@apple.com>
27639         Reviewed by Adam.
27641         Add missing ForwardingHeaders to project
27643         * WebCore.vcproj/WebCore.make: Fixed line endings
27644         * WebCore.vcproj/WebCore.vcproj: Added missing headers
27646 2006-12-12  Steve Falkenburg  <sfalken@apple.com>
27648         Reviewed by Adam.
27650         Production build fix
27652         * WebCore.vcproj/build-generated-files.sh:
27654 2006-12-12  Alice Liu  <alice.liu@apple.com>
27656         Reviewed by Geoff.
27658         Fixed <rdar://problem/4853199> extra whitespace at beginning and end of pasted fragment into contenteditable region
27659         
27660         * WebCore.vcproj/WebCore.vcproj:
27661         * platform/win/PasteboardWin.cpp:
27662         (WebCore::Pasteboard::documentFragment):
27664 2006-12-12  Adam Roben  <aroben@apple.com>
27666         Reviewed by Anders.
27668         Fixed use of min/max macros (again).
27670         * WebCore.vcproj/WebCore.vcproj: Make sure we include ForwardingHeaders
27671         before any include directories so that we get the newest versions
27672         of our headers.
27673         * config.h: Move the fake #defines of min/max out of #if
27674         PLATFORM(WIN_OS) since this is useful in general.
27675         * platform/win/BString.cpp: Include windows.h
27676         * platform/win/BString.h: Forward-declare BSTR so we don't have to
27677         include windows.h.
27679 2006-12-12  Geoffrey Garen  <ggaren@apple.com>
27681         Reviewed by Adam Roben, Dave Hyatt, Darin Adler.
27683         Added FocusController to project.
27685         * WebCore.vcproj/WebCore.vcproj:
27687 2006-12-12  Anders Carlsson  <acarlsson@apple.com>
27689         * loader/win/ResourceLoaderWin.cpp:
27690         * platform/network/cf/ResourceHandleCFNet.cpp:
27691         (WebCore::ResourceHandle::start):
27692         * platform/win/TemporaryLinkStubs.cpp:
27693         (ResourceHandle::loadsBlocked):
27694         Update for changes to ResourceHandle.
27696 2006-12-13  Darin Adler  <darin@apple.com>
27698         - fix build
27700         * WebCore.vcproj/WebCore.vcproj: Added missing files, removed obsolete files.
27702 2006-12-11  Adam Roben  <aroben@apple.com>
27704         Build fix.
27706         * WebCore.vcproj/WebCore.vcproj: Added missing files to project.
27708 2006-12-11  Steve Falkenburg  <sfalken@apple.com>
27710         Production build fix.
27711         Remove platform/UChar.h from our vcproj, since it doesn't exist anymore.
27713         * WebCore.vcproj/WebCore.vcproj:
27715 2006-12-11  Alice Liu  <alice.liu@apple.com>
27717         Reviewed by ggaren.
27719         Fixed <rdar://problem/4854901> "Copy Link" and "Copy Image Address" context menu items don't work
27720         And some cleanup of PlatformMouseEvent(Win)
27722         * page/win/EventHandlerWin.cpp:
27723         (WebCore::EventHandler::handleDrag):
27724         Removed unnecessary check for mouse event type
27725         
27726         * platform/win/PasteboardWin.cpp:
27727         
27728         (WebCore::PasteboardOwnerWndProc):
27729         (WebCore::createGlobalData):
27730         Added more overloaded implemtations and renamed from createHandle
27731         
27732         (WebCore::markupToCF_HTML):
27733         Changed to handle less-specific input and renamed from createCF_HTML
27734         
27735         (WebCore::urlToMarkup):
27736         (WebCore::Pasteboard::writeURL):
27737         Added these. 
27738         
27739         (WebCore::replaceNBSP):
27740         Moved out of Pasteboard class
27741         
27742         (WebCore::Pasteboard::clear):
27743         Renamed from clearTypes.
27744         
27745         (WebCore::Pasteboard::writeSelection):
27746         (WebCore::Pasteboard::canSmartReplace):
27747         (WebCore::Pasteboard::plainText):
27748         (WebCore::Pasteboard::documentFragment):
27749         Trivial cleanup of these.
27750         
27751         * platform/win/PlatformMouseEventWin.cpp:
27752         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
27753         Removed anything having to do with unnecessary m_type
27755 2006-12-11  Darin Adler  <darin@apple.com>
27757         Reviewed by Brady.
27759         - http://bugs.webkit.org/show_bug.cgi?id=11794
27760           fix lifetime problems affecting Frame's ownerElement pointer
27762         * WebCore.vcproj/WebCore.vcproj: Update for added files.
27764         * bridge/win/FrameWin.h:
27765         * bridge/win/FrameWin.cpp: (WebCore::FrameWin::FrameWin):
27766         * loader/win/FrameLoaderWin.cpp: (WebCore::FrameLoader::createFrame):
27767         Changed to use HTMLFrameOwnerElement.
27769         * platform/win/TemporaryLinkStubs.cpp: (FrameLoader::load):
27770         Changed to use HTMLFormElement.
27772 2006-12-11  Beth Dakin  <bdakin@apple.com>
27774         Reviewed by Adam.
27776         Build fix from Nick Zimmerman's last check-in.
27778         * WebCore.vcproj/WebCore.vcproj:
27780 2006-12-09  Adam Roben  <aroben@apple.com>
27782         Reviewed by Hyatt.
27784         Use num-cpus to determine the number of jobs make should run
27785         concurrently.
27787         * WebCore.vcproj/build-generated-files.sh:
27789 2006-12-09  Adam Roben  <aroben@apple.com>
27791         Reviewed by Hyatt.
27793         Fix: <rdar://problem/4860184> Can't select context menu items with the
27794         right mouse button
27796         * platform/win/ContextMenuWin.cpp:
27797         (WebCore::ContextMenu::show):
27799 2006-12-09  Adam Roben  <aroben@apple.com>
27801         Reviewed by Darin.
27803         Build fixes after OpenSource r18098 and r18106.
27805         * WebCore.vcproj/WebCore.vcproj:
27806             - Changed include paths to reflect the now-flattened JSCore headers.
27807             - Added missing files to project.
27808             - Changed post-build step to also copy ForwardingHeaders.
27809             - Removed unnecessary definition of WTF_PLATFORM_CF from project
27810               file (it's already defined in config.h).
27811         * platform/win/TextBoundariesWin.cpp: Fixed up includes and renamed
27812         function calls.
27813         (WebCore::findNextWordFromIndex):
27814         (WebCore::findWordBoundary):
27816 2006-12-08  Adam Roben  <aroben@apple.com>
27818         Rubberstamped by Anders.
27820         * platform/win/FontPlatformDataWin.cpp:
27821         (WebCore::FontPlatformData::FontPlatformData): Fix use of min().
27823 2006-12-08  Adam Roben  <aroben@apple.com>
27825         Build fix.
27827         * WebCore.vcproj/WebCore.vcproj:
27829 2006-12-07  Beth Dakin  <bdakin@apple.com>
27831         Reviewed by Maciej.
27833         Add a new member variable to ContectMenuItem to hold on to the sub-
27834         menu. The new member variable is an OwnPtr<ContextMenu>. Not doing 
27835         this breaks sub-menus on Boomer since the menu items are no longer 
27836         static.
27838         * platform/win/ContextMenuItemWin.cpp:
27839         (WebCore::ContextMenuItem::ContextMenuItem):
27840         (WebCore::ContextMenuItem::platformSubMenu):
27841         (WebCore::ContextMenuItem::setSubMenu):
27843 2006-12-07  Kevin McCullough  <kmccullough@apple.com>
27845         Reviewed by.
27847         Fixed previous comment
27849         * ChangeLog:
27851 2006-12-07  Kevin McCullough  <kmccullough@apple.com>
27853         Reviewed by Geof.
27855         - keyDown events must be followed by keyPressed events and before keyUp events.
27857         * bridge/win/FrameWin.cpp:
27858         (WebCore::FrameWin::keyEvent):
27860 2006-12-07  Beth Dakin  <bdakin@apple.com>
27862         Reviewed by Brady.
27864         New link stub for load() function used by 
27865         ContextMenuItemTagOpenLink action.
27867         * platform/win/TemporaryLinkStubs.cpp:
27868         (FrameLoader::load):
27870 2006-12-07  Ada Chan  <adachan@apple.com>
27872         Reviewed by Steve and Anders.
27874         <rdar://4866288> Crash on boomer quit
27875         - don't close the themes on termination, since uxtheme should do that anyway.
27877         * rendering/RenderThemeWin.cpp:
27878         (WebCore::RenderThemeWin::~RenderThemeWin):
27880 2006-12-06  Ada Chan  <adachan@apple.com>
27882         Reviewed by Maciej.
27884         Fixed a couple of things while investigating <rdar://4866288> (note this doesn't fix the crash yet):
27885         - we forgot to initialize m_sliderTheme
27886         - we did the wrong null check when getting the slider theme.
27888         * rendering/RenderThemeWin.cpp:
27889         (WebCore::RenderThemeWin::RenderThemeWin):
27890         (WebCore::RenderThemeWin::sliderTheme):
27892 2006-12-06  Anders Carlsson  <acarlsson@apple.com>
27894         Fix the build.
27895         
27896         * platform/network/cf/ResourceHandleCFNet.cpp:
27897         (WebCore::didReceiveData):
27898         (WebCore::didFail):
27899         (WebCore::ResourceHandle::start):
27900         (WebCore::ResourceHandle::cancel):
27902 2006-12-06  Anders Carlsson  <acarlsson@apple.com>
27904         Reviewed by Adam.
27906         Modify PluginStreamWin to use a SubresourceLoader instead of a ResourceHandle.
27908         * plugins/win/PluginStreamWin.cpp:
27909         (WebCore::PluginStreamWin::PluginStreamWin):
27910         (WebCore::PluginStreamWin::~PluginStreamWin):
27911         (WebCore::PluginStreamWin::start):
27912         (WebCore::PluginStreamWin::stop):
27913         (WebCore::PluginStreamWin::deliverData):
27914         (WebCore::PluginStreamWin::didReceiveResponse):
27915         (WebCore::PluginStreamWin::didReceiveData):
27916         (WebCore::PluginStreamWin::didFail):
27917         (WebCore::PluginStreamWin::didFinishLoading):
27918         * plugins/win/PluginStreamWin.h:
27919         * plugins/win/PluginViewWin.cpp:
27920         (WebCore::PluginViewWin::performRequest):
27921         (WebCore::PluginViewWin::load):
27923 2006-12-06  Anders Carlsson  <acarlsson@apple.com>
27925         Build fixes.
27926         
27927         * WebCore.vcproj/WebCore.vcproj:
27928         * platform/win/TemporaryLinkStubs.cpp:
27929         (FrameWin::scheduleClose):
27931 2006-12-05  John Sullivan  <sullivan@apple.com>
27933         Try to keep the windows build happy with Frame -> Editor changes...
27935         * bridge/win/FrameWin.h:
27936         removed declarations of spelling and grammar functions
27938         * platform/win/TemporaryLinkStubs.cpp:
27939         changed spelling and grammar functions from FrameWin:: to Editor::
27940         (WebCore::Editor::isSelectionMisspelled):
27941         (WebCore::Editor::isSelectionUngrammatical):
27942         (WebCore::Editor::guessesForMisspelledSelection):
27943         (WebCore::Editor::guessesForUngrammaticalSelection):
27944         (WebCore::Editor::markMisspellingsInAdjacentWords):
27945         (WebCore::Editor::advanceToNextMisspelling):
27947 2006-12-05  Anders Carlsson  <acarlsson@apple.com>
27949         Reviewed by Maciej.
27951         Don't delete the internal pointer anymore since it's an OwnPtr now.
27952         
27953         * platform/network/cf/ResourceHandleCFNet.cpp:
27954         (WebCore::ResourceHandle::~ResourceHandle):
27956 2006-12-05  Steve Falkenburg  <sfalken@apple.com>
27958         Fix the build
27960         * platform/win/TemporaryLinkStubs.cpp:
27962 2006-12-05  Steve Falkenburg  <sfalken@apple.com>
27964         Production build fix.
27965         ...and add ImageAnimationObserver.h into its new location.
27967         * WebCore.vcproj/WebCore.vcproj:
27969 2006-12-05  Steve Falkenburg  <sfalken@apple.com>
27971         Production build fix.
27972         Remove ImageAnimationObserver.h from vcproj.
27974         * WebCore.vcproj/WebCore.vcproj:
27976 2006-12-05  John Sullivan  <sullivan@apple.com>
27978         Reviewed by Geoff Garen
27980         Changes to keep up with Frame -> Editor changes in WebCore
27982         * bridge/win/FrameWin.h:
27983         remove ignoreSpelling() and learnSpelling()
27985         * platform/win/TemporaryLinkStubs.cpp:
27986         (WebCore::Editor::ignoreSpelling):
27987         moved from FrameWin to Editor
27988         (WebCore::Editor::learnSpelling):
27989         ditto
27991 2006-12-05  Alice Liu  <alice.liu@apple.com>
27993         Build fix.
27994         
27995         * platform/win/CursorWin.cpp:
27996         (WebCore::copyCursor):
27998 2006-12-05  Alice Liu  <alice.liu@apple.com>
28000         Build fix.
28001         
28002         * bridge/win/FrameWin.h:
28003         added missing declarations for the functions in John's checkin, below. 
28005 2006-12-05  John Sullivan  <sullivan@apple.com>
28007         * platform/win/TemporaryLinkStubs.cpp:
28008         (WebCore::FrameWin::isSelectionUngrammatical):
28009         (WebCore::FrameWin::guessesForUngrammaticalSelection):
28010         added stubs to correspond to new Frame functions
28012 2006-12-04  Anders Carlsson  <acarlsson@apple.com>
28014         Reviewed by Darin.
28016         * WebCore.vcproj/WebCore.vcproj:
28017         Add SubresourceClient.h
28018         
28019         * platform/network/cf/ResourceHandleCFNet.cpp:
28020         (WebCore::didReceiveResponse):
28021         Get rid of the receivedResponse call.
28022         
28023         (WebCore::didFinishLoading):
28024         Get rid of the receivedAllData call, that's handled by the subresource loader now.
28026 2006-12-04  Darin Adler  <darin@apple.com>
28028         Reviewed by Adele.
28030         * WebCore.vcproj/WebCore.vcproj: Update for new UIEventWithKeyState.cpp file.
28032 2006-12-04  Kevin McCullough  <KMcCullough@apple.com>
28034         Reviewed by Darin.
28036         - removed the guards for the "multiple forms submission" issue, which may not be
28037           an issue anymore and the guards prevent perfectly legitimate websites from
28038           working correctly.
28040         * bridge/win/FrameWin.cpp:
28041         (WebCore::FrameWin::keyEvent):
28042         * config.h:
28043         * loader/win/FrameLoaderWin.cpp:
28044         (WebCore::FrameLoader::submitForm):
28046 2006-12-04  Darin Adler  <darin@apple.com>
28048         Reviewed by Alice.
28050         * platform/win/PasteboardWin.cpp: (WebCore::Pasteboard::generalPasteboard):
28051         Got rid of s_generalPasteboard. Also removed definition of destructor.
28053 2006-12-04  Anders Carlsson  <acarlsson@apple.com>
28055         Reviewed by Darin, Geoff.
28057         Get rid of ref() in ResourceHandle::start() and remove all uses of kill().
28058         
28059         * platform/network/cf/ResourceHandleCFNet.cpp:
28060         (WebCore::didFinishLoading):
28061         (WebCore::didFail):
28062         (WebCore::ResourceHandle::start):
28063         * plugins/win/PluginStreamWin.cpp:
28064         (WebCore::PluginStreamWin::stop):
28066 2006-12-04  Alice Liu  <alice.liu@apple.com>
28068         Reviewed by Oliver.
28070         Fixed <rdar://problem/4822632> clicks don't work if you move mouse immediately
28071         This bug was fixed by implementing EventHandler::handleDrag.  The part of that
28072         function after the drag hysteresis is exceeded remains unimplemented until 
28073         drag&drop is implemented. 
28075         * page/win/EventHandlerWin.cpp:
28076         (WebCore::dragState):
28077         (WebCore::EventHandler::dragHysteresisExceeded):
28078         (WebCore::EventHandler::handleDrag):
28079         (WebCore::EventHandler::handleMouseUp):
28080         (WebCore::EventHandler::shouldDragAutoNode):
28081         (WebCore::EventHandler::focusDocumentView):
28082         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
28083         * platform/win/PlatformMouseEventWin.cpp:
28084         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
28086 2006-12-01  Beth Dakin  <bdakin@apple.com>
28088         Reviewed by Adam.
28090         Support for sub-menus in WebCore context menus. Also some
28091         adjustments to make ContextMenuItem class a wrapper for the
28092         platformDescription. (In this case, a wrapper for LPMENUITEMINFO.)
28094         * WebCore.vcproj/WebCore.vcproj:
28095         * platform/win/ContextMenuItemWin.cpp:
28096         (WebCore::ContextMenuItem::ContextMenuItem):
28097         (WebCore::ContextMenuItem::platformDescription):
28098         (WebCore::ContextMenuItem::action):
28099         (WebCore::ContextMenuItem::title):
28100         (WebCore::ContextMenuItem::platformSubMenu):
28101         (WebCore::ContextMenuItem::setAction):
28102         (WebCore::ContextMenuItem::setTitle):
28103         (WebCore::ContextMenuItem::setSubMenu):
28104         * platform/win/ContextMenuWin.cpp:
28105         (WebCore::ContextMenu::ContextMenu):
28106         (WebCore::ContextMenu::insertItem):
28108 2006-11-30  Geoffrey Garen  <ggaren@apple.com>
28110         Rubber Stamped by Anders Carlsson.
28112         Global rename of Document::focusNode to Document::focusedNode. 'focusNode'
28113         suggested a command, and conflicted with a different meaning for 'focusNode'
28114         in the Mozilla selection API.
28116         * bridge/win/FrameWin.cpp:
28117         (WebCore::FrameWin::keyEvent):
28119 2006-11-30  Adam Roben  <aroben@apple.com>
28121         Lather, rinse, repeat.
28123         * platform/win/GraphicsContextWin.cpp:
28124         (WebCore::contextForImage):
28126 2006-11-30  Adam Roben  <aroben@apple.com>
28128         Build fix.
28130         * platform/graphics/cg/GraphicsContextCG.cpp: Removed. This file was
28131         un-forked a while ago.
28132         * platform/win/ContextMenuWin.cpp:
28133         (WebCore::ContextMenu::platformDescription):
28134         * platform/win/GraphicsContextWin.cpp:
28135         (WebCore::contextForImage):
28137 2006-11-30  Adam Roben  <aroben@apple.com>
28139         Build fix. 
28142         * WebCore.vcproj/WebCore.vcproj:
28143         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
28144         (WebCore::SVGResourceFilter::prepareFilter):
28145         (WebCore::SVGResourceFilter::applyFilter):
28146         (WebCore::SVGResourceFilter::createFilterEffect):
28147         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
28148         (WebCore::SVGResourceMasker::applyMask):
28150 2006-11-30  Geoffrey Garen  <ggaren@apple.com>
28152         Reviewed by Beth Dakin.
28153         
28154         Fixed <rdar://problem/4844838> Whole document leak seen 
28155         running HTML iBench
28157         * loader/win/FrameLoaderWin.cpp: Removed custom implementation
28158         for detachFromParent, since FrameLoader has a cross-platform
28159         version now.
28161 2006-11-30  Steve Falkenburg  <sfalken@apple.com>
28163         Production build fix.  Add missing header files to vcproj.
28165         * WebCore.vcproj/WebCore.vcproj:
28167 2006-11-29  Anders Carlsson  <acarlsson@apple.com>
28169         Build fix.
28170         
28171         * platform/win/TemporaryLinkStubs.cpp:
28172         Remove unused function.
28174 2006-11-29  Anders Carlsson  <acarlsson@apple.com>
28176         Reviewed by Oliver.
28178         Fix fast/dom/xmlhttprequest-get layout test failure.
28180         * platform/network/cf/ResourceResponseCFNet.cpp:
28181         (WebCore::ResourceResponse::doUpdateResourceResponse):
28182         Initialize the status code to 0 for non-http responses.
28184 2006-11-29  Anders Carlsson  <acarlsson@apple.com>
28186         Reviewed by Darin.
28188         Have ResourceResponse hold on to the platform object and do lazy
28189         initialization of the data members.
28190         
28191         * WebCore.vcproj/WebCore.vcproj:
28192         * platform/network/cf/ResourceHandleCFNet.cpp:
28193         (WebCore::willSendRequest):
28194         (WebCore::didReceiveResponse):
28195         * platform/network/cf/ResourceRequestCFNet.h: Removed.
28196         * platform/network/cf/ResourceResponseCFNet.cpp:
28197         (WebCore::ResourceResponse::doUpdateResourceResponse):
28198         * platform/network/cf/ResourceResponseCFNet.h: Removed.
28199         * platform/win/MimeTypeRegistryWin.cpp:
28201 2006-11-28  Geoffrey Garen  <ggaren@apple.com>
28203         Reviewed by Beth Dakin.
28205         Fixed <rdar://problem/4844855> Should clarify when to create clients in 
28206         the WebCore client API
28207         
28208         All clients must now be supplied as constructor arguments. This clarifies 
28209         when you need to create clients, and also guarantees that objects can't 
28210         (for the most part) be in a clientless state.
28212         Layout tests pass. No leaks reported.
28213         
28214         * bridge/win/FrameWin.cpp:
28215         (WebCore::FrameWin::FrameWin):
28216         * bridge/win/FrameWin.h:
28218 2006-11-28  Adam Roben  <aroben@apple.com>
28220         Reviewed by Ada.
28222         Add platform-specific constructor/destructor to ContextMenu so we can
28223         properly dispose of the HMENU.
28225         * platform/win/ContextMenuWin.cpp:
28226         (WebCore::ContextMenu::ContextMenu):
28227         (WebCore::ContextMenu::~ContextMenu):
28228         (WebCore::ContextMenu::itemCount):
28229         (WebCore::ContextMenu::insertItem):
28230         (WebCore::ContextMenu::at):
28231         (WebCore::ContextMenu::setPlatformDescription):
28232         (WebCore::ContextMenu::show):
28234 2006-11-28  Steve Falkenburg  <sfalken@apple.com>
28236         B&I build fix
28238         * WebCore.vcproj/WebCore.vcproj:
28240 2006-11-28  Anders Carlsson  <acarlsson@apple.com>
28242         Fix the build by doing the same changes that were done in the open source WebCore repo.
28243         
28244         * WebCore.vcproj/WebCore.vcproj:
28245         * platform/network/cf/ResourceHandleCFNet.cpp:
28246         (WebCore::willSendRequest):
28247         (WebCore::didReceiveResponse):
28248         (WebCore::ResourceHandle::start):
28249         * platform/network/cf/ResourceRequestCFNet.cpp:
28250         (WebCore::ResourceRequest::cfURLRequest):
28251         (WebCore::addHeadersFromHashMap):
28252         (WebCore::ResourceRequest::doUpdatePlatformRequest):
28253         (WebCore::ResourceRequest::doUpdateResourceRequest):
28254         * platform/network/cf/ResourceRequestCFNet.h:
28256 2006-11-28  Adam Roben  <aroben@apple.com>
28258         Reviewed by Ada and Beth.
28260         Fix: <rdar://problem/4601523> Contextual Menus (in web content)
28262         * WebCore.vcproj/WebCore.vcproj: Defined WEBCORE_CONTEXT_MENUS to turn
28263         on the context menus. Added new ContextMenuItem files.
28264         * platform/win/ContextMenuItemWin.cpp: Added.
28265         (WebCore::ContextMenuItem::ContextMenuItem):
28266         * platform/win/ContextMenuWin.cpp:
28267         (WebCore::ContextMenu::itemCount): Updated to match ContextMenu.h and
28268         ContextMenuItem changes.
28269         (WebCore::ContextMenu::insertItem): Ditto.
28270         (WebCore::ContextMenu::appendItem): Ditto.
28271         (WebCore::ContextMenu::at): New method, similar to Vector<T>::at.
28272         (WebCore::ContextMenu::setPlatformDescription): Use MIM_APPLYTOSUBMENUS
28273         to make sure all submenus get the MNS_NOTIFYBYPOS style.
28274         (WebCore::ContextMenu::show): Implemented.
28276         Updates to match OpenSource changes.
28278         * loader/win/FrameLoaderWin.cpp: Added missing #include.
28279         * page/win/EventHandlerWin.cpp: Return bools to signify whether the
28280         event was handled.
28281         (WebCore::EventHandler::passMousePressEventToSubframe):
28282         (WebCore::EventHandler::passMouseMoveEventToSubframe):
28283         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
28284         (WebCore::EventHandler::passWheelEventToSubframe):
28285         (WebCore::EventHandler::passMousePressEventToScrollbar):
28286         * platform/win/PlatformScrollBar.h: Ditto.
28287         * platform/win/PlatformScrollBarWin.cpp: Ditto.
28288         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
28289         (WebCore::PlatformScrollbar::handleMouseOutEvent):
28290         (WebCore::PlatformScrollbar::handleMousePressEvent):
28291         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
28293         Small fix inspired by WebView.cpp changes.
28295         * platform/win/PopupMenuWin.cpp:
28296         (WebCore::PopupMenu::calculatePositionAndSize): Use ::ClientToScreen to
28297         do coordinate conversion instead of doing it ourselves.
28299 2006-11-28  Anders Carlsson  <acarlsson@apple.com>
28301         Reviewed by Adam.
28302         
28303         <rdar://problem/4850883>
28304         Crash loading pdf page (W4 form)
28305         
28306         * platform/win/TemporaryLinkStubs.cpp:
28307         (FrameLoader::redirectDataToPlugin):
28308         * loader/win/FrameLoaderWin.cpp:
28309         (WebCore::FrameLoader::redirectDataToPlugin):
28310         Move the function to FrameLoaderWin.cpp and get rid of STOP_NOIMPL() for now, 
28311         we do things differently on Windows so this function doesn't need do do anything.
28312         I've filed 4852889 about redoing this once the loader has been ported.
28314 2006-11-28  Alice Liu  <alice.liu@apple.com>
28316         Reviewed by Ada, Adam, and Lou.
28318         * WebCore.vcproj/WebCore.vcproj:
28319         Added the files listed below
28320         
28321         * platform/win/ClipboardWin.h: Added.
28322         * platform/win/ClipboardWin.cpp: Added.
28323         Added the minimum stubs for the ClipboardWin class
28324         (WebCore::ClipboardWin::isForDragging):
28325         (WebCore::ClipboardWin::dropEffect):
28326         (WebCore::ClipboardWin::setDropEffect):
28327         (WebCore::ClipboardWin::effectAllowed):
28328         (WebCore::ClipboardWin::setEffectAllowed):
28329         (WebCore::ClipboardWin::clearData):
28330         (WebCore::ClipboardWin::clearAllData):
28331         (WebCore::ClipboardWin::getData):
28332         (WebCore::ClipboardWin::setData):
28333         (WebCore::ClipboardWin::types):
28334         (WebCore::ClipboardWin::dragLocation):
28335         (WebCore::ClipboardWin::dragImage):
28336         (WebCore::ClipboardWin::setDragImage):
28337         (WebCore::ClipboardWin::dragImageElement):
28338         (WebCore::ClipboardWin::setDragImageElement):
28339         (WebCore::ClipboardWin::setAccessPolicy):
28340         (WebCore::ClipboardWin::~ClipboardWin):
28342         * platform/win/EditorWin.cpp: Added.
28343         Added this to make dispatchCPPEvent happy. 
28344         (WebCore::Editor::newGeneralClipboard):
28346         * platform/win/PasteboardWin.cpp: Added.
28347         The pasteboard class follows a singleton pattern
28348         Implemented the following to support CF_HTML, CF_UNICODE, and CF_TEXT
28349         (WebCore::Pasteboard::generalPasteboard):
28350         (WebCore::Pasteboard::Pasteboard):
28351         (WebCore::Pasteboard::~Pasteboard):
28352         (WebCore::Pasteboard::registerSelectionPasteboardTypes):
28353         (WebCore::Pasteboard::clearTypes):
28354         (WebCore::Pasteboard::writeSelection):
28355         (WebCore::Pasteboard::createHandleFromString):
28356         (WebCore::Pasteboard::createHandleFromCString):
28357         (WebCore::Pasteboard::createCF_HTMLFromRange):
28358         (WebCore::Pasteboard::replaceNBSP):
28359         (WebCore::Pasteboard::canSmartReplace):
28360         (WebCore::Pasteboard::plainText):
28361         (WebCore::Pasteboard::documentFragment):
28362         (WebCore::PasteboardOwnerWndProc):
28364 2006-11-28  Geoffrey Garen  <ggaren@apple.com>
28366         Reviewed by Anders Carlsson.
28368         Fixed <rdar://problem/4844863> REGRESSION: screen flashes when scrolling/
28369         resizing page with plug-in (@ cnn.com, for example).
28371         LockWindowUpdate was to blame. It turns out that using LockWindowUpdate
28372         was wrong to begin with. It's really only intended for use in drag-n-drop
28373         operations, which explains why only one window can be locked at a time.
28374         (See http://blogs.msdn.com/oldnewthing/archive/2004/06/10/152612.aspx.)
28375         
28376         The new solution I've implemented for avoiding plug-in fragments while scrolling
28377         is simply to clip the plug-in to the zero rect before moving it, and
28378         then to un-clip it when done.
28379         
28380         * plugins/win/PluginViewWin.cpp:
28381         (WebCore::PluginViewWin::updateHwnd):
28383 2006-11-28  Geoffrey Garen  <ggaren@apple.com>
28385         Reviewed by Adam.
28387         Fixed <rdar://problem/4844848> REGRESSION: extra cross-library ref/deref 
28388         calls cause .5% PLT regression.
28389         
28390         Changed ref/deref calls to a single 'xxxDestroyed' call. Moved EditorClient
28391         from the Frame to the Page, since it's only responsible for
28392         Webview-level delegate calls.
28393         
28394         I don't really love this design, but it fixes the regression and allows
28395         a single WebKit object to implement multiple client interfaces.
28396         
28397         Layout tests pass.
28399 2006-11-27  Beth Dakin  <bdakin@apple.com>
28401         Reviewed by Adam.
28403         Stub out functions in order to remove FIXMEs from ContextMenu.cpp
28405         * bridge/win/FrameWin.h: Spell checker functions pushed down from 
28406         WebKit.
28407         * platform/win/TemporaryLinkStubs.cpp: Stubs for spelling 
28408         functions.
28409         (WebCore::FrameWin::isSelectionMisspelled):
28410         (WebCore::FrameWin::guessesForMisspelledSelection):
28412 2006-11-27  Oliver Hunt  <oliver@apple.com>
28414         Reviewed by Adam.
28416         Fixes a crash in SVG caused by an attempt to 
28417         perform css overflow clipping by preventing
28418         the css overflow clip from being set in SVG.
28419         
28420         <rdar:/problems/4839568>
28422         * WebCore.vcproj/WebCore.vcproj:
28424 2006-11-27  Anders Carlsson  <acarlsson@apple.com>
28426         Remove addMessageToConsole from FrameWin.
28427         * bridge/win/FrameWin.h:
28428         * platform/win/TemporaryLinkStubs.cpp:
28429         
28430 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28432         Reviewed by Adam.
28434         Various fixes that make file upload possible.
28435         
28436         * bridge/win/FrameWin.h:
28437         * loader/win/FrameLoaderWin.cpp:
28438         (WebCore::FrameLoader::submitForm):
28439         Change submitForm to take a FrameLoadRequest.
28440         
28441         * platform/network/cf/FormDataStreamCFNet.cpp:
28442         (WebCore::advanceCurrentStream):
28443         Pass kCFURLWindowsPathStyle to CFURLCreateWithFileSystemPath.
28444         
28445         * platform/network/cf/ResourceHandleCFNet.cpp:
28446         (WebCore::willSendRequest):
28447         Call the client method.
28449 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28451         Rubber-stamped by Maciej.
28453         Fork the CF loader.
28454         
28455         * WebCore.vcproj/WebCore.vcproj:
28456         * platform/network/cf/FormDataStreamCFNet.cpp: Added.
28457         (WebCore::getStreamFormDatas):
28458         (WebCore::pairRetain):
28459         (WebCore::pairRelease):
28460         (WebCore::pairEqual):
28461         (WebCore::pairHash):
28462         (WebCore::closeCurrentStream):
28463         (WebCore::scheduleWithPair):
28464         (WebCore::advanceCurrentStream):
28465         (WebCore::openNextStream):
28466         (WebCore::formCreate):
28467         (WebCore::formFinalize):
28468         (WebCore::formOpen):
28469         (WebCore::formRead):
28470         (WebCore::formCanRead):
28471         (WebCore::formClose):
28472         (WebCore::formSchedule):
28473         (WebCore::formUnschedule):
28474         (WebCore::formEventCallback):
28475         (WebCore::setHTTPBody):
28476         (WebCore::httpBodyFromStream):
28477         * platform/network/cf/FormDataStreamCFNet.h: Added.
28478         * platform/network/cf/ResourceHandleCFNet.cpp: Added.
28479         (WebCore::willSendRequest):
28480         (WebCore::didReceiveResponse):
28481         (WebCore::didReceiveData):
28482         (WebCore::didFinishLoading):
28483         (WebCore::didFail):
28484         (WebCore::willCacheResponse):
28485         (WebCore::didReceiveChallenge):
28486         (WebCore::addHeadersFromHashMap):
28487         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
28488         (WebCore::ResourceHandle::~ResourceHandle):
28489         (WebCore::arrayFromFormData):
28490         (WebCore::emptyPerform):
28491         (WebCore::runLoaderThread):
28492         (WebCore::ResourceHandle::start):
28493         (WebCore::ResourceHandle::cancel):
28494         * platform/network/cf/ResourceRequestCFNet.cpp: Added.
28495         (WebCore::getResourceRequest):
28496         (WebCore::addHeadersFromHashMap):
28497         (WebCore::cfURLRequest):
28498         * platform/network/cf/ResourceRequestCFNet.h: Added.
28499         * platform/network/cf/ResourceResponseCFNet.cpp: Added.
28500         (WebCore::getResourceResponse):
28501         * platform/network/cf/ResourceResponseCFNet.h: Added.
28503 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28505         Reviewed by Lou, Dave Hyatt.
28507         <rdar://problem/4761639>
28508         Group label in list box doesn't appear as bold
28509         
28510         <rdar://problem/4805795>
28511         <optgroup> labels should be bold in popup menus
28512         
28513         * platform/win/FontPlatformDataWin.cpp:
28514         (WebCore::enumStylesCallback):
28515         (WebCore::FontPlatformData::FontPlatformData):
28516         Enumerate the existing font styles and decide what to synthesize
28517         depending on what styles are available.
28519 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28521         Fix build.
28522         
28523         * WebCore.vcproj/WebCore.vcproj:
28525 2006-11-20  Anders Carlsson  <acarlsson@apple.com>
28527         Add the same include paths to the debug build.
28528         
28529         * WebCore.vcproj/WebCore.vcproj:
28531 2006-11-20  Anders Carlsson  <acarlsson@apple.com>
28533         Fix build.
28534         
28535         * WebCore.vcproj/WebCore.vcproj:
28536         * kcanvas/device/quartz/KCanvasFilterQuartz.cpp: Removed.
28537         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Added.
28538         (WebCore::SVGResourceFilter::SVGResourceFilter):
28539         (WebCore::SVGResourceFilter::~SVGResourceFilter):
28540         (WebCore::SVGResourceFilter::prepareFilter):
28541         (WebCore::SVGResourceFilter::applyFilter):
28543 2006-11-19  Beth Dakin  <bdakin@apple.com>
28545         Reviewed by Adam.
28547         Boomer part of context menu actions.
28549         * bridge/win/FrameWin.h: New spelling functions on Frame.
28550         * platform/win/ContextMenuWin.cpp:
28551         (WebCore::ContextMenu::show):
28552         (WebCore::ContextMenu::hide):
28553         * platform/win/TemporaryLinkStubs.cpp: New stubs.
28554         (FrameWin::ignoreSpelling):
28555         (FrameWin::learnSpelling):
28556         (FrameLoader::reload):
28558 2006-11-18  Adam Roben  <aroben@apple.com>
28560         Build fix from OpenSource r17841.
28562         * platform/win/CursorWin.cpp: New method stubs.
28563         (WebCore::aliasCursor):
28564         (WebCore::progressCursor):
28565         (WebCore::noDropCursor):
28567 2006-11-17  Anders Carlsson  <acarlsson@apple.com>
28569         Reviewed by Adam.
28571         Add #defines in config.h to prevent the min and max macros from being used.
28573         * bridge/win/FrameWin.cpp:
28574         * config.h:
28575         * platform/win/FontCacheWin.cpp:
28576         (WebCore::FontCache::createFontPlatformData):
28577         * platform/win/PopupMenuWin.cpp:
28578         * plugins/win/PluginStreamWin.cpp:
28579         * plugins/win/PluginViewWin.cpp:
28580         (WebCore::PluginViewWin::handlePost):
28582 2006-11-17  Kevin McCullough  <kmccullough@apple.com>
28584         Reviewed by Adam.
28586         - Fixes Targetted Form Submission to now work. Radar: 4762693
28588         * ChangeLog:
28589         * loader/win/FrameLoaderWin.cpp:
28590         (WebCore::FrameLoader::submitForm):
28592 2006-11-16  Adele Peterson  <adele@apple.com>
28594         Reviewed by Adam.
28596         Added theme for sider.
28598         * rendering/RenderThemeWin.cpp:
28599         (WebCore::RenderThemeWin::sliderTheme):
28600         (WebCore::RenderThemeWin::close):
28601         (WebCore::RenderThemeWin::determineSliderThumbState):
28602         (WebCore::RenderThemeWin::getClassicThemeData):
28603         (WebCore::RenderThemeWin::getThemeData):
28604         (WebCore::drawControl):
28605         (WebCore::RenderThemeWin::paintSliderTrack):
28606         (WebCore::RenderThemeWin::paintSliderThumb):
28607         (WebCore::RenderThemeWin::adjustSliderThumbSize):
28608         * rendering/RenderThemeWin.h:
28610 2006-11-15  Adam Roben  <aroben@apple.com>
28612         Reviewed by Anders.
28614         Added new ContextMenuClient and ContextMenuController classes.
28616         * WebCore.vcproj/WebCore.vcproj: Added new files.
28617         * platform/win/ContextMenuWin.cpp: Added method implementations Beth
28618         forgot to check in in r11129.
28619         (WebCore::ContextMenu::itemCount):
28620         (WebCore::ContextMenu::appendItem):
28622 2006-11-15  Geoffrey Garen  <ggaren@apple.com>
28624         Reviewed by Anders Carlsson.
28625         
28626         Fixed flash of plug-in content outside its containing iframe while 
28627         scrolling the iframe.
28628         
28629         The problem was that the plug-in would draw between our call to MoveWindow
28630         and our call to SetWindowRgn. The solution here is to lock all updates in 
28631         the plug-in's HWND until we've called both MoveWindow and SetWindowRgn.
28632         
28633         Tested with Quicktime and Flash.
28634         
28635         * plugins/win/PluginViewWin.cpp:
28636         (WebCore::PluginViewWin::updateHwnd):
28637         (WebCore::PluginViewWin::setFrameGeometry):
28638         (WebCore::PluginViewWin::geometryChanged):
28639         * plugins/win/PluginViewWin.h: Removed bogus invalidate parameter to updateHwnd.
28641 2006-11-15  Adele Peterson  <adele@apple.com>
28643         Reviewed by Adam.
28645         Adding RenderSlider class, and removing DeprecatedSlider and Slider classes.
28647         * WebCore.vcproj/WebCore.vcproj:
28648         * platform/win/TemporaryLinkStubs.cpp:
28650 2006-11-15  Beth Dakin  <bdakin@apple.com>
28651         &   Adam Roben  <aroben@apple.com>
28653         Reviewed by Adam and Beth.
28655         Internal side of r17796.
28657         * WebCore.vcproj/WebCore.vcproj:
28658         * platform/win/ContextMenuWin.cpp: Added.
28659         (WebCore::ContextMenu::insertItem):
28660         (WebCore::ContextMenu::setPlatformMenuDescription):
28662 2006-11-15  Anders Carlsson  <acarlsson@apple.com>
28664         Reviewed by Darin.
28665     
28666         Remove some (now) obsolete methods.
28667         
28668         * bridge/win/FrameWin.h:
28669         * platform/win/TemporaryLinkStubs.cpp:
28670         (FrameWin::unfocusWindow):
28671         (FrameWin::getAppletInstanceForWidget):
28672         (FrameWin::issuePasteCommand):
28673         (FrameWin::respondToChangedSelection):
28675 2006-11-15  Steve Falkenburg  <sfalken@apple.com>
28677         Remove header from vcproj that no longer exists
28679         * WebCore.vcproj/WebCore.vcproj:
28681 2006-11-15  Steve Falkenburg  <sfalken@apple.com>
28683         Fix the B&I build
28685         * WebCore.vcproj/WebCore.vcproj:
28687 2006-11-14  Darin Adler  <darin@apple.com>
28689         Reviewed by Anders.
28691         - update for creation of EventHandler
28693         * WebCore.vcproj/WebCore.vcproj: Added EventHandler.cpp/h/Win.cpp.
28695         * bridge/win/FrameWin.h: Moved virtual functions lastEventIsMouseUp,
28696         tabsToLinks, and tabsToAllControls to EventHandler.
28697         * bridge/win/FrameWin.cpp: Ditto.
28699         * bridge/win/FrameViewWin.cpp: Moved passMousePressEventToSubframe and similar
28700         functions to EventHandler.
28702         * page/win/EventHandlerWin.cpp: Added. Code from FrameViewWin and FrameWin.
28704         * platform/win/PlatformScrollBarWin.cpp:
28705         (WebCore::PlatformScrollbar::handleMouseReleaseEvent): Call the setMousePressed
28706         function in its new home in EventHandler.
28708         * platform/win/TemporaryLinkStubs.cpp: Moved lastEventIsMouseUp stub to EventHandler.
28710 2006-11-13  Brady Eidson  <beidson@apple.com>
28712         Rubberstamped by Maciej
28714         Windows half of 17755 - Make FormData shared
28716         * bridge/win/FrameWin.h:
28717         * loader/win/FrameLoaderWin.cpp:
28718         (WebCore::FrameLoader::submitForm):
28719         * plugins/win/PluginViewWin.cpp:
28720         (WebCore::PluginViewWin::handlePost):
28722 2006-11-13  Anders Carlsson  <acarlsson@apple.com>
28724         Reviewed by Adam.
28726         * platform/win/PopupMenuWin.cpp:
28727         (WebCore::PopupWndProc):
28728         Make sure to call valueChanged after hiding the popup so that change events will 
28729         be delivered correctly.
28731 2006-11-13  Steve Falkenburg  <sfalken@apple.com>
28733         Reviewed by Anders, Lou.
28735         Fix merge script
28737         * WebCore.vcproj/merge-opensource.sh: Don't copy cairo, pixman
28739 2006-11-12  Geoffrey Garen  <ggaren@apple.com>
28741         Reviewed by Beth Dakin.
28742         
28743         Added project-wide setting to disable Microsoft's made-up deprecation 
28744         warnings related to std:: functions. (Doesn't have any affect yet,
28745         since we currently disable all deprecation warnings.)
28747         * WebCore.vcproj/WebCore.vcproj:
28749 2006-11-11  Anders Carlsson  <acarlsson@apple.com>
28751         Reviewed by Oliver.
28753         Rename keyPress to keyEvent, it's used for both key presses
28754         and releases.
28755         
28756         * bridge/win/FrameWin.cpp:
28757         (WebCore::FrameWin::keyEvent):
28758         * bridge/win/FrameWin.h:
28760 2006-11-11  Adam Roben  <aroben@apple.com>
28762         Reviewed by Geoff.
28764         Move graphics-related files to platform/graphics to stay in sync with
28765         changes from OpenSource r17727.
28767         Also, as discussed with Darin and Steve, we now copy all our headers to
28768         a flat include/WebCore directory instead of copying the directory
28769         structure of WebCore. This mirrors how Mac builds.
28771         * WebCore.vcproj/WebCore.vcproj:
28772         * platform/cg/ColorCG.cpp: Removed.
28773         * platform/cg/GraphicsContextCG.cpp: Removed.
28774         * platform/cg/GraphicsContextPlatformPrivate.h: Removed.
28775         * platform/win/IconWin.cpp: Removed.
28776         * platform/win/ImageWin.cpp: Removed.
28778 2006-11-11  Darin Adler  <darin@apple.com>
28780         - blind attempt to fix the build
28782         * platform/win/CursorWin.cpp:
28783         (WebCore::verticalTextCursor): Added. Just returns the pointer cursor.
28784         (WebCore::cellCursor): Ditto.
28785         (WebCore::contextMenuCursor): Ditto.
28787 2006-11-10  Steve Falkenburg  <sfalken@apple.com>
28789         Build fix for opensource/internal merge script.
28791         * WebCore.vcproj/WebCore.vcproj:
28793 2006-11-10  Anders Carlsson  <acarlsson@apple.com>
28795         Reviewed by Oliver.
28797         Implement findNextWordFromIndex using ICU.
28799         * platform/win/TemporaryLinkStubs.cpp:
28800         (WebCore::findSentenceBoundary):
28801         * platform/win/TextBoundariesWin.cpp:
28802         (WebCore::findNextWordFromIndex):
28804 2006-11-09  Oliver Hunt  <oliver@apple.com>
28806         Reviewed by Brady.
28808         Added Windows side of MIME Type registry, and updated 
28809         objectContentType and ImageWin to make use of it
28810         
28811         This fixes <rdar://problem/4791483> 
28813         * WebCore.vcproj/WebCore.vcproj:
28814         * loader/win/FrameLoaderWin.cpp:
28815         (WebCore::FrameLoader::objectContentType):
28816         * platform/win/ImageWin.cpp:
28817         * platform/win/MimeTypeRegistryWin.cpp: Added.
28818         (WebCore::getMIMETypeForUTI):
28819         (WebCore::mimeTypeForExtension):
28820         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
28822 2006-11-09  Lou Amadio  <lamadio@apple.com>
28824         Reviewed by mjs
28825         Corrected positioning of text for find overlay on subframes
28827         * bridge/win/FrameWin.cpp:
28828         (WebCore::FrameWin::imageFromRect):
28830 2006-11-08  Lou Amadio  <lamadio@apple.com>
28832         Reviewed by ggaren
28834         Moved CookieJar to OpenSourceWin
28835         Ported CookieJar to CFNetwork
28836         Corrected an uninitialized variable which crashed on Vista in the Wininet code
28838         * WebCore.vcproj/WebCore.vcproj:
28839         * platform/network/win/CookieJarWin.cpp:
28840         (WebCore::setCookies):
28841         (WebCore::cookies):
28843 2006-11-08  Maciej Stachowiak  <mjs@apple.com>
28845         Reviewed by Geoff.
28847         - added ResourceError class and didFailWithError client method
28848         
28849         * plugins/win/PluginStreamWin.cpp:
28850         (WebCore::PluginStreamWin::didFailLoadingWithError):
28851         (WebCore::PluginStreamWin::didFinishLoading):
28852         * plugins/win/PluginStreamWin.h:
28854 2006-11-08  Geoffrey Garen  <ggaren@apple.com>
28856         Reviewed by Anders Carlsson.
28858         Updated Windows to use the new platform abstraction for Screen.
28859         
28860         * WebCore.vcproj/WebCore.vcproj:
28861         * platform/win/PopupMenuWin.cpp:
28862         (WebCore::PopupMenu::calculatePositionAndSize):
28863         * platform/win/ScreenWin.cpp:
28864         (WebCore::monitorInfoForWidget):
28865         (WebCore::deviceInfoForWidget):
28866         (WebCore::screenDepth):
28867         (WebCore::screenDepthPerComponent):
28868         (WebCore::screenIsMonochrome):
28869         (WebCore::screenRect):
28870         (WebCore::screenAvailableRect):
28872 2006-11-09  Darin Adler  <darin@apple.com>
28874         - fix the build
28876         * bridge/win/FrameWin.h: Add a forward declaration of FormData.
28878         * bridge/win/FrameWin.cpp: (WebCore::FrameWin::keyPress):
28879         Call resetMultipleFormSubmissionProtection instead of prepareForUserAction.
28881         * platform/win/TemporaryLinkStubs.cpp: Remove the parameter from the
28882         TextField constructor.
28884 2006-11-08  Steve Falkenburg  <sfalken@apple.com>
28886         Rubber stamped by Adam.
28888         Windows buildbot fix.
28889         Remove /d from xcopy commands that merge opensource/internal components.
28890         Sync debug and release post-build event.
28892         * WebCore.vcproj/WebCore.vcproj:
28894 2006-11-07  Ada Chan  <adachan@apple.com>
28896         Reviewed by Steve.
28898         Make the Slider implementation call LOG_NOIMPL() instead of STOP_NOIMPL() so the RSS feed page can load.
28900         * platform/win/TemporaryLinkStubs.cpp:
28901         (Slider::Slider):
28902         (Slider::sizeHint):
28903         (Slider::setValue):
28904         (Slider::setMaxValue):
28905         (Slider::setMinValue):
28906         (Slider::~Slider):
28907         (Slider::setFont):
28908         (Slider::value):
28910 2006-11-07  Lou Amadio  <lamadio@apple.com>
28912         Reviewed by sfalken, adam
28914          Implemented Find banner, overlay, bouncy.
28915          plummed some find, search and marking in WebCore & WebKit
28916          Added SDC - a DC wrapper with knowledge of CG
28917          Added button element
28918          Ported AppKit's oval button drawing code
28919          Abstracted the high performance animations
28921         * bridge/win/FrameWin.cpp:
28922         (WebCore::FrameWin::imageFromRect):
28923         (WebCore::FrameWin::imageFromSelection):
28924         * bridge/win/FrameWin.h:
28925         * platform/win/GraphicsContextWin.cpp:
28926         (WebCore::GraphicsContext::setCompositeOperation):
28927         * platform/win/TemporaryLinkStubs.cpp:
28928         (Frame::setNeedsReapplyStyles):
28930 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28932         Build fixes.
28933         
28934         * WebCore.vcproj/WebCore.vcproj:
28935         * platform/win/TemporaryLinkStubs.cpp:
28937 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28939         * loader/win/FrameLoaderWin.cpp:
28940         (WebCore::FrameLoader::partClearedInBegin):
28941         Use m_frame instead of this, include the correct files.
28942         
28943 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28945         (I'm not doing this to get commit 11000)
28946         
28947         * loader/win/FrameLoaderWin.cpp:
28948         (WebCore::FrameLoader::partClearedInBegin):
28949         It's m_frame, not frame. 
28950         
28951 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28953         It's FrameLoader, not FrameWin.
28954         
28955         * loader/win/FrameLoaderWin.cpp:
28956         (WebCore::FrameLoader::partClearedInBegin):
28958 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28960         A blind attempt at fixing the build.
28961         
28962         * bridge/win/FrameWin.cpp:
28963         * loader/win/FrameLoaderWin.cpp:
28964         (WebCore::FrameWin::partClearedInBegin):
28965         * platform/win/TemporaryLinkStubs.cpp:
28966         (FrameLoader::restoreDocumentState):
28968 2006-11-07  Geoffrey Garen  <ggaren@apple.com>
28970         Reviewed by Anders.
28971         
28972         Removed ScreenClient. It was highly unpopular, risking my midterm re-election.
28973         
28974         None of Screen's responsibilities require up-calls to WebKit or delegates, 
28975         so WebCore can handle it all.
28976         
28977         Moved Screen back from page/ to platform/ because it's a platform
28978         abstraction again.
28979         
28980         Fixed bug where Screen would query the default screen instead of the screen
28981         on which the active window was located. (The code is written in Klingon,
28982         but that's cool.)
28983         
28984         Implemented some missing screen functionality on Win.
28985         
28986         I can't fully verify this code because I can't load files without crashing
28987         in CFNetwork, but I exercised most of it with javascript: URLs and the
28988         debugger reported reasonable values.
28990         * WebCore.vcproj/WebCore.vcproj:
28991         * platform/win/ScreenWin.cpp: Added. Merged over from opensource tree.
28992         (WebCore::getWindow):
28993         (WebCore::getMonitorInfo):
28994         (WebCore::getDeviceInfo):
28995         (WebCore::Screen::depth):
28996         (WebCore::Screen::depthPerComponent):
28997         (WebCore::Screen::isMonochrome):
28998         (WebCore::Screen::rect):
28999         (WebCore::Screen::usableRect):
29001 2006-11-07  Darin Adler  <darin@apple.com>
29003         Reviewed by Geoff.
29005         - moved loader code from Frame/FrameMac to FrameLoader
29007         * WebCore.vcproj/WebCore.vcproj:
29008         * bridge/win/FrameWin.cpp:
29009         (WebCore::FrameWin::FrameWin):
29010         (WebCore::FrameWin::~FrameWin):
29011         * bridge/win/FrameWin.h:
29012         * loader/win/FrameLoaderWin.cpp: Added.
29013         (WebCore::FrameLoader::submitForm):
29014         (WebCore::FrameLoader::urlSelected):
29015         (WebCore::FrameLoader::originalRequestURL):
29016         (WebCore::FrameLoader::didFirstLayout):
29017         (WebCore::FrameLoader::objectContentType):
29018         (WebCore::FrameLoader::createPlugin):
29019         (WebCore::FrameLoader::createFrame):
29020         (WebCore::FrameLoader::detachFromParent):
29021         (WebCore::FrameLoader::createJavaAppletWidget):
29022         (WebCore::FrameLoader::setTitle):
29023         * platform/win/TemporaryLinkStubs.cpp:
29024         (FrameWin::markMisspellings):
29025         (FrameWin::respondToChangedSelection):
29026         (FrameWin::clearUndoRedoOperations):
29027         (IconLoader::notifyIconChanged):
29028         (PolicyCheck::PolicyCheck):
29029         (PolicyCheck::clear):
29030         (PolicyCheck::call):
29031         (PolicyCheck::clearRequest):
29032         (FrameLoader::saveDocumentState):
29033         (FrameLoader::restoreDocumentState):
29034         (FrameLoader::partClearedInBegin):
29035         (FrameLoader::goBackOrForward):
29036         (FrameLoader::historyURL):
29037         (FrameLoader::canGoBackOrForward):
29038         (FrameLoader::getHistoryLength):
29039         (DocumentLoader::setupForReplaceByMIMEType):
29040         (ResourceLoader::cancel):
29041         (DocumentLoader::stopLoading):
29042         (DocumentLoader::setLoading):
29043         (DocumentLoader::updateLoading):
29044         (DocumentLoader::setFrame):
29045         (DocumentLoader::stopRecordingResponses):
29046         (DocumentLoader::isStopping):
29047         (DocumentLoader::setPrimaryLoadComplete):
29048         (DocumentLoader::finishedLoading):
29049         (DocumentLoader::URL):
29050         (DocumentLoader::isLoadingInAPISense):
29051         (DocumentLoader::frameLoader):
29052         (FrameLoader::overrideMediaType):
29053         (FrameLoader::redirectDataToPlugin):
29054         (FrameLoader::checkLoadCompleteForThisFrame):
29055         (FrameLoader::loadEmptyDocumentSynchronously):
29056         (FrameLoader::startLoading):
29057         (FrameLoader::referrer):
29058         * plugins/win/PluginViewWin.cpp:
29059         (WebCore::PluginViewWin::performRequest):
29060         (WebCore::PluginViewWin::userAgent):
29062 2006-11-07  Anders Carlsson  <acarlsson@apple.com>
29064         Reviewed by Oliver.
29066         Let the Frame client know when the window object is available.
29068         * bridge/win/FrameWin.cpp:
29069         (WebCore::FrameWin::partClearedInBegin):
29070         * bridge/win/FrameWin.h:
29071         * platform/win/TemporaryLinkStubs.cpp:
29072         (FrameWin::unfocusWindow):
29073         (FrameWin::markMisspellings):
29074         (FrameWin::restoreDocumentState):
29076 2006-11-07  Adam Roben  <aroben@apple.com>
29078         Build fix.
29080         * platform/win/TemporaryLinkStubs.cpp: Remove no-longer-needed stub.
29082 2006-11-07  Steve Falkenburg  <sfalken@apple.com>
29084         Fixes for B&I submission
29086         * WebCore.vcproj/WebCore.vcproj:
29087         * WebCore.vcproj/merge-opensource.sh:
29089 2006-11-06  Kevin McCullough  <kmccullough@apple.com>
29091         -Fix test fields accepting text.
29093         * WebCore.vcproj/WebCore.vcproj:
29095 2006-11-06  Anders Carlsson  <acarlsson@apple.com>
29097         Reviewed by Dave Hyatt.
29099         <rdar://problem/4778180>
29100         wikipedia.org crashes when loading
29101         
29102         * platform/win/GlyphMapWin.cpp:
29103         (WebCore::GlyphMap::fillPage):
29104         Don't call GetGlyphIndices on buffers larger than the page size. GetGlyphIndicies doesn't know anything about
29105         Unicode supplementary characters and will overwrite the local buffer if the passed-in buffer is bigger than  the page size.
29107 2006-11-06  Anders Carlsson  <acarlsson@apple.com>
29109         Fork GlyphMapWin.cpp
29110         
29111         * platform/win/GlyphMapWin.cpp: Added.
29112         (WebCore::GlyphMap::fillPage):
29114 2006-11-06  Geoffrey Garen  <ggaren@apple.com>
29116         Reviewed by Darin.
29118         Hooked up the Chrome and Screen clients on Windows.
29119         
29120         * WebCore.vcproj/WebCore.vcproj:
29121         * bridge/win/PageWin.cpp:
29122         * platform/win/PopupMenuWin.cpp:
29123         (WebCore::PopupMenu::calculatePositionAndSize):
29124         * platform/win/TemporaryLinkStubs.cpp:
29126 2006-11-06  Anders Carlsson  <acarlsson@apple.com>
29128         Reviewed by Maciej.
29130         Copy npfunctions.h to WebKitOutputDir.
29131         
29132         * WebCore.vcproj/WebCore.vcproj:
29134 2006-11-06  Steve Falkenburg  <sfalken@apple.com>
29136         Fix double-include of FormData.cpp/.h.
29138         * WebCore.vcproj/WebCore.vcproj:
29140 2006-11-06  Maciej Stachowiak  <mjs@apple.com>
29141         
29142         - build fixes, adjusted for file move
29144         * WebCore.vcproj/WebCore.vcproj:
29146 2006-11-05  Beth Dakin  <bdakin@apple.com>
29148         Reviewed by Steve and Anders.
29150         Add client() fucntion to FrameWin to return the FrameClient.
29152         * bridge/win/FrameWin.h:
29153         (WebCore::FrameWin::client):
29155 2006-11-05  Steve Falkenburg  <sfalken@apple.com>
29157         Fix build
29159         * WebCore.vcproj/WebCore.vcproj:
29161 2006-11-05  Steve Falkenburg  <sfalken@apple.com>
29163         Fix build breaks
29165         * bridge/win/FrameWin.cpp:
29166         * bridge/win/PageWin.cpp:
29168 2006-11-04  Darin Adler  <darin@apple.com>
29170         Reviewed by Maciej.
29172         * bridge/win/FrameWin.h:
29173         * bridge/win/FrameWin.cpp:
29174         (WebCore::FrameWin::urlSelected): Updated for change of const Event* to Event*.
29175         (WebCore::FrameWin::submitForm): Added Event* parameter.
29177 2006-11-03  Maciej Stachowiak  <mjs@apple.com>
29179         Reviewed by Adele.
29181         - replaced receivedRedirect with new willSendRequest delegate
29182         - removed most mac-specific loader functions
29183         - use ResourceResponse more in loader code
29185         * WebCore.vcproj/WebCore.vcproj: Added new files
29186         * platform/win/TemporaryLinkStubs.cpp: Removed unneeded link stubs
29188 2006-11-03  Steve Falkenburg  <sfalken@apple.com>
29190         Fix build
29192         * config.h: Touched to cause re-build w/ SVG_SUPPORT enabled
29193         * platform/win/TemporaryLinkStubs.cpp:
29194         (WebCore::CachedResource::setResponse): Added
29196 2006-11-03  Adele Peterson  <adele@apple.com>
29198         Reviewed by Oliver.
29200         Removed DeprecatedRenderSelect and ListBox classes.
29202         * WebCore.vcproj/WebCore.vcproj:
29203         * platform/win/TemporaryLinkStubs.cpp:
29205 2006-11-03  Anders Carlsson  <acarlsson@apple.com>
29207         Remove SVGRenderAsText files from the project.
29208         
29209         * WebCore.vcproj/WebCore.vcproj:
29211 2006-11-03  Anders Carlsson  <acarlsson@apple.com>
29213         Build fix.
29214         
29215         * platform/win/TemporaryLinkStubs.cpp:
29216         (WebCore::CachedResource::setPlatformResponse):
29218 2006-11-03  Geoffrey Garen  <ggaren@apple.com>
29220         Reviewed by Darin, Beth.
29222         Updated to use ChromeClient.
29223         
29224         * WebCore.vcproj/WebCore.vcproj:
29225         * bridge/win/PageWin.cpp:
29226         * loader/win/ResourceLoaderWin.cpp: Added.
29227         (WebCore::ResourceLoader::loadsBlocked):
29228         * platform/win/TemporaryLinkStubs.cpp:
29230 2006-11-02  Anders Carlsson  <acarlsson@apple.com>
29232         Reviewed by Oliver.
29234         * WebCore.vcproj/WebCore.vcproj:
29235         Use the forked CursorWin.cpp
29236         
29237         * platform/win/CursorWin.cpp:
29238         (WebCore::moveCursor):
29239         Implement this.
29240         
29241         * platform/win/TemporaryLinkStubs.cpp:
29242         Get rid of it here.
29243         
29244 2006-11-02  Anders Carlsson  <acarlsson@apple.com>
29246         Reviewed by Oliver.
29248         Add forked copy of CursorWin.cpp
29249         
29250         * platform/win/CursorWin.cpp: Added.
29252 2006-11-01  Oliver Hunt  <oliver@apple.com>
29254         Reviewed by Adam.
29256         Adding SVG_SUPPORT to Boomer.
29258         * WebCore.vcproj/WebCore.vcproj:
29259         * WebCore.vcproj/build-generated-files.sh:
29260         * kcanvas/device/quartz/KCanvasFilterQuartz.cpp: Added.
29261         (WebCore::KCanvasFilterQuartz::KCanvasFilterQuartz):
29262         (WebCore::KCanvasFilterQuartz::~KCanvasFilterQuartz):
29263         (WebCore::KCanvasFilterQuartz::prepareFilter):
29264         (WebCore::KCanvasFilterQuartz::applyFilter):
29265         (WebCore::KCanvasFilterQuartz::imageForName):
29266         (WebCore::KCanvasFilterQuartz::setImageForName):
29267         (WebCore::KCanvasFilterQuartz::setOutputImage):
29268         (WebCore::KCanvasFilterQuartz::inputImage):
29269         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Added.
29270         (WebCore::SVGResourceMasker::applyMask):
29272 2006-11-01  Beth Dakin  <bdakin@apple.com>
29274         Reviewed by Adam.
29276         Build fix from Sam Weinig's check-in. i.p in the PaintInfo is now 
29277         i.context
29279         * rendering/RenderThemeWin.cpp:
29280         (WebCore::RenderThemeWin::paintButton):
29281         (WebCore::RenderThemeWin::paintTextField):
29282         (WebCore::RenderThemeWin::paintMenuList):
29283         (WebCore::RenderThemeWin::paintMenuListButton):
29285 2006-11-01  Anders Carlsson  <acarlsson@apple.com>
29287         Reviewed by Geoff.
29289         * bridge/win/FrameWin.cpp:
29290         (WebCore::FrameWin::createJavaAppletWidget):
29291         Ask the plugin database to create a java applet plugin.
29293         * platform/win/TemporaryLinkStubs.cpp:
29294         Remove FrameWin::createJavaAppletWidget.
29295         
29296         * plugins/win/PluginDatabaseWin.cpp:
29297         (WebCore::PluginDatabaseWin::defaultPluginPaths):
29298         Don't look for the Sun Java plugin anymore.
29300 2006-11-01  Anders Carlsson  <acarlsson@apple.com>
29302         * plugins/win/PluginStreamWin.cpp:
29303         (WebCore::PluginStreamWin::startStream):
29304         Build fix.
29305         
29306 2006-11-01  Anders Carlsson  <acarlsson@apple.com>
29308         Reviewed by Adam.
29310         Convert plugin code over to using ResourceResponse.
29311         
29312         * plugins/win/PluginStreamWin.cpp:
29313         (WebCore::PluginStreamWin::startStream):
29314         (WebCore::PluginStreamWin::didReceiveResponse):
29315         (WebCore::PluginStreamWin::didFinishLoading):
29316         * plugins/win/PluginStreamWin.h:
29317         * plugins/win/PluginViewWin.cpp:
29318         (WebCore::PluginViewWin::performRequest):
29320 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29322         Yet more B&I build fixes
29323         Another missing .h file from the vcproj
29325         * WebCore.vcproj/WebCore.vcproj:
29327 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29329         Another fix for B&I submission
29330         (missing .h files from the WebCore vcproj prevents proper merging of OpenSource/Internal WebCore trees)
29332         * WebCore.vcproj/WebCore.vcproj:
29334 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29336         Remove extra files I accidently added
29338         * WebCore.vcproj/WebCore.vcproj:
29340 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29342         Build fixes for submission merge script
29344         * WebCore.vcproj/WebCore.vcproj:
29346 2006-10-31  Adam Roben  <aroben@apple.com>
29348         Build fixes.
29350         * WebCore.vcproj/WebCore.vcproj: Add new platform/graphics directory to
29351         our include path, and copy headers from there for WebKit's benefit.
29352         * bridge/win/FrameWin.cpp: Update accessors of FrameLoadRequest.
29353         (WebCore::FrameWin::urlSelected):
29354         (WebCore::FrameWin::submitForm):
29355         * plugins/win/PluginViewWin.cpp: Ditto.
29356         (WebCore::PluginViewWin::start):
29357         (WebCore::PluginViewWin::performRequest):
29358         (WebCore::PluginViewWin::load):
29359         (WebCore::PluginViewWin::getURLNotify):
29360         (WebCore::PluginViewWin::getURL):
29361         (WebCore::PluginViewWin::handlePost):
29362         * plugins/win/PluginViewWin.h: Correct forward declaration of
29363         FrameLoadRequest.
29365 2006-10-30  Darin Adler  <darin@apple.com>
29367         Reviewed by Anders.
29369         - remove BrowserExtension
29371         * WebCore.vcproj/WebCore.vcproj:
29372         * bridge/win/FrameWin.cpp:
29373         (WebCore::FrameWin::FrameWin):
29374         * platform/win/TemporaryLinkStubs.cpp:
29375         * plugins/win/PluginViewWin.cpp:
29376         (WebCore::PluginViewWin::performRequest):
29378 2006-10-30  Anders Carlsson  <acarlsson@apple.com>
29380         Reviewed by Adam.
29382         If there's no plug-in for a given mime type, or if the plug-in fails
29383         to initialize, draw the "missing plug-in" icon.
29385         * plugins/win/PluginDatabaseWin.cpp:
29386         (WebCore::PluginDatabaseWin::createPluginView):
29387         If no plug-in can be found, create a null plugin view.
29388         
29389         * plugins/win/PluginViewWin.cpp:
29390         (WebCore::PluginViewWin::paint):
29391         If the plugin hasn't been started, paint the missing plugin image.
29392         
29393         (WebCore::PluginViewWin::setNPWindowSize):
29394         Return early if the plugin hasn't been started.
29395         
29396         (WebCore::PluginViewWin::start):
29397         Return if the plugin couldn't be created.
29398         
29399         (WebCore::PluginViewWin::createNullPluginView):
29400         New function which just creates a plugin view and doesn't try to start its plugin
29401         (because there is none).
29402         
29403         (WebCore::PluginViewWin::PluginViewWin):
29404         New constructor for the null plugin view.
29405         
29406 2006-10-31  Darin Adler  <darin@apple.com>
29408         Reviewed by Adam.
29410         * WebCore.vcproj/WebCore.vcproj: Added new source files from the
29411         loader directory.
29413 2006-10-29  Maciej Stachowiak  <mjs@apple.com>
29415         Reviewed by Anders.
29417         - added ResourceResponse class and didReceiveResponse delegate call
29419         * WebCore.vcproj/WebCore.vcproj: Added new files.
29420         * platform/win/TemporaryLinkStubs.cpp:
29421         (WebCore::ServeSynchronousRequest): Changed prototype to match
29422         new version.
29424 2006-10-29  Darin Adler  <darin@apple.com>
29426         - update for the WebCore renames
29428         * WebCore.vcproj/WebCore.vcproj:
29429         * bridge/win/FrameWin.cpp:
29430         (WebCore::FrameWin::bindingRootObject):
29431         (WebCore::FrameWin::windowScriptNPObject):
29432         * plugins/win/PluginViewWin.cpp:
29433         (WebCore::PluginViewWin::load):
29434         (WebCore::PluginViewWin::bindingInstance):
29436 2006-10-29  Maciej Stachowiak  <mjs@apple.com>
29438         Rubber stamped by Darin.
29440         - renamed ResourceLoader to ResourceHandle (and same for related classes)
29442         * WebCore.vcproj/WebCore.vcproj:
29443         * bridge/win/FrameWin.cpp:
29444         * platform/network/win/ResourceHandleWin.cpp: Added.
29445         (WebCore::):
29446         (WebCore::addToOutstandingJobs):
29447         (WebCore::lookupResourceHandle):
29448         (WebCore::ResourceHandleWndProc):
29449         (WebCore::ResourceHandle::onHandleCreated):
29450         (WebCore::ResourceHandle::onRequestRedirected):
29451         (WebCore::ResourceHandle::onRequestComplete):
29452         (WebCore::initializeOffScreenResourceHandleWindow):
29453         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
29454         (WebCore::ResourceHandle::~ResourceHandle):
29455         (WebCore::ResourceHandle::startHTTPRequest):
29456         (WebCore::ResourceHandle::start):
29457         (WebCore::ResourceHandle::fileLoadTimer):
29458         (WebCore::ResourceHandle::cancel):
29459         * platform/network/win/ResourceHandleWin.h: Added.
29460         * platform/network/win/ResourceLoaderWin.cpp: Removed.
29461         * platform/network/win/ResourceLoaderWin.h: Removed.
29462         * platform/win/TemporaryLinkStubs.cpp:
29463         (WebCore::ResourceHandle::assembleResponseHeaders):
29464         (WebCore::ResourceHandle::retrieveResponseEncoding):
29465         (IconLoader::receivedResponse):
29466         * plugins/win/PluginStreamWin.cpp:
29467         (WebCore::PluginStreamWin::start):
29468         (WebCore::PluginStreamWin::deliverData):
29469         (WebCore::PluginStreamWin::receivedResponse):
29470         (WebCore::PluginStreamWin::didReceiveData):
29471         (WebCore::PluginStreamWin::receivedAllData):
29472         * plugins/win/PluginStreamWin.h:
29474 2006-10-28  Adam Roben  <aroben@apple.com>
29476         Build fix.
29478         * WebCore.vcproj/WebCore.vcproj: Adding new HitTestResult.{cpp,h}
29479         files.
29481 2006-10-27  Anders Carlsson  <acarlsson@apple.com>
29483         Reviewed by Oliver.
29485         <rdar://problem/4730678> Plug-ins should be able to open URLs
29487         * plugins/win/PluginViewWin.cpp:
29488         (WebCore::PluginViewWin::performRequest):
29490 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29492         Reviewed by John Sullivan.
29494         <rdar://problem/4764502> PluginStreams should cancel their loader jobs on error
29496         * plugins/win/PluginStreamWin.cpp:
29497         (WebCore::PluginStreamWin::receivedResponse):
29498         (WebCore::PluginStreamWin::didReceiveData):
29499         (WebCore::PluginStreamWin::receivedAllData):
29500         Modify assertions. None of the above functions should be run after aborting the load.
29502 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29504         Reviewed by Adam.
29506         * plugins/win/PluginDatabaseWin.cpp:
29507         (WebCore::addPluginPath):
29508         (WebCore::PluginDatabaseWin::defaultPluginPaths):
29509         Look for plugins in a plugins directory which is relative to the executable directory.
29510         
29511         (WebCore::PluginDatabaseWin::createPluginView):
29512         Use reverseFind instead of findRev here.
29513         
29514 2006-10-26  Adam Roben  <aroben@apple.com>
29516         Reviewed by Beth.
29518         Fix: <rdar://problem/4799084> Text and dropdown button too close
29519         together in <select>s
29520         Fix: <rdar://problem/4800493> Popup menus should be positioned so that
29521         their text is horizontally aligned with the <select> control's text
29523         * platform/win/PopupMenuWin.cpp:
29524         (WebCore::PopupMenu::calculatePositionAndSize): Switch alignment of LTR
29525         vs. RTL popups, and add padding to align the text.
29526         (WebCore::PopupMenu::paint): Add padding from the <select> control to
29527         align the text with the <select> control's text.
29528         * rendering/RenderThemeWin.cpp: Set svn:eol-style native.
29529         (WebCore::RenderThemeWin::systemFont): Clean up line endings.
29530         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Add some extra
29531         padding between the dropdown button and text.
29532         (WebCore::RenderThemeWin::paintMenuListButton): Clean up code a bit.
29534 2006-10-26  Adam Roben  <aroben@apple.com>
29536         Forgot to make the change to Release as well in my last checkin.
29538         * WebCore.vcproj/WebCore.vcproj:
29540 2006-10-26  Adam Roben  <aroben@apple.com>
29542         Rubberstamped by Steve.
29544         Add some missing '/d' flags to xcopy calls to only copy headers if
29545         they've been modified.
29547         * WebCore.vcproj/WebCore.vcproj:
29549 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29551         * platform/win/TemporaryLinkStubs.cpp:
29552         (GraphicsContext::drawLineForMisspellingOrBadGrammar):
29553         Build fix from Oliver.
29554         
29555 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29557         Reviewed by Adam.
29559         Use FrameLoadRequest and ResourceRequest instead of passing around
29560         the individual components.
29561         
29562         * plugins/win/PluginStreamWin.cpp:
29563         (WebCore::PluginStreamWin::PluginStreamWin):
29564         (WebCore::PluginStreamWin::start):
29565         (WebCore::PluginStreamWin::destroyStream):
29566         * plugins/win/PluginStreamWin.h:
29567         * plugins/win/PluginViewWin.cpp:
29568         (WebCore::PluginRequestWin::PluginRequestWin):
29569         (WebCore::PluginRequestWin::frameLoadRequest):
29570         (WebCore::PluginViewWin::start):
29571         (WebCore::PluginViewWin::performRequest):
29572         (WebCore::PluginViewWin::load):
29573         (WebCore::PluginViewWin::getURLNotify):
29574         (WebCore::PluginViewWin::getURL):
29575         (WebCore::PluginViewWin::handlePost):
29576         * plugins/win/PluginViewWin.h:
29578 2006-10-26  Adam Roben  <aroben@apple.com>
29580         Reviewed by Adele.
29582         Fix: <rdar://problem/4794162> Implement type-ahead find for popup menus
29583         Fix: <rdar://problem/4800486> Pressing TAB while a popup is focused
29584         should close the popup and move selection in the page
29586         * platform/win/PopupMenuWin.cpp:
29587         (WebCore::PopupMenu::PopupMenu): Don't cache the focused index.
29588         (WebCore::PopupMenu::focusedIndex): Always get the focused index from
29589         the HTMLSelectElement.
29590         (WebCore::PopupMenu::setFocusedIndex): Invalidate before calling
29591         valueChanged(), as this will change the result of focusedIndex().
29592         (WebCore::PopupMenu::scrollToRevealSelection):
29593         (WebCore::PopupMenu::updateFromElement): New method to repaint/rescroll
29594         the popup.
29595         (WebCore::PopupWndProc): Send TAB keypresses and printable characters
29596         back to the WebView for handling. Also omove handling of Return/Escape
29597         into the WM_CHAR event, as this is recommended by MSDN.
29599 2006-10-25  Steve Falkenburg  <sfalken@apple.com>
29601         Reviewed by Darin.
29603         Checked in Luke's CG printing code
29605         * bridge/win/FrameWin.cpp:
29606         (WebCore::FrameWin::setupRootForPrinting): Added
29607         (WebCore::FrameWin::computePageRects): Added
29608         * bridge/win/FrameWin.h: Added setupRootForPrinting, computePageRects
29610 2006-10-24  Maciej Stachowiak  <mjs@apple.com>
29612         Reviewed by Oliver.
29614         - updated for ResourceRequest changes.
29616         * plugins/win/PluginStreamWin.cpp:
29617         (WebCore::PluginStreamWin::setRequestHeaders):
29618         * plugins/win/PluginStreamWin.h:
29619         * plugins/win/PluginViewWin.cpp:
29620         (WebCore::PluginViewWin::loadURL):
29621         (WebCore::parseRFC822HeaderFields):
29622         (WebCore::PluginViewWin::handlePost):
29623         * plugins/win/PluginViewWin.h:
29625 2006-10-24  Steve Falkenburg  <sfalken@apple.com>
29627         Build fix for official builds
29629         * WebCore.vcproj/WebCore.make:
29631 2006-10-24  Steve Falkenburg  <sfalken@apple.com>
29633         Fix build so it can be submitted.
29635         * WebCore.vcproj/WebCore.vcproj:
29636         * WebCore.vcproj/merge-opensource.sh:
29637         * rendering/RenderThemeWin.cpp:
29639 2006-10-24  Geoffrey Garen  <ggaren@apple.com>
29641         Rolling back in, now fixed:
29642         
29643         Nixed a few more redundant loading functions in Frame.
29645         * bridge/win/FrameWin.h:
29646         * platform/win/TemporaryLinkStubs.cpp:
29647         (FrameWin::shouldInterruptJavaScript):
29648         (FrameWin::lastEventIsMouseUp):
29650 2006-10-24  Maciej Stachowiak  <mjs@apple.com>
29652         Reviewed by Geoff.
29654         - update for ResourceLoader API changes
29656         * platform/win/TemporaryLinkStubs.cpp:
29657         (WebCore::ServeSynchronousRequest):
29658         * plugins/win/PluginStreamWin.cpp:
29659         (WebCore::PluginStreamWin::start):
29660         (WebCore::PluginStreamWin::receivedAllData):
29661         * plugins/win/PluginStreamWin.h:
29662         * plugins/win/PluginViewWin.cpp:
29663         (WebCore::PluginViewWin::performRequest):
29665 2006-10-24  Geoffrey Garen  <ggaren@apple.com>
29667         Rolling out my last change because it broke the world.
29668         
29669         * bridge/win/FrameWin.h:
29670         * platform/win/TemporaryLinkStubs.cpp:
29671         (FrameWin::openURL):
29673 2006-10-24  Anders Carlsson  <acarlsson@apple.com>
29675         Reviewed by Adam.
29677         <rdar://problem/4760429> Crash in PluginStreamWin::~PluginStreamWin when 
29678         navigating away from mcdonalds.com
29679         
29680         * plugins/win/PluginPackageWin.cpp:
29681         (WebCore::PluginPackageWin::fetchInfo):
29682         Use fastFree instead of free when memory is allocated by fastMalloc. 
29683         If the plugin name or description is null, don't try to fetch info about the plugin.
29684         
29685         * plugins/win/PluginStreamWin.cpp:
29686         (WebCore::PluginStreamWin::setRequestHeaders):
29687         (WebCore::PluginStreamWin::start):
29688         (WebCore::PluginStreamWin::stop):
29689         * plugins/win/PluginStreamWin.h:
29690         Change type of header map to ResourceRequest::HTTPHeaderMap. When a plugin is stopped,
29691         set its state to StreamStopped.
29692         
29693         * plugins/win/PluginViewWin.cpp:
29694         (WebCore::PluginViewWin::loadURL):
29695         (WebCore::parseRFC822HeaderFields):
29696         (WebCore::PluginViewWin::handlePost):
29697         * plugins/win/PluginViewWin.h:
29698         Update for type changes to the header map.
29700 2006-10-24  Geoffrey Garen  <ggaren@apple.com>
29702         Reviewed by Anders.
29703         
29704         Nixed a few more redundant loading functions in Frame.
29706         * bridge/win/FrameWin.h:
29707         * platform/win/TemporaryLinkStubs.cpp:
29708         (FrameWin::shouldInterruptJavaScript):
29709         (FrameWin::lastEventIsMouseUp):
29711 2006-10-23  Geoffrey Garen  <ggaren@apple.com>
29713         Reviewed by Bradee.
29715         Removed methods from BrowserExtension.
29717         * bridge/win/FrameWin.h:
29718         * platform/win/TemporaryLinkStubs.cpp:
29719         (FrameWin::canPaste):
29720         (FrameWin::canGoBackOrForward):
29721         (FrameWin::goBackOrForward):
29722         (FrameWin::getHistoryLength):
29723         (FrameWin::historyURL):
29724         (Page::canRunModal):
29725         (Page::canRunModalNow):
29726         (Page::runModal):
29727         (BrowserExtensionWin::BrowserExtensionWin):
29729 2006-10-23  Adam Roben  <aroben@apple.com>
29731         Reviewed by Adele.
29733         Fix: <rdar://problem/4796994> Styled <select>s should still use Windows
29734         theme
29736         The fix is to do most of our drawing for menulists in
29737         RenderThemeWin::paintMenuListButton (which is called for styled
29738         <select>s), and then do any extra drawing for unstyled <select>s in
29739         RenderThemeWin::paintMenuList.
29741         * rendering/RenderThemeWin.cpp:
29742         (WebCore::RenderThemeWin::getThemeData): Case for
29743         MenulistButtonAppearance should be the same as MenulistAppearance.
29744         (WebCore::RenderThemeWin::paintMenuList): Draw the border, then defer
29745         to paintMenuListButton to handle the rest of painting.
29746         (WebCore::RenderThemeWin::adjustMenuListStyle): Reset the border so we
29747         can draw our own, then defer to adjustMenuListStyle.
29748         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Code moved from
29749         adjustMenuListStyle, less the call to resetBorder().
29750         (WebCore::RenderThemeWin::paintMenuListButton): Code moved from
29751         paintMenuList, less the border-drawing code.
29752         * rendering/RenderThemeWin.h:
29754 2006-10-23  Adam Roben  <aroben@apple.com>
29756         Reviewed by Adele.
29758         Fix: <rdar://problem/4786759> PageUp/PageDown/Home/End don't work in
29759         <select> menus
29761         * platform/win/PopupMenuWin.cpp:
29762         (WebCore::PopupMenu::setFocusedIndex): Only call ::UpdateWindow if we
29763         didn't scroll, because scrolling will do the update for us.
29764         (WebCore::PopupMenu::focusFirst): New method.
29765         (WebCore::PopupMenu::focusLast): New method.
29766         (WebCore::PopupMenu::down): Add a parameter to specify how far we
29767         should try to move the selection.
29768         (WebCore::PopupMenu::up): Ditto.
29769         (WebCore::PopupMenu::invalidateItem): Cleanup code by using IntRect
29770         instead of RECT.
29771         (WebCore::PopupMenu::scrollTo): Return a boolean to say whether
29772         scrolling actually happened.
29773         (WebCore::PopupMenu::scrollToRevealSelection): Ditto.
29774         (WebCore::PopupWndProc): Handle PageUp/PageDown/Home/End.
29776 2006-10-23  Adam Roben  <aroben@apple.com>
29778         Build fix.
29780         * WebCore.vcproj/WebCore.vcproj: Copy headers from new platform/network
29781         directory and subdirectories.
29783 2006-10-23  Adam Roben  <aroben@apple.com>
29785         Build fix.
29787         * plugins/win/PluginStreamWin.h: Rename methods to match Maciej's
29788         changes.
29790 2006-10-23  Adam Roben  <aroben@apple.com>
29792         Build fix.
29794         * WebCore.vcproj/WebCore.vcproj: Copied AdditionalIncludeDirectories
29795         from Release to All Configurations.
29797 2006-10-23  Maciej Stachowiak  <mjs@apple.com>
29799         Rubber-stamped by Anders.
29801         - fixed for ResourceLoader refactoring.
29803         * platform/network/win/ResourceLoaderWin.cpp:
29804         (WebCore::ResourceLoader::onRequestComplete):
29805         (WebCore::ResourceLoader::fileLoadTimer):
29806         (WebCore::ResourceLoader::cancel):
29807         * plugins/win/PluginStreamWin.cpp:
29808         (WebCore::PluginStreamWin::didReceiveData):
29809         (WebCore::PluginStreamWin::didFinishLoading):
29810         * plugins/win/PluginViewWin.cpp:
29811         (WebCore::PluginViewWin::performRequest):
29813 2006-10-22  Maciej Stachowiak  <mjs@apple.com>
29815         Reviewed by Anders.
29817         - updated for new ResourceLoader file locations.
29819         * WebCore.vcproj/WebCore.vcproj: Updated file paths.
29820         * platform/win/ResourceLoaderWin.cpp: Moved to platform/network/win
29821         * platform/win/ResourceLoaderWin.h: ditto
29823 2006-10-22  Adam Roben  <aroben@apple.com>
29825         Reviewed by Steve.
29827         Fix some crashes caused by the <select> element being detached while
29828         the popup is open.
29830         * platform/win/PopupMenuWin.cpp:
29831         (WebCore::PopupWndProc):
29833 2006-10-21  Adam Roben  <aroben@apple.com>
29835         Reviewed by Anders.
29837         Fix: <rdar://problem/4794151> Popup should scroll to reveal selected
29838         item, not just one line at a time
29839         Fix: <rdar://problem/4794229> Popup hot-tracking should not change text
29840         in <select> control
29842         * platform/win/PopupMenuWin.cpp:
29843         (WebCore::PopupMenu::calculatePositionAndSize): Cleaned up code by
29844         translating into screen coordinates right away.
29845         (WebCore::PopupMenu::setFocusedIndex): Added parameter to specify
29846         whether the text in the <select> control should be updated.
29847         (WebCore::PopupMenu::scrollTo): Extracted scrolling code from
29848         PopupWndProc to here.
29849         (WebCore::PopupMenu::scrollToRevealSelection): New method.
29850         (WebCore::PopupWndProc): Use scrollToRevealSelection() instead of
29851         manually scrolling one line at a time. Fixed a bug in detecting a
29852         mouse drag.  Pass in HDC from ::BeginPaint to PopupMenu::paint.
29854 2006-10-21  Adam Roben  <aroben@apple.com>
29856         Build fix.
29858         * WebCore.vcproj/WebCore.vcproj: Add new DeleteButton* files to
29859         project.
29861 2006-10-20  Steve Falkenburg  <sfalken@apple.com>
29863         Reviewed by Anders.
29865         Turn on CFNetwork
29867         * config.h:
29869 2006-10-20  Steve Falkenburg  <sfalken@apple.com>
29871         Reviewed by Ada.
29873         <rdar://4778502> Boomer userAgent string needs to support pulling in proper build #, plus customization
29875         Useragent/versioning changes
29876         
29877         Stamp auto-generated version number into DLL and into user agent.
29878         Generate a real user agent string instead of hardcoding one.
29879         Support client supplying an application name for the user agent.
29880         Support client overriding the useragent (for debug menu).
29881         Support per-URL user agents (not used at least for now).
29883         * bridge/win/FrameWin.cpp:
29884         (WebCore::FrameWin::userAgent): Now calls userAgentForURL
29885         (WebCore::FrameWin::originalRequestURL): Implemented
29886         * bridge/win/FrameWin.h: changed userAgent to userAgentForURL, added originalRequestURL
29887         * platform/win/TemporaryLinkStubs.cpp: Removed originalRequestURL
29889 2006-10-20  Alice Liu  <alice.liu@apple.com>
29891         Reviewed by Steve.
29893         Adding knowledge of the Editor and EditorClient to Windows WebCore
29895         No layout tests needed
29896         
29897         * WebCore.vcproj/WebCore.vcproj:
29898         added Sound.h, SoundWin.cpp, EditorClient.h, Editor.h&.cpp
29900         * bridge/win/FrameWin.cpp:
29901         (WebCore::FrameWin::FrameWin):
29902         added client to constructor params
29904         * bridge/win/FrameWin.h:
29905         added client to constructor params
29907         * platform/win/SoundWin.cpp: Added.
29908         (WebCore::systemBeep):
29909         Calls windows system beep
29911 2006-10-19  Steve Falkenburg  <sfalken@apple.com>
29913         Reviewed by Adam.
29915         <rdar://4771958> Holding down Ctrl when a redirect happens opens the redirected page in a new tab
29916         
29917         Send triggering event to url selection.
29919         * bridge/win/FrameWin.cpp:
29920         (WebCore::FrameWin::urlSelected): Add triggeringEvent parameter
29921         * bridge/win/FrameWin.h: Add triggeringEvent parameter
29922         * platform/win/PlatformMouseEventWin.cpp:
29923         (WebCore::PlatformMouseEvent::PlatformMouseEvent): Call GetKeyState instead of GetAsyncKeyState
29924         * platform/win/WheelEventWin.cpp:
29925         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Call GetKeyState instead of GetAsyncKeyState
29927 2006-10-19  Adam Roben  <aroben@apple.com>
29929         Reviewed by Ada.
29931         This is a partial reimplementation of PopupMenu for Windows. The old
29932         implementation used the Win32 ListBox control, but as we needed to
29933         customize the behavior more and more it began to make sense to roll our
29934         own popup from scratch. That is what this patch accomplishes. And...
29936         Fix: <rdar://problem/4709416>
29937         Implement mouse hot-tracking for <select> menus
29938         Fix: <rdar://problem/4786763>
29939         Can select disabled options in <select> menus using mouse
29940         (It was easier to implement these than to leave them broken.)
29942         * WebCore.vcproj/WebCore.vcproj: Removed PopupMenu.cpp from project.
29943         * platform/win/PopupMenuWin.cpp: Carnage. PopupMenu has gained a slew
29944         of new private instance variables to maintain the window state.
29945         m_container has been removed as it is no longer needed.
29946         (WebCore::PopupMenu::PopupMenu): Initialize new variables.
29947         (WebCore::PopupMenu::~PopupMenu): Clean up new variables.
29948         (WebCore::PopupMenu::show): Now that we don't have m_container, m_popup
29949         gets the WS_BORDER and WS_POPUP styles. Also moved code to animate the
29950         window out of the old PopupMenu::setPositionAndSize() into this method
29951         since it fits the purpose of this method better.
29952         (WebCore::PopupMenu::hide):
29953         (WebCore::PopupMenu::calculatePositionAndSize): Renamed from
29954         setPositionAndSize(), as this method no longer actually sets the window
29955         position and size, just calculates it. It also now makes sure the
29956         window is sized to never show partial items, and takes into account the
29957         window's border when calculating the size.
29958         (WebCore::PopupMenu::setFocusedIndex): New method to handle setting the
29959         selected index of the <select> and highlighting the item in the popup menu.
29960         (WebCore::PopupMenu::down): Use setSelectedIndex() to do the dirty work.
29961         (WebCore::PopupMenu::up): Ditto.
29962         (WebCore::PopupMenu::invalidateItem): New method to invalidate the
29963         rectangle in the popup menu for this item.
29964         (WebCore::PopupMenu::clientRect): New method to calculate an IntRect
29965         for the client area of the window.
29966         (WebCore::PopupMenu::incrementWheelDelta): New method to add the wheel
29967         delta obtained from a WM_MOUSEWHEEL message to any pre-existing delta.
29968         (WebCore::PopupMenu::reduceWheelDelta): New method to reduce the
29969         pre-existing wheel delta by a given amount towards 0.
29970         (WebCore::PopupMenu::paint): Does the work that PopupMenu::drawItem
29971         did, but for every item contained within the damageRect. Can also paint
29972         into a passed-in HDC (needed for window animations and smooth-scrolling).
29973         (WebCore::registerPopup): Changed a void* to a PopupMenu*, since that's
29974         what it really is.
29975         (WebCore::PopupWndProc): Added code to handle all the messages any
29976         self-respecting window would handle, and removed messages only relevant
29977         to the ListBox control.
29978         * platform/win/TemporaryLinkStubs.cpp: Removed unneeded #include.
29980 2006-10-19  Adam Roben  <aroben@apple.com>
29982         Rubberstamped by Maciej.
29984         Build fix.
29986         * bridge/win/FrameWin.cpp:
29987         (WebCore::FrameWin::submitForm):
29989 2006-10-19  Maciej Stachowiak  <mjs@apple.com>
29991         Reviewed by Steve.
29993         - speculative build fix for Windows for my recent changes.
29995         * bridge/win/FrameWin.cpp:
29996         (WebCore::FrameWin::submitForm):
29998 2006-10-19  Anders Carlsson  <acarlsson@apple.com>
30000        * platform/win/TemporaryLinkStubs.cpp:
30001         (WebCore::ResourceLoader::retrieveResponseEncoding):
30002         Build fix.
30004 2006-10-18  Maciej Stachowiak  <mjs@apple.com>
30006         Reviewed by Geoff.
30008         - remove remnants of KXMLCore name.
30010         * WebCore.vcproj/WebCore.vcproj:
30011         * config.h:
30013 2006-10-18  Steve Falkenburg  <sfalken@apple.com>
30015         Fix build
30017         * platform/win/TemporaryLinkStubs.cpp:
30018         (BrowserExtensionWin::historyURL):
30019         (BrowserExtensionWin::BrowserExtensionWin):
30021 2006-10-17  Steve Falkenburg  <sfalken@apple.com>
30023         Build fix
30025         * platform/win/TemporaryLinkStubs.cpp:
30026         (BrowserExtensionWin::createNewWindow):
30028 2006-10-17  Geoffrey Garen  <ggaren@apple.com>
30030         Reviewed by Anders.
30031         
30032         Added WindowFeatures.h to the project.
30034         * WebCore.vcproj/WebCore.vcproj:
30036 2006-10-17  Steve Falkenburg  <sfalken@apple.com>
30038         Reviewed by Maciej.
30040         Turn off a very noisy warning (unknown pragma) caused by an Interfacer include
30042         * WebCore.vcproj/WebCore.vcproj:
30044 2006-10-17  Oliver Hunt  <oliver@apple.com>
30046         Reviewed by Brady.
30048         Fixed alpha in favicons, added composite operation conversion
30049         for cg
30050         
30051         rdar://problem/4758934
30053         * platform/win/GraphicsContextWin.cpp:
30054         (WebCore::GraphicsContext::setCompositeOperation):
30055         * platform/win/ImageWin.cpp:
30056         (WebCore::Image::getHBITMAP):
30057         * platform/win/TemporaryLinkStubs.cpp:
30058         (GraphicsContext::drawLineForMisspelling):
30060 2006-10-15  Geoffrey Garen  <ggaren@apple.com>
30062         Reviewed by Adam.
30064         Added HTMLFrameElementBase to the project.
30065         
30066         * WebCore.vcproj/WebCore.vcproj:
30068 2006-10-17  Adam Roben  <aroben@apple.com>
30070         Reviewed by Geoff.
30072         A couple of cleanups that Geoff suggested after my last checkin.
30074         * platform/win/PopupMenuWin.cpp:
30075         (WebCore::PopupMenu::setPositionAndSize):
30077 2006-10-17  Adam Roben  <aroben@apple.com>
30079         Reviewed by Adele.
30081         Fix: <rdar://problem/4772506> <select> popup menu should not clip items
30082         when width: is set.
30084         Popups are now sized and positioned as follows:
30085         1. Popups are at least as wide as the <select> control on the page.
30086         2. Popups for LTR <select>s are right-aligned with the <select>, popups
30087            for RTL <select>s are left-aligned. This means the scrollbar in the
30088            popup will always line up with the dropdown button in the <select>.
30089         3. Popups try to be wide enough to fit their widest item, but will
30090            shrink to ensure they don't extend off the screen.
30092         * platform/win/PopupMenuWin.cpp:
30093         (WebCore::PopupMenu::setPositionAndSize):
30095 2006-10-16  Adam Roben  <aroben@apple.com>
30097         Reviewed by Kevin.
30099         Fix: <rdar://problem/4758923> <select> menu text doesn't draw right
30100         aligned on right-to-left sites
30102         * platform/win/PopupMenuWin.cpp:
30103         (WebCore::PopupMenu::show): Pass appropriate styles to CreateWindowEx
30104         so that we get a left-aligned scrollbar in RTL popups.
30105         (WebCore::PopupMenu::drawItem): Set text to be right-aligned and draw
30106         RTL when direction:rtl is set.
30107         (WebCore::PopupWndProc): Add 1px of vertical height to each menu item
30108         to match RenderListBox.
30109         * rendering/RenderThemeWin.cpp:
30110         (WebCore::RenderThemeWin::paintMenuList): Draw the dropdown button on
30111         the left when in RTL.
30112         (WebCore::RenderThemeWin::adjustMenuListStyle): Set padding to allow
30113         for the dropdown button being on the left in RTL.
30115 2006-10-16  Adam Roben  <aroben@apple.com>
30117         Reviewed by John.
30119         Forgot to save these changes John suggested before checking in.
30121         * platform/win/PopupMenuWin.cpp:
30122         (WebCore::PopupMenu::drawItem):
30124 2006-10-16  Adam Roben  <aroben@apple.com>
30126         Reviewed by John.
30128         Fix: <rdar://problem/4709480> Implement option groups
30129         Fix: <rdar://problem/4785693> Use CG to draw popup menu items
30130         Fix: <rdar://problem/4709487> Implement separators in <select> popups
30131         Fix: <rdar://problem/4709358> Move CreateWindowEx calls out of PopupMenu constructor
30133         * platform/win/PopupMenuWin.cpp: Added some now-required #includes,
30134         moved some constants into the WebCore namespace.
30135         (WebCore::PopupMenu::PopupMenu): Moved CreateWindowEx calls into PopupMenu::show().
30136         (WebCore::PopupMenu::show): Pass LBS_OWNERDRAWFIXED to CreateWindowEx
30137         to assume responsibility for drawing menu itesm. Removed call to set
30138         the font on the popup menu, as CG will take care of this.
30139         (WebCore::addString): Added to help with the PopupMenu::add* methods.
30140         (WebCore::PopupMenu::addOption): Use addString.
30141         (WebCore::PopupMenu::addGroupLabel): Ditto, and moved from TemporaryLinkStubs.cpp.
30142         (WebCore::PopupMenu::addSeparator): Ditto.
30143         (WebCore::PopupMenu::down): Skip items that are not enabled <option>
30144         elements, and tell the popup menu to set the selection to the element
30145         we end up on.
30146         (WebCore::PopupMenu::up): Ditto.
30147         (WebCore::PopupMenu::drawItem): Added. This is the method that is
30148         called to draw each item in the menu.
30149         (WebCore::PopupWndProc): Add cases for WM_MEASUREITEM and WM_DRAWITEM
30150         messages (required now that we're drawing the menu items ourselves). In
30151         the cases for arrow key presses, return -2 to signify that we're
30152         handling all aspects of changing the selection.
30153         * platform/win/TemporaryLinkStubs.cpp: Removed PopupMenu::addSeparator
30154         and PopupMenu::addGroupLabel.
30156 2006-10-15  Adam Roben  <aroben@apple.com>
30158         Build fix.
30160         Merge OpenSource r17056 to TemporaryLinkStubs.cpp.
30162         * platform/win/TemporaryLinkStubs.cpp:
30163         (WebCore::CacheObjectExpiresTime):
30164         (WebCore::ResponseIsMultipart):
30165         (WebCore::ResponseMIMEType):
30166         (WebCore::IsResponseURLEqualToURL):
30167         (WebCore::ResponseURL):
30168         (WebCore::CachedResource::setResponse):
30169         (WebCore::CachedResource::setAllData):
30171 2006-10-13  Maciej Stachowiak  <mjs@apple.com>
30173         Reviewed by Darin.
30175         - split FrameLoadRequest off from ResourceRequest - it's a ResourceRequest plus frame name plus lockHistory bool
30177         * WebCore.vcproj/WebCore.vcproj:
30178         * bridge/win/FrameWin.cpp:
30179         (WebCore::FrameWin::urlSelected):
30180         (WebCore::FrameWin::submitForm):
30181         * bridge/win/FrameWin.h:
30182         * platform/win/TemporaryLinkStubs.cpp:
30183         (BrowserExtensionWin::createNewWindow):
30184         (IconLoader::notifyIconChanged):
30186 2006-10-13  Dave Hyatt  <hyatt@apple.com>
30188         Make form controls work inside transparency layers by having
30189         them draw into bitmap that is then turned into a CGImageRef
30190         and blended into the CG transparency layer.
30192         Reviewed by aroben
30194         * platform/cg/GraphicsContextPlatformPrivate.h:
30195         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
30196         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
30197         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
30198         * platform/win/GraphicsContextWin.cpp:
30199         (WebCore::GraphicsContext::getWindowsContext):
30200         (WebCore::GraphicsContext::releaseWindowsContext):
30201         * platform/win/IconWin.cpp:
30202         (WebCore::Icon::paint):
30203         * platform/win/PlatformScrollBar.h:
30204         * platform/win/PlatformScrollBarWin.cpp:
30205         (WebCore::PlatformScrollbar::PlatformScrollbar):
30206         (WebCore::PlatformScrollbar::paint):
30207         (WebCore::PlatformScrollbar::paintButton):
30208         (WebCore::PlatformScrollbar::paintTrack):
30209         (WebCore::PlatformScrollbar::paintThumb):
30210         * rendering/RenderThemeWin.cpp:
30211         (WebCore::RenderThemeWin::RenderThemeWin):
30212         (WebCore::drawControl):
30214 2006-10-12  Dave Hyatt  <hyatt@apple.com>
30216         Voting Cairo off the island
30218         or
30220         Jeff Probst: "Cairo, the tribe has spoken.  It's time for you
30221         to go."
30223         * WebCore.vcproj/WebCore.vcproj:
30224         * platform/win/FontDataWin.cpp:
30225         (WebCore::FontData::platformInit):
30226         (WebCore::FontData::platformDestroy):
30227         (WebCore::FontData::platformWidthForGlyph):
30228         * platform/win/FontPlatformData.h:
30229         (WebCore::FontPlatformData::FontPlatformData):
30230         (WebCore::FontPlatformData::hfont):
30231         (WebCore::FontPlatformData::cgFont):
30232         (WebCore::FontPlatformData::operator==):
30233         * platform/win/FontPlatformDataWin.cpp:
30234         * platform/win/FontWin.cpp:
30235         (WebCore::Font::drawGlyphs):
30236         * platform/win/GraphicsContextWin.cpp:
30237         * platform/win/IconWin.cpp:
30238         * platform/win/ImageWin.cpp:
30239         (WebCore::Image::loadPlatformResource):
30240         * platform/win/TemporaryLinkStubs.cpp:
30241         (GraphicsContextPlatformPrivate::clip):
30242         (GraphicsContext::drawLineForMisspelling):
30244 2006-10-12  Adele Peterson  <adele@apple.com>
30246         RS by Geoff.
30248         Renamed uploadControlDetaching to disconnectUploadControl.
30250         * platform/win/FileChooserWin.cpp:
30251         (WebCore::FileChooser::disconnectUploadControl):
30253 2006-10-12  Adele Peterson  <adele@apple.com>
30255         Reviewed by Alice. 
30257         Fixed a small oversight from the last checkin.  The populate method was calling itself, 
30258         instead of the newly renamed addItems method.
30260         * platform/win/PopupMenuWin.cpp:
30261         (WebCore::PopupMenu::populate):
30263 2006-10-12  Adam Roben  <aroben@apple.com>
30265         Reviewed by Adele.
30267         Move popup menu code out of rendering/ and into platform/.
30268         RenderPopupMenu becomes PopupMenu, the
30269         RenderPopupMenuMac/RenderPopupMenuWin subclasses and all the associated
30270         virtual methods go away, RenderTheme gets to stop worrying about popup
30271         menus, PopupMenu becomes ref-counted, and everyone becomes happy.
30273         Also fixes <rdar://problem/4710456> Get rid of RenderPopupMenu{Win,Mac}
30274         classes.
30276         * WebCore.vcproj/WebCore.vcproj: Move files within project.
30277         * platform/win/PopupMenuWin.cpp: Moved from
30278         rendering/RenderPopupMenuWin.cpp. Rename RenderPopupMenuWin to
30279         PopupMenu.
30280         (WebCore::PopupMenu::PopupMenu):
30281         (WebCore::PopupMenu::~PopupMenu):
30282         (WebCore::PopupMenu::clear):
30283         (WebCore::PopupMenu::populate):
30284         (WebCore::PopupMenu::show):
30285         (WebCore::PopupMenu::hide):
30286         (WebCore::PopupMenu::setPositionAndSize):
30287         (WebCore::PopupMenu::addOption):
30288         (WebCore::PopupMenu::focusedIndex): New method to get the index of the
30289         element that is currently highlighted. This won't always be the same as
30290         the selectedIndex because of mouse hot-tracking.
30291         (WebCore::PopupMenu::down):
30292         (WebCore::PopupMenu::up):
30293         (WebCore::registerPopup):
30294         (WebCore::PopupWndProc): Use focusedIndex() instead of sending messages
30295         to the popup window.
30296         * platform/win/TemporaryLinkStubs.cpp: Rename RenderPopupMenuWin to PopupMenu.
30297         (PopupMenu::addSeparator):
30298         (PopupMenu::addGroupLabel):
30299         * rendering/RenderPopupMenuWin.cpp: Removed.
30300         * rendering/RenderPopupMenuWin.h: Removed.
30301         * rendering/RenderThemeWin.cpp: Get rid of createPopupMenu() method.
30302         * rendering/RenderThemeWin.h: Ditto.
30304 2006-10-12  Dave Hyatt  <hyatt@apple.com>
30306         Implement full-blown double buffering (keeping a bitmap in the WebView that holds the backing store for it).
30307         
30308         Reviewed by mjs
30310         * bridge/win/FrameWin.cpp:
30311         (WebCore::FrameWin::addToDirtyRegion):
30312         (WebCore::FrameWin::scrollBackingStore):
30313         (WebCore::FrameWin::updateBackingStore):
30314         * bridge/win/FrameWin.h:
30315         * platform/win/PlatformScrollBar.h:
30316         * platform/win/PlatformScrollBarWin.cpp:
30317         (WebCore::PlatformScrollbar::windowClipRect):
30318         * platform/win/ScrollViewWin.cpp:
30319         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30320         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
30321         (WebCore::ScrollView::updateContents):
30322         (WebCore::ScrollView::updateScrollbars):
30323         (WebCore::ScrollView::windowResizerRect):
30324         (WebCore::ScrollView::addToDirtyRegion):
30325         (WebCore::ScrollView::scrollBackingStore):
30326         (WebCore::ScrollView::updateBackingStore):
30327         * platform/win/WidgetWin.cpp:
30328         (WebCore::Widget::suppressInvalidation):
30329         (WebCore::Widget::invalidateRect):
30330         * plugins/win/PluginViewWin.cpp:
30331         (WebCore::PluginViewWin::windowClipRect):
30333 2006-10-11  Adam Roben  <aroben@apple.com>
30335         Rubberstamped by Brady.
30337         Clean up logic in Icon::newIconForFile.
30339         * platform/win/IconWin.cpp:
30340         (WebCore::Icon::newIconForFile): Error case should return early.
30342 2006-10-11  Adam Roben  <aroben@apple.com>
30344         Reviewed by Steve.
30346         Fixes <rdar://problem/4777719>
30347         Icons don't paint with CG
30349         * platform/win/IconWin.cpp:
30350         (WebCore::Icon::paint): Remove Cairo-specific code now that we have
30351         GraphicsContextWin.
30353 2006-10-11  Adam Roben  <aroben@apple.com>
30355         Rubberstamped by Anders.
30357         Clean up FileChooser::create, Icon::create.
30359         * platform/win/FileChooserWin.cpp:
30360         (WebCore::FileChooser::create): Just return a FileChooser* and let the
30361         implicit cast happen.
30362         * platform/win/IconWin.cpp:
30363         (WebCore::Icon::newIconForFile): Ditto for Icon*.
30365 2006-10-10  Adam Roben  <aroben@apple.com>
30367         Reviewed by Oliver.
30369         Fixes <rdar://problem/4731316>
30370         Crash when <input type="file"> element removed while file chooser is open
30372         * platform/win/FileChooserWin.cpp: Make FileChooser ref-counted.
30373         (WebCore::FileChooser::create):
30374         (WebCore::FileChooser::openFileChooser): Add a protector RefPtr around
30375         the call to GetOpenFileName so we don't get deleted while the file
30376         chooser window is open.
30378 2006-10-10  Adam Roben  <aroben@apple.com>
30380         Reviewed by Anders.
30382         Fixes <rdar://problem/4772428>
30383         <select> popup menus positioned incorrectly within frames
30385         * rendering/RenderPopupMenuWin.cpp:
30386         (WebCore::RenderPopupMenuWin::setPositionAndSize): Use
30387         contentsToWindow() instead of scrollOffset() to correct menu location.
30389 2006-10-10  Adam Roben  <aroben@apple.com>
30391         Reviewed by Adele.
30393         Fixes <rdar://problem/4763246>
30394         Using arrow keys in <select> popup fires onChange event
30396         Also updates text shown in <select> element on page when using arrow
30397         keys to change selection within the popup menu, and makes onChange fire
30398         in the same cases as Firefox/IE.
30400         * rendering/RenderPopupMenuWin.cpp:
30401         (WebCore::RenderPopupMenuWin::down): Update text of the <select>
30402         control. Change call to valueChanged() so that onChange doesn't fire.
30403         (WebCore::RenderPopupMenuWin::up): Ditto.
30404         (WebCore::PopupWndProc): Don't fire onChange anytime selection changes.
30405         Fire onChange when pressing Enter
30407 2006-10-09  Anders Carlsson  <acarlsson@apple.com>
30409         Reviewed by Maciej.
30411         Fix <rdar://problem/4756255>
30412         PDF/Acrobat Reader plugin don't work
30413         
30414         * bridge/win/FrameWin.cpp:
30415         (WebCore::FrameWin::getObjectInstanceForWidget):
30416         (WebCore::FrameWin::getEmbedInstanceForWidget):
30417         Implement these, getting the instance from the plugin view.
30418         
30419         * platform/win/TemporaryLinkStubs.cpp:
30420         Remove functions that are now implemented.
30421         
30422         * plugins/win/PlugInInfoStoreWin.cpp:
30423         (WebCore::PlugInInfoStore::pluginCount):
30424         (WebCore::PlugInInfoStore::supportsMIMEType):
30425         Implement this, returning whether we a plugin exists for a given mime type.
30426         
30427         * plugins/win/PluginDatabaseWin.cpp:
30428         (WebCore::parseVersionString):
30429         (WebCore::compareVersions):
30430         New functions for handling versions.
30431         
30432         (WebCore::addMozillaPluginPaths):
30433         (WebCore::addWindowsMediaPlayerPluginPath):
30434         (WebCore::addQuickTimePluginPath):
30435         (WebCore::addJavaPluginPath):
30436         (WebCore::addAdobeAcrobatPluginPath):
30437         (WebCore::PluginDatabaseWin::defaultPluginPaths):
30438         Factor out checks into separate functions, add checks for Java and Adobe Acrobat.
30440         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
30441         Handle null MIME types.
30442         
30443         * plugins/win/PluginPackageWin.cpp:
30444         (WebCore::PluginPackageWin::load):
30445         Add some missing functions. Unload the library if the load failed.
30446         
30447         * plugins/win/PluginViewWin.cpp:
30448         (WebCore::PluginViewWin::getValue):
30449         Uncomment code for getting the element object.
30450         
30451         (WebCore::PluginViewWin::bindingInstance):
30452         * plugins/win/PluginViewWin.h:
30453         New function which fetches the plugin NPObject and wraps it in an instance.
30455 2006-10-09  Anders Carlsson  <acarlsson@apple.com>
30457         Reviewed by Steve.
30459         Fix <rdar://problem/4773320>
30460         Safari didn't pick up quicktime that was already installed
30461         
30462         * plugins/win/PluginDatabaseWin.cpp:
30463         (WebCore::PluginDatabaseWin::defaultPluginPaths):
30464         
30465 2006-10-09  Anders Carlsson  <acarlsson@apple.com>
30467         * WebCore.vcproj/WebCore.vcproj:
30468         * bridge/win/FrameWin.h:
30469         * platform/win/TemporaryLinkStubs.cpp:
30470         (FrameWin::createJavaAppletWidget):
30471         Fix build.
30473 2006-10-09  Adam Roben  <aroben@apple.com>
30475         Reviewed by Adele.
30477         Fixes <rdar://problem/4773142>
30478         Crash in Settings::mediumFontSize() on ebay.com
30480         Call cancelAndClear() from ~FrameWin (just like Mac does) so we don't
30481         end up calling the Frame::saveDocumentState, which is pure virtual.
30483         * bridge/win/FrameWin.cpp:
30484         (WebCore::FrameWin::~FrameWin):
30486 2006-10-08  Adam Roben  <aroben@apple.com>
30488         Reviewed by Maciej.
30490         Port of OpenSource r16526, r16528
30492         Break up ResourceLoaderWndProc into callback functions.
30494         * platform/win/ResourceLoaderWin.cpp: Fix up #includes
30495         (WebCore::): Remove loadStatusMessage, struct JobLoadStatus, add
30496         messageHandlers array.
30497         (WebCore::ResourceLoaderWndProc): Split handling of different messages
30498         into callbacks.
30499         (WebCore::ResourceLoader::onHandleCreated): New callback.
30500         (WebCore::ResourceLoader::onRequestRedirected): New callback.
30501         (WebCore::ResourceLoader::onRequestComplete): New callback.
30502         (WebCore::initializeOffScreenResourceLoaderWindow): No need to register
30503         loadStatusMessage anymore.
30504         (WebCore::transferJobStatusCallback): Change how information is passed
30505         into ResourceLoaderWndProc.
30507 2006-10-08  Dave Hyatt  <hyatt@apple.com>
30509         Add support for the Win2k/Classic theme for all controls.
30511         * rendering/RenderThemeWin.cpp:
30512         (WebCore::RenderThemeWin::buttonTheme):
30513         (WebCore::RenderThemeWin::textFieldTheme):
30514         (WebCore::RenderThemeWin::menuListTheme):
30515         (WebCore::RenderThemeWin::supportsHover):
30516         (WebCore::RenderThemeWin::determineClassicState):
30517         (WebCore::RenderThemeWin::getClassicThemeData):
30518         (WebCore::RenderThemeWin::getThemeData):
30519         (WebCore::drawControl):
30520         (WebCore::RenderThemeWin::paintButton):
30521         (WebCore::RenderThemeWin::paintTextField):
30522         (WebCore::RenderThemeWin::paintMenuList):
30523         * rendering/RenderThemeWin.h:
30524         (WebCore::ThemeData::m_state):
30526 2006-10-07  Steve Falkenburg  <sfalken@apple.com>
30528         Reviewed by Adam.
30530         Fix <rdar://4772205> Regression (r10623): WinInet loader doesn't ever write to the cache.        
30532         * platform/win/ResourceLoaderWin.cpp:
30533         (WebCore::ResourceLoaderWndProc): Apply POST related flags only for posts.
30534         (WebCore::ResourceLoader::startHTTPRequest): Don't add no-cache-write flag to non-post transactions.
30536 2006-10-07  Dave Hyatt  <hyatt@apple.com>
30538         Add code to paint the Windows 2000 and "Windows Classic" theme look for scrollbars.
30540         * platform/win/PlatformScrollBarWin.cpp:
30541         (WebCore::PlatformScrollbar::paintButton):
30542         (WebCore::PlatformScrollbar::paintTrack):
30543         (WebCore::PlatformScrollbar::paintThumb):
30544         (WebCore::PlatformScrollbar::paintGripper):
30546 2006-10-07  Dave Hyatt  <hyatt@apple.com>
30548         Make sure frames and iframes honor scrolling="no" and
30549         margins.
30551         * bridge/win/FrameWin.cpp:
30552         (WebCore::FrameWin::createFrame):
30554 2006-10-07  Dave Hyatt  <hyatt@apple.com>
30556         Fix the resizer rect so that it is in the ScrollView's coordinate space and not in the document's coordinate space.
30557         (Fixes all the layout errors with the scrollbar overlapping the resizer.)
30558         
30559         Fill scroll corners with white, since it matches Mac (and our chosen resizer look) and looks nicer anyway.
30560         
30561         * platform/win/ScrollViewWin.cpp:
30562         (WebCore::ScrollView::updateScrollbars):
30563         (WebCore::ScrollView::paint):
30565 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30567         Make sure to update plugin clip regions when scrollbars come and go on a scrollview.
30568        
30569         * platform/win/ScrollViewWin.cpp:
30570         (WebCore::ScrollView::updateScrollbars):
30572 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30574         Revise the cached clip rect so that it is in the HWND's coordinate space.  This way SetWindowRgn
30575         doesn't get wastefully called when the plugin is scrolled.
30576        
30577         * plugins/win/PluginViewWin.cpp:
30578         (WebCore::PluginViewWin::updateHwnd):
30580 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30582         Implement flawless clipping of windowed plugins, including
30583         respecting nested frames, CSS overflow and CSS clip.  (This
30584         puts Boomer way ahead of Mac as far as plugin clipping is
30585         concerned).
30586         
30587         Implement support for correct blitting of scrolled subframes,
30588         even when clipped by enclosing scrollviews.
30590         Fix a crash caused by focused children not being cleaned up
30591         when they are removed from a scrollview.
30593         * platform/win/ScrollViewWin.cpp:
30594         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30595         (WebCore::ScrollView::setFrameGeometry):
30596         (WebCore::ScrollView::addChild):
30597         (WebCore::ScrollView::removeChild):
30598         (WebCore::ScrollView::geometryChanged):
30599         * plugins/win/PluginViewWin.cpp:
30600         (WebCore::PluginViewWin::updateHwnd):
30601         (WebCore::PluginViewWin::windowClipRect):
30602         (WebCore::PluginViewWin::setFrameGeometry):
30603         (WebCore::PluginViewWin::geometryChanged):
30604         * plugins/win/PluginViewWin.h:
30606 2006-10-06  Geoffrey Garen  <ggaren@apple.com>
30608         Fixed <rdar://4768789> Crash on ebay.com in Frame::didOpenURL
30609         
30610         The issue was a resource loader making a callback to a
30611         frame after the frame had been destroyed. This doesn't happen on Mac
30612         because Mac WebKit cancels all loads before tearing down frames.
30613         
30614         The solution is to add a callback to Win WebKit to allow a frame
30615         to cancel its main resource load. This is a temporary work-around.
30616         It is temporary because it doesn't address pending subresource loads.
30617         The long-term solution we anticipate is to have a legitimate loader
30618         inside WebCore.
30620         * ChangeLog:
30621         * bridge/win/FrameWin.cpp:
30622         (WebCore::FrameWin::~FrameWin):
30623         * bridge/win/FrameWin.h:
30625 2006-10-06  Steve Falkenburg  <sfalken@apple.com>
30627         Reviewed by Adam, Lou.
30629         Resizer fixes.
30630         We now properly invalidate and draw overlapping contents or opaque.
30632         * platform/win/ScrollViewWin.cpp:
30633         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
30634         (WebCore::ScrollView::updateScrollbars):
30635         (WebCore::ScrollView::resizerOverlapsContent):
30637 2006-10-06  Anders Carlsson  <acarlsson@apple.com>
30639         Reviewed by Adam.
30641         * plugins/win/PluginDatabaseWin.cpp:
30642         (WebCore::PluginDatabaseWin::defaultPluginPaths):
30643         Add (commented out) WMP plugin check.
30645 2006-10-06  Anders Carlsson  <acarlsson@apple.com>
30647         Reviewed by Brady and Geoff.
30649         <rdar://problems/4769023>
30650         Crash on cnettv.com - PluginStreamWin::receivedResponse
30651         
30652         * platform/win/ResourceLoaderWin.cpp:
30653         (WebCore::ResourceLoaderWndProc):
30654         If the Content-Type header is missing, try to figure o ut the content type
30655         from the file extension. Failing that, just use "application/octet-stream".
30657 2006-10-06  Adam Roben  <aroben@apple.com>
30659         Reviewed by Maciej.
30661         Some loader improvements, courtesy of Steve.
30663         Functionally, the improvements are these:
30664         1. Support HTTP Authentication
30665         2. Respect WinInet errors better
30667         There are also some general code cleanups, like extracting the creation
30668         of an HTTP request into its own method.
30670         * platform/win/ResourceLoaderWin.cpp: Add dwError field to
30671         JobLoadStatus to store WinInet error codes. Also removed the
30672         globalInternetHandle() function as the global HINTERNET is now only
30673         needed within startHTTPRequest.
30674         (WebCore::ResourceLoaderWndProc): Respect error codes and add HTTP
30675         Authentication support. Also, process HTTP status codes as ints instead
30676         of strings.
30677         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal): Cleanup
30678         m_formData
30679         (WebCore::transferJobStatusCallback): Cleanup the code, and set
30680         dwError.
30681         (WebCore::ResourceLoader::startHTTPRequest): New method to start a new
30682         HTTP request.
30683         (WebCore::ResourceLoader::start): Restructure code.
30685 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30687         Fix the plugins on cnn.com.  Don't let the scroll view move child plugins around if it hasn't even been parented yet.
30688         
30689         Fix an assert in widget destructors caused by not unparenting a ScrollView's scrollbars in its destructor.
30690         
30691         * platform/win/ScrollViewWin.cpp:
30692         (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
30693         (WebCore::ScrollView::setFrameGeometry):
30695 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30697         Make sure that plugin windows get properly moved if an ancestor scrollview is shifted without changing its size (meaning
30698         that layout doesn't get called on the scrollview to update the widget positions).
30699         
30700         Fixes the plugins on osnews.com.
30701         
30702         * platform/win/ScrollViewWin.cpp:
30703         (WebCore::ScrollView::setFrameGeometry):
30705 2006-10-05  Steve Falkenburg  <sfalken@apple.com>
30707         Reviewed by aroben.
30709         Scrollbars now dodge resizing gripper.
30711         * bridge/win/FrameViewWin.cpp:
30712         (WebCore::FrameView::windowResizerRect): added.
30713         * bridge/win/FrameWin.cpp:
30714         (WebCore::FrameWin::windowResizerRect): added.
30715         * bridge/win/FrameWin.h:
30716         * platform/win/ScrollViewWin.cpp:
30717         (WebCore::ScrollView::updateScrollbars): Scrollbars now dodge resizing gripper.
30719 2006-10-05  Dave Hyatt  <hyatt@apple.com>
30721         Fix a bug where scrollbars would incorrectly show up for iframes when they weren't needed.
30722         Change the flow of control to be more like Mac.
30724         * platform/win/ScrollViewWin.cpp:
30725         (WebCore::ScrollView::resizeContents):
30726         (WebCore::ScrollView::setFrameGeometry):
30728 2006-10-05  Dave Hyatt  <hyatt@apple.com>
30730         Fix clipping and transforms by making sure to propagate them as they happen on the CGContext over into the HDC.
30731         
30732         * platform/cg/GraphicsContextPlatformPrivate.h:
30733         * platform/win/GraphicsContextWin.cpp:
30734         (WebCore::CGContextWithHDC):
30735         (WebCore::GraphicsContext::getWindowsContext):
30736         (WebCore::GraphicsContext::releaseWindowsContext):
30737         (WebCore::GraphicsContextPlatformPrivate::save):
30738         (WebCore::GraphicsContextPlatformPrivate::restore):
30739         (WebCore::GraphicsContextPlatformPrivate::clip):
30740         (WebCore::GraphicsContextPlatformPrivate::scale):
30741         (WebCore::GraphicsContextPlatformPrivate::rotate):
30742         (WebCore::GraphicsContextPlatformPrivate::translate):
30743         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
30744         * platform/win/TemporaryLinkStubs.cpp:
30745         (GraphicsContextPlatformPrivate::clip):
30747 2006-10-05  Geoffrey Garen  <ggaren@apple.com>
30749         build fix.
30750         
30751         * platform/win/WidgetWin.cpp:
30752         (WebCore::Widget::~Widget):
30753         (WebCore::Widget::setParent):
30754         (WebCore::Widget::parent):
30755         (WebCore::Widget::removeFromParent):
30757 2006-10-05  David Hyatt  <hyatt@apple.com>
30759         Stub out GraphicsContextPlatformPrivate methods so that the HDC can
30760         be updated when clips/transforms are applied.
30762         Reviewed by darin
30764         * platform/cg/GraphicsContextPlatformPrivate.h:
30765         (WebCore::GraphicsContextPlatformPrivate::save):
30766         (WebCore::GraphicsContextPlatformPrivate::restore):
30767         (WebCore::GraphicsContextPlatformPrivate::clip):
30768         (WebCore::GraphicsContextPlatformPrivate::scale):
30769         (WebCore::GraphicsContextPlatformPrivate::rotate):
30770         (WebCore::GraphicsContextPlatformPrivate::translate):
30771         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
30773 2006-10-05  Adam Roben  <aroben@apple.com>
30775         Build fix.
30777         * platform/win/TemporaryLinkStubs.cpp:
30778         (BrowserExtensionWin::BrowserExtensionWin): Change Frame* to FrameWin*
30780 2006-10-05  Adam Roben  <aroben@apple.com>
30782         Build fix. Remove RenderImageButton.{h,cpp}.
30784         * WebCore.vcproj/WebCore.vcproj:
30786 2006-10-05  Geoffrey Garen  <ggaren@apple.com>
30788         Reviewed by Darin.
30789         
30790         Fixed <rdar://problem/4766987>
30791         
30792         - renamed ScrollBar to Scrollbar and scroll bar to scrollbar in every case
30793         except for file names.
30794         
30795         - fixed RenderLayer to properly tear down scrollbars, removing them from
30796         their parents.
30798         * bridge/win/FrameViewWin.cpp:
30799         (WebCore::FrameView::passMousePressEventToScrollbar):
30800         * platform/win/PlatformScrollBar.h:
30801         (WebCore::):
30802         * platform/win/PlatformScrollBarWin.cpp:
30803         (WebCore::PlatformScrollbar::PlatformScrollbar):
30804         (WebCore::PlatformScrollbar::~PlatformScrollbar):
30805         (WebCore::PlatformScrollbar::updateThumbPosition):
30806         (WebCore::PlatformScrollbar::updateThumbProportion):
30807         (WebCore::PlatformScrollbar::invalidateTrack):
30808         (WebCore::PlatformScrollbar::invalidatePart):
30809         (WebCore::PlatformScrollbar::width):
30810         (WebCore::PlatformScrollbar::height):
30811         (WebCore::PlatformScrollbar::setRect):
30812         (WebCore::PlatformScrollbar::setEnabled):
30813         (WebCore::PlatformScrollbar::paint):
30814         (WebCore::PlatformScrollbar::backButtonRect):
30815         (WebCore::PlatformScrollbar::forwardButtonRect):
30816         (WebCore::PlatformScrollbar::trackRect):
30817         (WebCore::PlatformScrollbar::thumbRect):
30818         (WebCore::PlatformScrollbar::gripperRect):
30819         (WebCore::PlatformScrollbar::splitTrack):
30820         (WebCore::PlatformScrollbar::thumbPosition):
30821         (WebCore::PlatformScrollbar::thumbLength):
30822         (WebCore::PlatformScrollbar::trackLength):
30823         (WebCore::PlatformScrollbar::paintButton):
30824         (WebCore::PlatformScrollbar::paintTrack):
30825         (WebCore::PlatformScrollbar::paintThumb):
30826         (WebCore::PlatformScrollbar::paintGripper):
30827         (WebCore::PlatformScrollbar::hitTest):
30828         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
30829         (WebCore::PlatformScrollbar::handleMouseOutEvent):
30830         (WebCore::PlatformScrollbar::handleMousePressEvent):
30831         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
30832         (WebCore::PlatformScrollbar::startTimerIfNeeded):
30833         (WebCore::PlatformScrollbar::stopTimerIfNeeded):
30834         (WebCore::PlatformScrollbar::autoscrollPressedPart):
30835         (WebCore::PlatformScrollbar::autoscrollTimerFired):
30836         (WebCore::PlatformScrollbar::pressedPartScrollDirection):
30837         (WebCore::PlatformScrollbar::pressedPartScrollGranularity):
30838         (WebCore::PlatformScrollbar::thumbUnderMouse):
30839         (WebCore::PlatformScrollbar::themeChanged):
30840         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
30841         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
30842         * platform/win/ScrollViewWin.cpp:
30843         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
30844         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
30845         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
30846         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30847         (WebCore::ScrollView::resizeContents):
30848         (WebCore::ScrollView::scrollBy):
30849         (WebCore::ScrollView::hScrollbarMode):
30850         (WebCore::ScrollView::vScrollbarMode):
30851         (WebCore::ScrollView::suppressScrollbars):
30852         (WebCore::ScrollView::setHScrollbarMode):
30853         (WebCore::ScrollView::setVScrollbarMode):
30854         (WebCore::ScrollView::setScrollbarsMode):
30855         (WebCore::ScrollView::updateScrollbars):
30856         (WebCore::ScrollView::scrollbarUnderMouse):
30857         (WebCore::ScrollView::paint):
30858         (WebCore::ScrollView::themeChanged):
30860 2006-10-05  Adam Roben  <aroben@apple.com>
30862         Reviewed by Maciej.
30864         Fixes <rdar://problem/4757387>
30865         Unable to sign on to my.yahoo.com
30867         This patch fixes a number of bugs that all resulted in not being able
30868         to log on to many websites. The problems were that we weren't allowing
30869         redirects between HTTP and HTTPS sites and weren't correctly handling
30870         redirects from POST requests to GET requests.
30872         * platform/win/ResourceLoaderWin.cpp:
30873         (WebCore::globalInternetHandle): Move internetHandle and callbackHandle
30874         into file scope, and add this function to initialize them.
30875         (WebCore::logLastError): Add this debug logging function to give more
30876         readable WinInet error messages.
30877         (WebCore::ResourceLoaderWndProc): The most substantial change here is
30878         to allow redirects from POST to GET to function correctly. To do this
30879         we have to create a new HINTERNET for the GET. We also have to be sure
30880         not to try to read from our now-invalid handles after the redirect.
30881         (WebCore::transferJobStatusCallback): Rename timerId to jobId, since
30882         that's what it is.
30883         (WebCore::ResourceLoader::start): Call new static initializer, and pass
30884         flags to allow HTTP<->HTTPS redirects. Also change a few delete calls
30885         to kill().
30887 2006-10-05  Maciej Stachowiak  <mjs@apple.com>
30889         Reviewed by Adam.
30891         - changed ResourceLoader to be refcounted
30893         It keeps a ref on itself while loading as well. This makes
30894         for a much saner memory management model than the previous.
30896         In addition, keep it ref'd across all of ResourceLoaderWndProc
30897         to avoid sending messages to jobs that get deleted partway.
30899         This fixes <rdar://problem/4766859> Crash in ResourceLoaderWndProc - line 232 at televisionwithoutpity.com, washingtonpost.com
30901         * platform/win/ResourceLoaderWin.cpp:
30902         (WebCore::ResourceLoaderWndProc):
30903         (WebCore::ResourceLoader::start):
30904         * plugins/win/PluginStreamWin.cpp:
30905         (WebCore::PluginStreamWin::PluginStreamWin):
30906         (WebCore::PluginStreamWin::start):
30907         (WebCore::PluginStreamWin::stop):
30908         * plugins/win/PluginStreamWin.h:
30910 2006-10-05  Dave Hyatt  <hyatt@apple.com>
30912         Make key events work with iframes.  Implement scrolling keyboard behavior.  Fix a bug with mouse wheeling that
30913         made it fail on iframes nested within iframes.
30914         
30915         Reviewed by mjs
30917         * bridge/win/FrameViewWin.cpp:
30918         (WebCore::FrameView::passWheelEventToSubframe):
30919         * platform/win/ScrollViewWin.cpp:
30920         (WebCore::ScrollView::scroll):
30921         * platform/win/WidgetWin.cpp:
30922         (WebCore::Widget::Widget):
30923         (WebCore::Widget::capturingMouse):
30924         (WebCore::Widget::setCapturingMouse):
30925         (WebCore::Widget::capturingTarget):
30926         (WebCore::Widget::setCapturingChild):
30927         (WebCore::Widget::hasFocus):
30928         (WebCore::Widget::setFocus):
30929         (WebCore::Widget::clearFocus):
30930         (WebCore::Widget::setFocused):
30931         (WebCore::Widget::focusedTarget):
30932         (WebCore::Widget::focusedChild):
30933         (WebCore::Widget::setFocusedChild):
30934         (WebCore::Widget::clearFocusFromDescendants):
30936 2006-10-05  Adam Roben  <aroben@apple.com>
30938         Reviewed by Maciej and Tim H.
30940         Fixes <rdar://problem/4760991>
30941         Flash content doesn't go away when navigating to a new page
30943         Actually destroy subframes when detaching.
30945         * bridge/win/FrameWin.cpp:
30946         (WebCore::FrameWin::frameDetached): 
30947         * bridge/win/FrameWin.h:
30949 2006-10-05  Anders Carlsson  <acarlsson@apple.com>
30951         Reviewed by Maciej.
30952         
30953         <rdar://problem/4762998>
30954         REGRESSION: dragging to select text does not work
30955         
30956         * platform/win/PlatformMouseEventWin.cpp:
30957         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
30958         Set the correct button for WM_MOUSEMOVE events.
30960 2006-10-05  Anders Carlsson  <acarlsson@apple.com>
30962         Reviewed by Adam.
30964         rdar://problem/4757081
30965         Crashes/hangs when using Flash 8 plugin (Flash 9 works MUCH better)
30966         
30967         * plugins/win/PluginStreamWin.cpp:
30968         (WebCore::PluginStreamWin::startStream):
30969         Encode javascript URLs before passing them to the plugin.
30971 2006-10-05  Darin Adler  <darin@apple.com>
30973         Reviewed by Adam.
30975         * platform/win/NotImplemented.h: Changed implementation to use Assertions.h.
30976         Also fixed both macros to be single-statement macros.
30978 2006-10-05  Darin Adler  <darin@apple.com>
30980         Reviewed by Adam.
30982         - fix <rdar://problem/4764253>
30983           frame targeting not implemented.
30985         * bridge/win/FrameWin.h: Added new window boolean to openURL. Also changed
30986         type from DeprecatedString to String.
30987         * bridge/win/FrameWin.cpp: (WebCore::FrameWin::urlSelected): Added logic
30988         to do frame targeting.
30990         * platform/win/BString.h: Added. Convenience for working with
30991         BSTR and handling allocation/free.
30992         * platform/win/BString.cpp: Added.
30993         * WebCore.vcproj/WebCore.vcproj: Added new files.
30995 2006-10-03  Dave Hyatt  <hyatt@apple.com>
30997         Land the new ScrollView.
30998         
30999         Reviewed by anders
31001         * bridge/win/FrameViewWin.cpp:
31002         (WebCore::FrameView::passMousePressEventToScrollbar):
31003         * platform/win/PlatformScrollBar.h:
31004         * platform/win/PlatformScrollBarWin.cpp:
31005         (WebCore::PlatformScrollBar::thumbLength):
31006         (WebCore::PlatformScrollBar::hitTest):
31007         (WebCore::PlatformScrollBar::horizontalScrollBarHeight):
31008         (WebCore::PlatformScrollBar::verticalScrollBarWidth):
31009         * platform/win/ScrollViewWin.cpp:
31010         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
31011         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollBar):
31012         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollBar):
31013         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
31014         (WebCore::ScrollView::ScrollView):
31015         (WebCore::ScrollView::updateContents):
31016         (WebCore::ScrollView::visibleWidth):
31017         (WebCore::ScrollView::visibleHeight):
31018         (WebCore::ScrollView::visibleContentRect):
31019         (WebCore::ScrollView::resizeContents):
31020         (WebCore::ScrollView::contentsWidth):
31021         (WebCore::ScrollView::contentsHeight):
31022         (WebCore::ScrollView::windowToContents):
31023         (WebCore::ScrollView::contentsToWindow):
31024         (WebCore::ScrollView::convertChildToSelf):
31025         (WebCore::ScrollView::convertSelfToChild):
31026         (WebCore::ScrollView::scrollOffset):
31027         (WebCore::ScrollView::maximumScroll):
31028         (WebCore::ScrollView::scrollBy):
31029         (WebCore::ScrollView::scrollPointRecursively):
31030         (WebCore::ScrollView::hScrollBarMode):
31031         (WebCore::ScrollView::vScrollBarMode):
31032         (WebCore::ScrollView::suppressScrollBars):
31033         (WebCore::ScrollView::setHScrollBarMode):
31034         (WebCore::ScrollView::setVScrollBarMode):
31035         (WebCore::ScrollView::setScrollBarsMode):
31036         (WebCore::ScrollView::setStaticBackground):
31037         (WebCore::ScrollView::updateScrollBars):
31038         (WebCore::ScrollView::scrollbarUnderMouse):
31039         (WebCore::ScrollView::addChild):
31040         (WebCore::ScrollView::removeChild):
31041         (WebCore::ScrollView::paint):
31042         (WebCore::ScrollView::scrolled):
31043         * platform/win/WidgetWin.cpp:
31044         (WebCore::Widget::Widget):
31045         (WebCore::Widget::convertToContainingWindow):
31046         (WebCore::Widget::convertFromContainingWindow):
31047         (WebCore::Widget::convertChildToSelf):
31048         (WebCore::Widget::convertSelfToChild):
31049         (WebCore::Widget::setSuppressInvalidation):
31050         (WebCore::Widget::invalidateRect):
31051         * plugins/win/PluginViewWin.cpp:
31052         (WebCore::PluginViewWndProc):
31053         (WebCore::PluginViewWin::setFrameGeometry):
31054         (WebCore::PluginViewWin::scrolled):
31055         * plugins/win/PluginViewWin.h:
31057 2006-10-03  Adam Roben  <aroben@apple.com>
31059         Reviewed by Steve.
31061         Improvements to error handling in PluginStreamWin.
31063         * plugins/win/PluginStreamWin.cpp:
31064         (WebCore::PluginStreamWin::deliverData): Fail quietly if called after
31065         termination (due to bad error handling in ResourceLoaderWin), ASSERT if
31066         called before stream has been started.
31067         (WebCore::PluginStreamWin::receivedData): Ditto.
31068         (WebCore::PluginStreamWin::receivedAllData): Ditto.
31070 2006-10-03  Adam Roben  <aroben@apple.com>
31072         Reviewed by Anders.
31074         Fixes <rdar://problem/4760963>
31075         Failed ASSERT in PluginStreamWin::~PluginStreamWin at espn.com
31077         We now store the state of a stream as a tri-state enum in
31078         m_streamState. This allows us to differentiate between before and after the
31079         stream has been started.
31081         * plugins/win/PluginStreamWin.cpp:
31082         (WebCore::PluginStreamWin::PluginStreamWin): Initialize members of
31083         m_stream struct individually.
31084         (WebCore::PluginStreamWin::~PluginStreamWin):
31085         (WebCore::PluginStreamWin::startStream):
31086         (WebCore::PluginStreamWin::destroyStream):
31087         (WebCore::PluginStreamWin::deliverData): Return early if the stream
31088         isn't started.
31089         (WebCore::PluginStreamWin::receivedData): Ditto.
31090         (WebCore::PluginStreamWin::receivedAllData): Ditto.
31091         * plugins/win/PluginStreamWin.h:
31092         (WebCore::): Add PluginStreamState enum.
31094 2006-10-03  Adam Roben  <aroben@apple.com>
31096         Reviewed by Darin.
31098         Fixes <rdar://problem/4603342>
31099         Keyboard navigability
31101         Implement tabbing between form elements (in the single-frame case).
31103         * bridge/win/FrameWin.cpp: Add methods to determine tabbing
31104         preferences.
31105         (WebCore::FrameWin::tabsToLinks):
31106         (WebCore::FrameWin::tabsToAllControls):
31107         * bridge/win/FrameWin.h: Add tabsToLinks() to FrameWinClient
31108         * platform/win/ScrollViewWin.cpp:
31109         (WebCore::ScrollView::scrollPointRecursively): Implemented for
31110         single-frame case.
31111         * platform/win/TemporaryLinkStubs.cpp: Remove stub for now-implemented
31112         ScrollView::scrollPointsRecursively
31114 2006-10-02  Adam Roben  <aroben@apple.com>
31116         Reviewed by Maciej.
31118         Fixes <rdar://problem/4743497>
31119         Can't check checkboxes
31121         Let Windows determine which mouse button is pressed.
31123         * platform/win/PlatformMouseEventWin.cpp:
31124         (WebCore::PlatformMouseEvent::PlatformMouseEvent): Use message
31125         parameter to determine which mouse button is pressed.
31127 2006-10-02  Steve Falkenburg  <sfalken@apple.com>
31129         Reviewed by Hyatt.
31131         <rdar://4757387> (partial fix) Unable to sign on to my.yahoo.com
31132         <rdar://4757405> (partial fix) Unable to log onto secure site (www.schwab.com)
31133         <rdar://4757411> (partial fix) Unable to log onto any AppleConnect site (but using back and resubmiting works)
31135         WinInet fixes.
31136         Don't post data using HTTP when HTTPS should be used.
31137         Fix redirect from POST to GET case.
31138         
31139         There is a remaining bug with the way that we queue WinInet callbacks
31140         still to be addressed.
31142         * platform/win/ResourceLoaderWin.cpp:
31143         (WebCore::addToOutstandingJobs): Skip dwContext of 0 (rollover case).
31144         (WebCore::ResourceLoaderWndProc): Call default wndproc properly.
31145             Pass INTERNET_FLAG_SECURE when necessary for HTTPS.
31146             Fix redirect code.
31147             Initialize buffers struct.
31148             Pass proper context in InternetReadFileExA
31149         (WebCore::initializeOffScreenResourceLoaderWindow): Init a struct to {0} instead of using memset.
31150         (WebCore::transferJobStatusCallback): Prevent future bugs by making an else a bit more explicit.
31151         (WebCore::ResourceLoader::start): Pass proper port for HTTP vs. HTTPS.
31152         (WebCore::ResourceLoader::cancel): Zero out handle when closing.
31154 2006-10-01  Dave Hyatt  <hyatt@apple.com>
31156         Finish the scrollbar.  Handle arrow and track scrolling.  Everything is finished now except for implementing a Win2k look.
31158         * platform/win/PlatformScrollBar.h:
31159         * platform/win/PlatformScrollBarWin.cpp:
31160         (WebCore::PlatformScrollBar::PlatformScrollBar):
31161         (WebCore::PlatformScrollBar::~PlatformScrollBar):
31162         (WebCore::PlatformScrollBar::thumbRect):
31163         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31164         (WebCore::PlatformScrollBar::handleMousePressEvent):
31165         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31166         (WebCore::PlatformScrollBar::startTimerIfNeeded):
31167         (WebCore::PlatformScrollBar::stopTimerIfNeeded):
31168         (WebCore::PlatformScrollBar::autoscrollPressedPart):
31169         (WebCore::PlatformScrollBar::autoscrollTimerFired):
31170         (WebCore::PlatformScrollBar::pressedPartScrollDirection):
31171         (WebCore::PlatformScrollBar::pressedPartScrollGranularity):
31172         (WebCore::PlatformScrollBar::thumbUnderMouse):
31174 2006-10-01  Dave Hyatt  <hyatt@apple.com>
31175         
31176         Make thumb dragging work on the scrollbar.
31177         
31178         Fix mouse and wheel events to use GET_X_LPARAM and GET_Y_LPARAM so that negative coordinates work.
31179         (This comes up when a widget is capturing events and the mouse moves outside the HWND.)
31180         
31181         * platform/win/PlatformMouseEventWin.cpp:
31182         (WebCore::positionForEvent):
31183         (WebCore::globalPositionForEvent):
31184         * platform/win/PlatformScrollBar.h:
31185         * platform/win/PlatformScrollBarWin.cpp:
31186         (WebCore::PlatformScrollBar::PlatformScrollBar):
31187         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31188         (WebCore::PlatformScrollBar::handleMousePressEvent):
31189         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31190         (WebCore::PlatformScrollBar::startTimerIfNeeded):
31191         (WebCore::PlatformScrollBar::stopTimerIfNeeded):
31192         * platform/win/WheelEventWin.cpp:
31193         (WebCore::positionForEvent):
31194         (WebCore::globalPositionForEvent):
31196 2006-10-01  Dave Hyatt  <hyatt@apple.com>
31198         Hook up the mouse capture architecture so that child widgets capture events while the mouse is pressed.
31199         
31200         Hook up tracking the pressed object on a scrollbar and proper painting of the scrollbar's
31201         pressed state.
31202         
31203         * bridge/win/FrameViewWin.cpp:
31204         (WebCore::FrameView::passMousePressEventToSubframe):
31205         (WebCore::FrameView::passMousePressEventToScrollbar):
31206         * platform/win/PlatformScrollBar.h:
31207         * platform/win/PlatformScrollBarWin.cpp:
31208         (WebCore::PlatformScrollBar::PlatformScrollBar):
31209         (WebCore::PlatformScrollBar::paintButton):
31210         (WebCore::PlatformScrollBar::paintTrack):
31211         (WebCore::PlatformScrollBar::paintThumb):
31212         (WebCore::PlatformScrollBar::paintGripper):
31213         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31214         (WebCore::PlatformScrollBar::handleMousePressEvent):
31215         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31216         * platform/win/WidgetWin.cpp:
31217         (WebCore::Widget::setCapturingChild):
31219 2006-09-30  Dave Hyatt  <hyatt@apple.com>
31221         This patch makes iframes and frames able to receive mouse events.  Down, up, click, selection
31222         all work.  This patch also fixes bugs in scrolling and makes wheel events work on iframes.
31223         A capturing system for routing events to the proper subwidget when the mouse has down
31224         is also stubbed out (but not yet used).
31225         
31226         Reviewed by andersca
31228         * WebCore.vcproj/WebCore.vcproj:
31229         * bridge/win/FrameViewWin.cpp: Added.
31230         (WebCore::FrameView::passMousePressEventToSubframe):
31231         (WebCore::FrameView::passMouseMoveEventToSubframe):
31232         (WebCore::FrameView::passMouseReleaseEventToSubframe):
31233         (WebCore::FrameView::passWheelEventToSubframe):
31234         * bridge/win/FrameWin.cpp:
31235         * bridge/win/FrameWin.h:
31236         * platform/win/PlatformScrollBar.h:
31237         * platform/win/PlatformScrollBarWin.cpp:
31238         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31239         (WebCore::PlatformScrollBar::handleMouseOutEvent):
31240         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31241         * platform/win/ScrollViewWin.cpp:
31242         (WebCore::ScrollView::visibleContentRect):
31243         (WebCore::ScrollView::scrollBy):
31244         (WebCore::ScrollView::removeChild):
31245         * platform/win/TemporaryLinkStubs.cpp:
31246         (FrameWin::print):
31247         (FrameWin::lastEventIsMouseUp):
31248         * platform/win/WidgetWin.cpp:
31249         (WebCore::Widget::Widget):
31250         (WebCore::Widget::capturingMouse):
31251         (WebCore::Widget::setCapturingMouse):
31252         (WebCore::Widget::capturingTarget):
31253         (WebCore::Widget::capturingChild):
31254         (WebCore::Widget::setCapturingChild):
31256 2006-09-29  Steve Falkenburg  <sfalken@apple.com>
31258         Fix the build.
31260         * platform/win/PlatformScrollBarWin.cpp:
31262 2006-09-29  Adele Peterson  <adele@apple.com>
31264         Adding RenderListBox files.
31266         * WebCore.vcproj/WebCore.vcproj:
31268 2006-09-29  Adele Peterson  <adele@apple.com>
31270         Reviewed by Adam.
31272         Updated constructor for PlatformScrollBar to include controlSize argument.
31274         * platform/win/PlatformScrollBar.h:
31275         * platform/win/PlatformScrollBarWin.cpp:
31276         (WebCore::PlatformScrollBar::PlatformScrollBar):
31278 2006-09-29  Adam Roben  <aroben@apple.com>
31280         Reviewed by hyatt.
31282         Add error logging to plugin code.
31284         * WebCore.vcproj/WebCore.vcproj: Added PluginDebug.h
31285         * platform/win/NotImplemented.h: Add surrounding #ifndef/#endif
31286         * plugins/win/PluginDebug.h: Added.
31287         * plugins/win/PluginPackageWin.cpp: Add error logging
31288         (WebCore::PluginPackageWin::load):
31289         * plugins/win/PluginStreamWin.cpp: Ditto.
31290         (WebCore::PluginStreamWin::startStream):
31291         (WebCore::PluginStreamWin::destroyStream):
31292         (WebCore::PluginStreamWin::deliverData):
31293         (WebCore::PluginStreamWin::receivedAllData):
31294         * plugins/win/PluginViewWin.cpp: Ditto.
31295         (WebCore::PluginViewWin::start):
31296         (WebCore::PluginViewWin::stop):
31297         (WebCore::PluginViewWin::newStream):
31298         (WebCore::PluginViewWin::write):
31299         (WebCore::PluginViewWin::destroyStream):
31301 2006-09-29  Dave Hyatt  <hyatt@apple.com>
31303         Fork MouseEventWin.cpp into (the better-named) PlatformMouseEventWin.cpp.
31304         
31305         * WebCore.vcproj/WebCore.vcproj:
31306         * platform/win/PlatformMouseEventWin.cpp: Added.
31308 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31310         Make scrollbars scroll correctly when setValue is called.  Needed to do float math instead of integer
31311         math (and also fix some buggy math when computing the thumb position).
31313         * platform/win/PlatformScrollBarWin.cpp:
31314         (WebCore::PlatformScrollBar::thumbPosition):
31316 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31318         Make scrollbars on Win32 respond to hover events.  The thumb and arrow buttons will now properly hover when
31319         the mouse enters and exits them.
31320         
31321         * platform/win/PlatformScrollBar.h:
31322         * platform/win/PlatformScrollBarWin.cpp:
31323         (WebCore::PlatformScrollBar::invalidatePart):
31324         (WebCore::PlatformScrollBar::paintButton):
31325         (WebCore::PlatformScrollBar::paintTrack):
31326         (WebCore::PlatformScrollBar::paintThumb):
31327         (WebCore::PlatformScrollBar::paintGripper):
31328         (WebCore::PlatformScrollBar::hitTest):
31329         (WebCore::PlatformScrollBar::mouseMoved):
31330         (WebCore::PlatformScrollBar::mouseExited):
31332 2006-09-28  Steve Falkenburg  <sfalken@apple.com>
31334         Reviewed by Maciej.
31336         Use $(ConfigSuffix) set via vsprops files to add _debug
31337         to end of debug filenames.
31339         Update B&I build script.
31341         * WebCore.vcproj/WebCore.make:
31342         * WebCore.vcproj/WebCore.vcproj:
31343         * WebCore.vcproj/debug.vsprops: Added.
31344         * WebCore.vcproj/release.vsprops: Added.
31346 2006-09-28  Adam Roben  <aroben@apple.com>
31348         Reviewed by Hyatt.
31350         Avoid creating LOGFONTs for bitmap fonts under CG, since we don't
31351         support them anyway.
31353         * platform/win/FontCacheWin.cpp:
31354         (WebCore::FontCache::createFontPlatformData): Set lfOutPrecision to
31355         OUT_TT_ONLY_PRECIS to avoid bitmap fonts.
31356         * platform/win/FontPlatformDataWin.cpp:
31357         (WebCore::FontPlatformData::FontPlatformData): Change the LOG_ERROR
31358         back to an ASSERT since we should never reach this condition now.
31360 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31362         This patch eliminates viewportToContents/contentsToViewport in favor of convertTo/FromContainingWindow.
31363         ScrollView now subclasses these methods to factor in its scrollOffset and to deal with the document
31364         view.
31365        
31366         Reviewed by mjs (the convertTo/From changes), (I added the elimination of viewportToContents to
31367         the patch after review, once I realized that these new functions essentially do the same thing.)
31369         * platform/win/ScrollViewWin.cpp:
31370         (WebCore::ScrollView::updateContents):
31371         (WebCore::ScrollView::convertToContainingWindow):
31372         (WebCore::ScrollView::convertFromContainingWindow):
31373         (WebCore::ScrollView::scrollBy):
31374         * platform/win/WidgetWin.cpp:
31375         (WebCore::Widget::convertToContainingWindow):
31376         (WebCore::Widget::convertFromContainingWindow):
31378 2006-09-28  Adam Roben  <aroben@apple.com>
31380         Reviewed by Anders.
31382         Fail without crashing and log an error when CG encounters a bitmap
31383         font.
31385         * platform/win/FontPlatformDataWin.cpp:
31386         (WebCore::FontPlatformData::FontPlatformData): Trade LOG_ERROR for
31387         ASSERT_WITH_MESSAGE
31389 2006-09-27  Alice Liu  <alice.liu@apple.com>
31391         Reviewed by Steve & Adam.
31393         * WebCore.vcproj/WebCore.vcproj:
31394         Added files to the project file
31395         * platform/win/TemporaryLinkStubs.cpp:
31396         Removed stub for findWordBoundary
31397         * platform/win/TextBoundariesWin.cpp: Added.
31398         Implemented cross-platform findWordBoundary.  We're still keeping the mac one intact for now. 
31399         (WebCore::findWordBoundary):
31401 2006-09-28  Adam Roben  <aroben@apple.com>
31403         Reviewed by Adele.
31405         Remove never-to-be-used PopUpButton
31407         * WebCore.vcproj/WebCore.vcproj: Remove PopUpButton.h
31408         * platform/win/TemporaryLinkStubs.cpp: Remove PopUpButton:: methods
31410 2006-09-28  Adam Roben  <aroben@apple.com>
31412         Reviewed by Alice.
31414         Replace notImplemented() with LOG_NOIMPL() and STOP_NOIMPL() macros
31415         which generate debug output. STOP_NOIMPL() also generates a debug
31416         break. Replace calls to notImplemented() with
31417         LOG_NOIMPL()/STOP_NOIMPL() as appropriate. This should stop some unnecessary
31418         crashes where notImplemented() was called from a method that can fail
31419         safely.
31421         * WebCore.vcproj/WebCore.vcproj: Added NotImplemented.h
31422         * platform/win/FontWin.cpp: Use LOG_NOIMPL() instead of notImplemented().
31423         (WebCore::Font::selectionRectForComplexText):
31424         (WebCore::Font::drawComplexText):
31425         (WebCore::Font::floatWidthForComplexText):
31426         (WebCore::Font::offsetForPositionForComplexText):
31427         * platform/win/NotImplemented.h: Added. Contains new LOG_NOIMPL() and
31428         STOP_NOIMPL() macros.
31429         * platform/win/TemporaryLinkStubs.cpp: Use LOG_NOIMPL() and
31430         STOP_NOIMPL() instead of notImplemented() or nothing.
31431         (PopUpButton::focusPolicy):
31432         (PopUpButton::populate):
31433         (Widget::enableFlushDrawing):
31434         (Widget::focusPolicy):
31435         (Widget::disableFlushDrawing):
31436         (Widget::lockDrawingFocus):
31437         (Widget::unlockDrawingFocus):
31438         (JavaAppletWidget::JavaAppletWidget):
31439         (TextField::selectAll):
31440         (TextField::addSearchResult):
31441         (TextField::selectionStart):
31442         (TextField::hasSelectedText):
31443         (TextField::selectedText):
31444         (TextField::setAutoSaveName):
31445         (TextField::checksDescendantsForFocus):
31446         (TextField::setSelection):
31447         (TextField::setMaxResults):
31448         (TextField::edited):
31449         (Slider::Slider):
31450         (Slider::sizeHint):
31451         (Slider::setValue):
31452         (Slider::setMaxValue):
31453         (Slider::setMinValue):
31454         (Slider::~Slider):
31455         (Slider::setFont):
31456         (Slider::value):
31457         (ListBox::sizeForNumberOfLines):
31458         (ListBox::isSelected):
31459         (ListBox::checksDescendantsForFocus):
31460         (Slider::focusPolicy):
31461         (ListBox::focusPolicy):
31462         (TextField::focusPolicy):
31463         (Cursor::Cursor):
31464         (PlatformMouseEvent::PlatformMouseEvent):
31465         (WebCore::searchableIndexIntroduction):
31466         (WebCore::findNextSentenceFromIndex):
31467         (WebCore::findSentenceBoundary):
31468         (WebCore::findNextWordFromIndex):
31469         (WebCore::ServeSynchronousRequest):
31470         (FrameWin::focusWindow):
31471         (FrameWin::unfocusWindow):
31472         (FrameWin::locationbarVisible):
31473         (FrameWin::registerCommandForRedo):
31474         (FrameWin::getObjectInstanceForWidget):
31475         (FrameWin::getEmbedInstanceForWidget):
31476         (FrameWin::getAppletInstanceForWidget):
31477         (FrameWin::canRedo):
31478         (FrameWin::canUndo):
31479         (FrameWin::canPaste):
31480         (FrameWin::canGoBackOrForward):
31481         (FrameWin::shouldInterruptJavaScript):
31482         (FrameWin::openURL):
31483         (FrameWin::print):
31484         (FrameWin::passMouseDownEventToWidget):
31485         (FrameWin::issueCutCommand):
31486         (FrameWin::issueCopyCommand):
31487         (FrameWin::issuePasteCommand):
31488         (FrameWin::issueUndoCommand):
31489         (FrameWin::issueRedoCommand):
31490         (FrameWin::issuePasteAndMatchStyleCommand):
31491         (FrameWin::issueTransposeCommand):
31492         (FrameWin::passWheelEventToChildWidget):
31493         (FrameWin::mimeTypeForFileName):
31494         (FrameWin::scheduleClose):
31495         (FrameWin::markMisspellings):
31496         (FrameWin::menubarVisible):
31497         (FrameWin::personalbarVisible):
31498         (FrameWin::statusbarVisible):
31499         (FrameWin::toolbarVisible):
31500         (FrameWin::originalRequestURL):
31501         (FrameWin::isLoadTypeReload):
31502         (BrowserExtensionWin::canRunModal):
31503         (BrowserExtensionWin::createNewWindow):
31504         (BrowserExtensionWin::canRunModalNow):
31505         (BrowserExtensionWin::runModal):
31506         (BrowserExtensionWin::goBackOrForward):
31507         (BrowserExtensionWin::historyURL):
31508         (GraphicsContext::addRoundedRectClip):
31509         (GraphicsContext::addInnerRoundedRectClip):
31510         (WebCore::screenDepthPerComponent):
31511         (WebCore::screenIsMonochrome):
31512         (WebCore::moveCursor):
31513         (WebCore::inputElementAltText):
31514         (WebCore::findWordBoundary):
31515         (WebCore::ResourceLoader::assembleResponseHeaders):
31516         (WebCore::ResourceLoader::retrieveCharset):
31517         (FrameView::updateBorder):
31518         (FrameWin::restoreDocumentState):
31519         (FrameWin::partClearedInBegin):
31520         (FrameWin::createEmptyDocument):
31521         (FrameWin::overrideMediaType):
31522         (FrameWin::markedTextRange):
31523         (FrameWin::addMessageToConsole):
31524         (FrameWin::shouldChangeSelection):
31525         (FrameWin::respondToChangedSelection):
31526         (FrameWin::saveDocumentState):
31527         (FrameWin::registerCommandForUndo):
31528         (FrameWin::clearUndoRedoOperations):
31529         (FrameWin::incomingReferrer):
31530         (FrameWin::markMisspellingsInAdjacentWords):
31531         (FrameWin::respondToChangedContents):
31532         (BrowserExtensionWin::BrowserExtensionWin):
31533         (BrowserExtensionWin::setTypedIconURL):
31534         (BrowserExtensionWin::setIconURL):
31535         (BrowserExtensionWin::getHistoryLength):
31536         (WebCore::CheckIfReloading):
31537         (WebCore::CheckCacheObjectStatus):
31538         (Widget::setIsSelected):
31539         (ScrollView::inWindow):
31540         (ScrollView::scrollPointRecursively):
31541         (GraphicsContext::setShadow):
31542         (GraphicsContext::clearShadow):
31543         (GraphicsContext::beginTransparencyLayer):
31544         (GraphicsContext::endTransparencyLayer):
31545         (GraphicsContext::clearRect):
31546         (GraphicsContext::strokeRect):
31547         (GraphicsContext::setLineWidth):
31548         (GraphicsContext::setLineCap):
31549         (GraphicsContext::setLineJoin):
31550         (GraphicsContext::setMiterLimit):
31551         (GraphicsContext::setAlpha):
31552         (GraphicsContext::clip):
31553         (GraphicsContext::rotate):
31554         (GraphicsContext::scale):
31555         (Path::Path):
31556         (Path::~Path):
31557         (Path::contains):
31558         (Path::translate):
31559         (Path::boundingRect):
31560         (Path::operator=):
31561         (Path::clear):
31562         (Path::moveTo):
31563         (Path::addLineTo):
31564         (Path::addQuadCurveTo):
31565         (Path::addBezierCurveTo):
31566         (Path::addArcTo):
31567         (Path::closeSubpath):
31568         (Path::addArc):
31569         (Path::addRect):
31570         (Path::addEllipse):
31571         (GraphicsContext::drawFocusRing):
31572         (GraphicsContext::drawLineForMisspelling):
31573         (GraphicsContext::setCompositeOperation):
31574         (TextField::TextField):
31575         (TextField::~TextField):
31576         (TextField::setFont):
31577         (TextField::setAlignment):
31578         (TextField::setWritingDirection):
31579         (TextField::maxLength):
31580         (TextField::setMaxLength):
31581         (TextField::text):
31582         (TextField::setText):
31583         (TextField::cursorPosition):
31584         (TextField::setCursorPosition):
31585         (TextField::setEdited):
31586         (TextField::setReadOnly):
31587         (TextField::setPlaceholderString):
31588         (TextField::setColors):
31589         (TextField::sizeForCharacterWidth):
31590         (TextField::baselinePosition):
31591         (TextField::setLiveSearch):
31592         (PopUpButton::PopUpButton):
31593         (PopUpButton::~PopUpButton):
31594         (PopUpButton::setFont):
31595         (PopUpButton::baselinePosition):
31596         (PopUpButton::setWritingDirection):
31597         (PopUpButton::clear):
31598         (PopUpButton::appendItem):
31599         (PopUpButton::setCurrentItem):
31600         (PopUpButton::sizeHint):
31601         (PopUpButton::frameGeometry):
31602         (PopUpButton::setFrameGeometry):
31603         (ListBox::ListBox):
31604         (ListBox::~ListBox):
31605         (ListBox::setSelectionMode):
31606         (ListBox::setFont):
31607         (ListBox::setWritingDirection):
31608         (ListBox::clear):
31609         (ListBox::doneAppendingItems):
31610         (ListBox::setEnabled):
31611         (ListBox::appendItem):
31612         (ListBox::setSelected):
31613         (WebCore::focusRingColor):
31614         (WebCore::setFocusRingColorChangeFunction):
31615         (Frame::setNeedsReapplyStyles):
31616         (Image::drawTiled):
31617         (RenderPopupMenuWin::addSeparator):
31618         (RenderPopupMenuWin::addGroupLabel):
31619         (IconLoader::receivedResponse):
31620         (IconLoader::notifyIconChanged):
31621         * plugins/win/PluginViewWin.cpp:
31622         (WebCore::PluginViewWin::setValue):
31624 2006-09-28  Adam Roben  <aroben@apple.com>
31626         Rubberstamped by sfalken.
31628         Remove calls to DebugBreak() from plugin code.
31630         * plugins/win/PluginViewWin.cpp:
31631         (WebCore::PluginViewWin::getValue):
31632         (WebCore::PluginViewWin::setValue):
31634 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31636         Eliminate the use of MapWindowPoints on Win32. Just use the outermost HWND as the point of reference for events.  
31637         
31638         Stub out the mouse methods from the open source checkin and add a new member variable to track the current hovered scrollbar part.
31640         * platform/win/PlatformScrollBar.h:
31641         (WebCore::):
31642         * platform/win/PlatformScrollBarWin.cpp:
31643         (WebCore::PlatformScrollBar::PlatformScrollBar):
31644         (WebCore::PlatformScrollBar::mouseMoved):
31645         (WebCore::PlatformScrollBar::mouseExited):
31646         * platform/win/ScrollViewWin.cpp:
31647         (WebCore::ScrollView::viewportToContents):
31648         (WebCore::ScrollView::contentsToViewport):
31649         * platform/win/WheelEventWin.cpp:
31650         (WebCore::positionForEvent):
31652 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31654         Reviewed by Maciej.
31656         Prefer pulling project dependencies from WebKitOutputDir over
31657         WebKitSDKDir.  Don't copy build output back over to WebKitSDKDir.
31659         * WebCore.vcproj/WebCore.vcproj:
31660         * WebCore.vcproj/build-generated-files.sh:
31661         * WebCore.vcproj/dstroot-to-sdk.cmd: Removed.
31663 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31665         B&I build fixes
31667         * WebCore.vcproj/WebCore.make:
31668         * WebCore.vcproj/WebCore.vcproj:
31669         * WebCore.vcproj/build-generated-files.sh:
31671 2006-09-27  Adam Roben  <aroben@apple.com>
31673         Reviewed by sfalken.
31675         Don't die when plugins try to open a new window.
31677         * plugins/win/PluginViewWin.cpp:
31678         (WebCore::PluginViewWin::performRequest): Remove call to DebugBreak()
31680 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31682         B&I build script tweaks.
31684         * WebCore.vcproj/WebCore.make:
31686 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31688         Reviewed by Hyatt.
31690         Turn on CG
31692         * config.h:
31694 2006-09-27  Adam Roben  <aroben@apple.com>
31696         Reviewed by Lou.
31698         Fix crash in plugins due to Flash on nytimes.com
31700         * plugins/win/PluginStreamWin.cpp:
31701         (WebCore::PluginStreamWin::PluginStreamWin): memset m_stream to 0
31703 2006-09-27  Adam Roben  <aroben@apple.com>
31705         Reviewed by sfalken.
31707         Scroll plugins (at least in some cases).
31709         * platform/win/ScrollViewWin.cpp:
31710         (WebCore::ScrollView::scrollBy): Pass SW_SCROLLCHILDREN to ScrollWindowEx()
31712 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31714         Reviewed by Adam.
31716         Remove unimplemented from a temporary link stub.
31718         * platform/win/TemporaryLinkStubs.cpp:
31719         (GraphicsContext::addInnerRoundedRectClip):
31721 2006-09-27  Sean Gies  <seangies@apple.com>
31723         Reviewed by Brady Eidson.
31725         * WebCore.vcproj/WebCore.vcproj: Added platform/win/WebCoreSystemInterface.h/cpp
31726         * platform/win/WebCoreSystemInterface.cpp: Added.
31727         * platform/win/WebCoreSystemInterface.h: Added.
31729 2006-09-26  Adam Roben  <aroben@apple.com>
31731         Reviewed by sfalken.
31733         Fixes <rdar://problem/4751600>
31734         Hang on Amazon.com involving Flash
31736         * plugins/win/PluginStreamWin.cpp: Rename m_streamStarted to
31737         m_isTerminated to match Mac code (m_isTerminated is the negation of
31738         m_streamStarted)
31739         (WebCore::PluginStreamWin::PluginStreamWin): Initialize m_isTerminated
31740         to false to match Mac code.
31741         (WebCore::PluginStreamWin::~PluginStreamWin): Rename and negate.
31742         (WebCore::PluginStreamWin::stop): Remove assignment of m_streamStarted
31743         to match Mac code.
31744         (WebCore::PluginStreamWin::startStream): Rename and negate. Remove
31745         now-unnecessary assignment of m_streamStarted to true because we set
31746         m_isTerminated to false in the constructor.
31747         (WebCore::PluginStreamWin::destroyStream): Rename and negate.
31748         * plugins/win/PluginStreamWin.h: Rename m_streamStarted to
31749         m_isTerminated.
31750         * plugins/win/PluginViewWin.cpp:
31751         (WebCore::PluginViewWin::performRequest): Send the correct response URL
31752         to the plugin.
31754 2006-09-26  Steve Falkenburg  <sfalken@apple.com>
31756         More temporary link stubs moved.
31757         Build tweaks.
31759         * ChangeLog:
31760         * WebCore.vcproj/WebCore.make: Added.
31761         * WebCore.vcproj/WebCore.vcproj:
31762         * platform/win/TemporaryLinkStubs.cpp:
31763         (ListBox::isSelected):
31764         (ListBox::setWritingDirection):
31765         (ListBox::clear):
31766         (ListBox::doneAppendingItems):
31767         (ListBox::setEnabled):
31768         (ListBox::appendItem):
31769         (ListBox::setSelected):
31771 2006-09-26  Sean Gies  <seangies@apple.com>
31773         Reviewed by Brady Eidson.
31775         * platform/win/GraphicsContextWin.cpp:
31776         (WebCore::CGContextWithHDC):  Make a static function.
31777         (WebCore::GraphicsContext::getWindowsContext): Assume flipped coordinates.
31779 2006-09-26  Brady Eidson  <beidson@apple.com>
31781         Nuked another notImplemented() that is getting hit
31783         * platform/win/TemporaryLinkStubs.cpp:
31784         (GraphicsContext::addRoundedRectClip):
31786 2006-09-26  Sean Gies  <seangies@apple.com>
31788         Reviewed by Adam Roben.
31790         * WebCore.vcproj/WebCore.vcproj: Use Debug DLL C runtime for debug config.
31792 2006-09-26  Lou Amadio  <lamadio@apple.com>
31794         Reviewed by ggaren
31795         Uninitialized variable caused a memory corruption on cnn.com
31797         WARNING: NO TEST CASES ADDED OR CHANGED
31799         * plugins/win/PlugInInfoStoreWin.cpp:
31800         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
31802 2006-09-26  Dave Hyatt  <hyatt@apple.com>
31804         Fix my buggy invalidateRect implementation for Win32 widgets.
31805         
31806         Clean up my rect computation code in scrollbar to use x() and y() instead of
31807         frameGeometry().x()/y().
31808         
31809         Add a new invalidateTrack() method that invalidates the track (and handles
31810         putting the rect into the right coordinate space for proper invalidation
31811         now that I fixed invalidateRect).
31813         * platform/win/PlatformScrollBar.h:
31814         * platform/win/PlatformScrollBarWin.cpp:
31815         (WebCore::PlatformScrollBar::updateThumbPosition):
31816         (WebCore::PlatformScrollBar::updateThumbProportion):
31817         (WebCore::PlatformScrollBar::invalidateTrack):
31818         (WebCore::PlatformScrollBar::backButtonRect):
31819         (WebCore::PlatformScrollBar::forwardButtonRect):
31820         (WebCore::PlatformScrollBar::trackRect):
31821         * platform/win/WidgetWin.cpp:
31822         (WebCore::Widget::invalidate):
31824 2006-09-26  Dave Hyatt  <hyatt@apple.com>
31826         Teach all our Win32 theme code (RenderTheme and PlatformScrollBar) how to respond correctly to OS theme changes.
31827         
31828         Implement painting of scrollbars using theme APIs.  The arrow buttons, track, thumb and gripper all paint properly
31829         now.  Next up is hit testing and proper hover feedback.
31830         
31831         Reviewed by andersca
31832         
31833         * platform/win/PlatformScrollBar.h:
31834         * platform/win/PlatformScrollBarWin.cpp:
31835         (WebCore::PlatformScrollBar::PlatformScrollBar):
31836         (WebCore::PlatformScrollBar::paint):
31837         (WebCore::PlatformScrollBar::backButtonRect):
31838         (WebCore::PlatformScrollBar::forwardButtonRect):
31839         (WebCore::PlatformScrollBar::trackRect):
31840         (WebCore::PlatformScrollBar::gripperRect):
31841         (WebCore::PlatformScrollBar::splitTrack):
31842         (WebCore::PlatformScrollBar::thumbPosition):
31843         (WebCore::PlatformScrollBar::thumbLength):
31844         (WebCore::PlatformScrollBar::paintButton):
31845         (WebCore::PlatformScrollBar::paintTrack):
31846         (WebCore::PlatformScrollBar::paintThumb):
31847         (WebCore::PlatformScrollBar::paintGripper):
31848         (WebCore::PlatformScrollBar::themeChanged):
31849         * platform/win/ScrollViewWin.cpp:
31850         (WebCore::ScrollView::themeChanged):
31851         * platform/win/TemporaryLinkStubs.cpp:
31852         (Widget::enableFlushDrawing):
31853         * platform/win/WidgetWin.cpp:
31854         (WebCore::Widget::isEnabled):
31855         * rendering/RenderThemeWin.cpp:
31856         (WebCore::RenderThemeWin::RenderThemeWin):
31857         (WebCore::RenderThemeWin::openButtonTheme):
31858         (WebCore::RenderThemeWin::openTextFieldTheme):
31859         (WebCore::RenderThemeWin::openMenuListTheme):
31860         (WebCore::RenderThemeWin::close):
31861         (WebCore::RenderThemeWin::themeChanged):
31862         * rendering/RenderThemeWin.h:
31864 2006-09-25  Adam Roben  <aroben@apple.com>
31866         Rubberstamped by sfalken.
31868         Set svn:eol-style to native and cleanup line endings on plugins files.
31870         * plugins/win/PluginStreamWin.cpp:
31871         (WebCore::PluginStreamWin::PluginStreamWin):
31872         (WebCore::PluginStreamWin::~PluginStreamWin):
31873         (WebCore::PluginStreamWin::start):
31874         (WebCore::PluginStreamWin::startStream):
31875         (WebCore::PluginStreamWin::destroyStream):
31876         (WebCore::PluginStreamWin::deliverData):
31877         (WebCore::PluginStreamWin::receivedResponse):
31878         (WebCore::PluginStreamWin::receivedData):
31879         (WebCore::PluginStreamWin::receivedAllData):
31881 2006-09-25  Adam Roben  <aroben@apple.com>
31883         Reviewed by Brady.
31885         Fixes <rdar://problem/4749494>
31886         Crash/ASSERT in plugins at Fark.com
31888         * platform/win/ResourceLoaderWin.cpp: Store whether a particular job
31889         has received a response within the ResourceLoader object itself, since
31890         it's possible that we will enter the InternetReadFileExA while loop
31891         twice for the same job.
31892         (WebCore::ResourceLoaderWndProc): Ask the job whether it has received a
31893         response instead of assuming it hasn't.
31894         (WebCore::ResourceLoader::setHasReceivedResponse): Added.
31895         (WebCore::ResourceLoader::hasReceivedResponse): Added.
31897 2006-09-25  Adam Roben  <aroben@apple.com>
31899         Rubberstamped by sfalken.
31901         Continuing the removal of unnecessary notImplemented() calls.
31903         * platform/win/TemporaryLinkStubs.cpp:
31904         (PlatformMouseEvent::PlatformMouseEvent):
31905         (FrameWin::passWheelEventToChildWidget):
31907 2006-09-25  Adam Roben  <aroben@apple.com>
31909         Rubberstamped by sfalken.
31911         More notImplemented()-ectomy.
31913         * platform/win/TemporaryLinkStubs.cpp:
31914         (RenderPopupMenuWin::addSeparator):
31915         (RenderPopupMenuWin::addGroupLabel):
31917 2006-09-25  Adam Roben  <aroben@apple.com>
31919         Rubberstamped by sfalken.
31921         Remove calls to notImplemented() from functions that can fail safely.
31923         * platform/win/TemporaryLinkStubs.cpp:
31924         (FrameWin::originalRequestURL):
31925         (FrameWin::isLoadTypeReload):
31926         (IconLoader::receivedResponse):
31927         (IconLoader::notifyIconChanged):
31929 2006-09-25  Adam Roben  <aroben@apple.com>
31931         Rubberstamped by sfalken.
31933         Make notImplemented() crash even when not linked against the debug CRT.
31935         * platform/win/TemporaryLinkStubs.cpp:
31936         (notImplemented): Change _CrtDbgBreak() to ASSERT(0)
31938 2006-09-24  Dave Hyatt  <hyatt@apple.com>
31940         Update the scrollbar API to match the changes in the public tree.
31941         
31942         Start implementing the Win32 scrollbar.  Add some scaffolding for grabbing uxtheme.dll info and also
31943         add some utility functions for breaking the scrollbar into individual components.
31944         
31945         * platform/win/PlatformScrollBar.h:
31946         * platform/win/PlatformScrollBarWin.cpp:
31947         (WebCore::PlatformScrollBar::PlatformScrollBar):
31948         (WebCore::PlatformScrollBar::updateThumbPosition):
31949         (WebCore::PlatformScrollBar::updateThumbProportion):
31950         (WebCore::PlatformScrollBar::paint):
31951         (WebCore::PlatformScrollBar::backButtonRect):
31952         (WebCore::PlatformScrollBar::forwardButtonRect):
31953         (WebCore::PlatformScrollBar::trackRect):
31954         (WebCore::PlatformScrollBar::splitTrack):
31956 2006-09-22  Steve Falkenburg  <sfalken@apple.com>
31958         Fix release build some more.
31960         * WebCore.vcproj/WebCore.vcproj:
31962 2006-09-22  Brady Eidson  <beidson@apple.com>
31964         Extremely urgent update to my last two patches (without it, many urls will fail to load)
31966         * platform/win/ResourceLoaderWin.cpp:
31967         (WebCore::ResourceLoader::onRequestComplete):
31969 2006-09-22  Brady Eidson  <beidson@apple.com>
31971         Forgot some lines we needed to keep for the internal build in my last checkin
31973         * platform/win/ResourceLoaderWin.cpp:
31975 2006-09-22  Brady Eidson  <beidson@apple.com>
31977         Reviewed by Steve
31979         Landed from OpenSource - that version now supports Redirect like we need, and is a little cleaner design
31981         * platform/win/ResourceLoaderWin.cpp:
31982         (WebCore::):
31983         (WebCore::ResourceLoaderWndProc):
31984         (WebCore::initializeOffScreenResourceLoaderWindow):
31985         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
31986         (WebCore::ResourceLoader::onHandleCreated):
31987         (WebCore::ResourceLoader::onRequestRedirected):
31988         (WebCore::ResourceLoader::onRequestComplete):
31989         (WebCore::transferJobStatusCallback):
31990         (WebCore::ResourceLoader::start):
31991         (WebCore::ResourceLoader::fileLoadTimer):
31992         (WebCore::ResourceLoader::cancel):
31994 2006-09-22  Dave Hyatt <hyatt@apple.com>
31996         Implement support for CSS2 system fonts on Win32.  Implement support for our special control font so that controls now
31997         pick up the correct font from the system.  This fixes the crazy form control font sizes on e.g., www.google.com.
31999         * platform/win/TemporaryLinkStubs.cpp:
32000         * rendering/RenderThemeWin.cpp:
32001         (WebCore::fillFontDescription):
32002         (WebCore::RenderThemeWin::systemFont):
32004 2006-09-22  Dave Hyatt <hyatt@apple.com>
32006         Scrollbar preparation work.
32007         
32008         (1) Add support for enabling/disabling widgets.
32009         (2) Add support for invalidation of part or all of a widget.
32010         (3) Clean up some of the Win32 scrollbar code.  All that's left is painting
32011         and event handling. (Oh, is that all...) :)
32013         Reviewed by anders
32015         * platform/win/PlatformScrollBarWin.cpp:
32016         (WebCore::PlatformScrollBar::setScrollBarValue):
32017         (WebCore::PlatformScrollBar::setKnobProportion):
32018         (WebCore::PlatformScrollBar::setEnabled):
32019         (WebCore::PlatformScrollBar::paint):
32020         * platform/win/TemporaryLinkStubs.cpp:
32021         * platform/win/WidgetWin.cpp:
32022         (WebCore::Widget::Widget):
32023         (WebCore::Widget::setEnabled):
32024         (WebCore::Widget::invalidate):
32025         (WebCore::Widget::invalidateRect):
32027 2006-09-21  Brady Eidson <beidson@apple.com>
32029         Build was broken for at least some, and I think my checkin that messed with 
32030         #include orders was to blame (and it was messy, broken or not) - this cleans that up
32032         * platform/win/ResourceLoaderWin.cpp:
32034 2006-09-21  Alice Liu  <alice.liu@apple.com>
32036         Reviewed by Hyatt.
32038         windows build fix
32040         * platform/win/GraphicsContextWin.cpp:
32041         wrapped a CG #include in #if PLATFORM(CG)
32043 2006-09-21  Geoffrey Garen  <ggaren@apple.com>
32045         Reviewed by Maciej, Hyatt, Steve.
32046     
32047         frames!
32048         
32049         Prep work:
32050             - moved ScrollViewWin into OpenSourceWin
32051             - set eol-style:native on some files and corrected line endings
32052             - updated the WebCore project so that you don't need cygwin in your Windows path
32053               to build correctly.
32055         Real work:
32057             On Windows, Widgets are no longer interfaces to Windows UI tookit objects. They're 
32058             just positioned objects.
32059                 
32060             Widgets position themselves relative to their parents. The top-level widget technically
32061             has a position relative to the WebView, but that's academic, since it's always (0, 0).
32062             All widgets draw inside a common containing window (the WebView window). ScrollView 
32063             handles transformation, clipping, and dirty rect management.
32064             
32065             I've filed a bunch of bugs on remaining frames work. Most notably, closing a page with
32066             a frame in it causes a crash because WebCore depends on WebKit to manage frame lifetime.
32067             I'm going to fix that by integrating frame ownership into the DOM.
32068             
32069 2006-09-21  Steve Falkenburg  <sfalken@apple.com>
32071         Reviewed by Anders.
32072         
32073         <rdar://4516072>
32074         <rdar://4601320>
32075         
32076         Implemented JavaScript alert/confirm/prompt inside app.
32077         This is done via IWebUIDelegate.
32079         * bridge/win/FrameWin.cpp:
32080         (WebCore::FrameWin::userAgent):
32081         (WebCore::FrameWin::runJavaScriptAlert):
32082         (WebCore::FrameWin::runJavaScriptConfirm):
32083         (WebCore::FrameWin::runJavaScriptPrompt):
32084         * bridge/win/FrameWin.h:
32085         * platform/win/TemporaryLinkStubs.cpp:
32086         (FrameWin::registerCommandForRedo):
32088 2006-09-21  Sean Gies  <seangies@apple.com>
32090         Reviewed by NOBODY.
32092         Unfork GraphicsContextCG.cpp.
32094         * WebCore.vcproj/WebCore.vcproj: Unfork GraphicsContextCG.cpp and add GraphicsContextWin.cpp
32095         * platform/win/GraphicsContextWin.cpp: Added.
32097 2006-09-21  Luke Wallis  <wallis@apple.com>
32099         Rubber stamped by Steve.
32101         Added (commented out for now) defines for building on PLATFORM(CG).
32103         * config.h:
32105 2006-09-21  Luke Wallis <wallis@apple.com>
32107         Reviewed by Adam Roben.
32109         Fix build. Added #if PLATFORM(CG) around variable defined only for CG.
32111         * platform/win/FontDataWin.cpp:
32112         (WebCore::FontData::platformInit):
32114 2006-09-21  Sean Gies  <seangies@apple.com>
32116         Reviewed by Adam Roben.
32118         Draw form controls when rendering with CG.
32120         * platform/cg/GraphicsContextCG.cpp:
32121         (WebCore::CGContextWithHDC): New function to create CGContext given an HDC.
32122         (WebCore::GraphicsContext::GraphicsContext): New constructor that takes an HDC.
32123         (WebCore::GraphicsContext::getWindowsContext): Return underlying HDC to client.
32124         (WebCore::GraphicsContext::releaseWindowsContext): Restore underlying HDC after client mucked with it.
32125         * platform/cg/GraphicsContextPlatformPrivate.h: Add field to hold HDC.
32126         * rendering/RenderThemeWin.cpp: Implement prepareForDrawing and doneDrawing for CG.
32128 2006-09-21  Anders Carlsson  <acarlsson@apple.com>
32130         Reviewed by Tim O.
32132         Support getting the plugin element as an NPObject.
32133         
32134         * plugins/win/PluginViewWin.cpp:
32135         (WebCore::PluginViewWin::getValue):
32136         (WebCore::PluginViewWin::PluginViewWin):
32137         * plugins/win/PluginViewWin.h:
32139 2006-09-21  Sean Gies  <seangies@apple.com>
32141         Reviewed by Adam Roben.
32143         Forked GraphicsContextCG.cpp and GraphicsContextPlatformPrivate.h from open source #16504.
32145         * platform/cg/GraphicsContextCG.cpp: Added.
32146         * platform/cg/GraphicsContextPlatformPrivate.h: Added.
32148 2006-09-21  Sean Gies  <seangies@apple.com>
32150         Reviewed by Adam Roben.
32152         Support synthetic bold and/or oblique with CG.
32154         * platform/win/FontCacheWin.cpp: Pass new arguments to updated FontPlatformData constructor.
32155         * platform/win/FontDataWin.cpp:
32156         (WebCore::FontData::platformInit): Choose synthetic bold offset.
32157         (WebCore::FontData::platformWidthForGlyph): Take synthetic bold offset into account.
32158         * platform/win/FontPlatformData.h: Add fields for synthetic styles.
32159         * platform/win/FontPlatformDataWin.cpp: Ask HFONT if it supports bold or italics.
32160         * platform/win/FontWin.cpp:
32161         (WebCore::Font::drawGlyphs): Restore code for implementing synthetic stlyes.
32163 2006-09-21  Brady Eidson  <beidson@apple.com>
32165         Reviewed by Anders
32167         Fixed one definite bug and did alot of cleanup to make it resemble the unforked version of the file
32168         in preparation for merging it back out
32170         * platform/win/ResourceLoaderWin.cpp:
32171         (WebCore::ResourceLoaderWndProc):
32172         (WebCore::transferJobStatusCallback): Fixed a bug here!  :)
32173         (WebCore::ResourceLoader::start):
32174         (WebCore::ResourceLoader::fileLoadTimer):
32175         (WebCore::ResourceLoader::cancel):
32177 2006-09-21  2006-09-21  Dave Hyatt <hyatt@apple.com>
32179         Implement mouse wheel scrolling on Win32.  Also forked ScrollViewWin.cpp and fixed some bugs in it.
32181         * WebCore.vcproj/WebCore.vcproj:
32182         * platform/win/ScrollViewWin.cpp: Added.
32183         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
32184         (WebCore::ScrollView::ScrollView):
32185         (WebCore::ScrollView::~ScrollView):
32186         (WebCore::ScrollView::updateContents):
32187         (WebCore::ScrollView::visibleWidth):
32188         (WebCore::ScrollView::visibleHeight):
32189         (WebCore::ScrollView::visibleContentRect):
32190         (WebCore::ScrollView::setContentsPos):
32191         (WebCore::ScrollView::resizeContents):
32192         (WebCore::ScrollView::contentsX):
32193         (WebCore::ScrollView::contentsY):
32194         (WebCore::ScrollView::contentsWidth):
32195         (WebCore::ScrollView::contentsHeight):
32196         (WebCore::ScrollView::viewportToContents):
32197         (WebCore::ScrollView::contentsToViewport):
32198         (WebCore::ScrollView::scrollOffset):
32199         (WebCore::ScrollView::maximumScroll):
32200         (WebCore::ScrollView::scrollBy):
32201         (WebCore::ScrollView::hScrollBarMode):
32202         (WebCore::ScrollView::vScrollBarMode):
32203         (WebCore::ScrollView::suppressScrollBars):
32204         (WebCore::ScrollView::setHScrollBarMode):
32205         (WebCore::ScrollView::setVScrollBarMode):
32206         (WebCore::ScrollView::setScrollBarsMode):
32207         (WebCore::ScrollView::setStaticBackground):
32208         (WebCore::ScrollView::updateScrollInfo):
32209         (WebCore::ScrollView::updateScrollBars):
32210         (WebCore::ScrollView::wheelEvent):
32211         * platform/win/WheelEventWin.cpp: Added.
32212         (WebCore::positionForEvent):
32213         (WebCore::globalPositionForEvent):
32214         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32216 2006-09-20  Sean Gies  <seangies@apple.com>
32218         Reviewed by Adam Roben.
32220         Added platform/cg/ColorCG.cpp
32222         * WebCore.vcproj/WebCore.vcproj: Add ColorCG.cpp
32223         * platform/cg/ColorCG.cpp: Added.
32225 2006-09-20  Sean Gies  <seangies@apple.com>
32227         Reviewed by Adam Roben.
32229         Fixed ugly text spacing issues with CG for Windows.
32231         * platform/win/FontDataWin.cpp: Reimplement platformWidthForGlyph using CG APIs.
32233 2006-09-19  Anders Carlsson  <acarlsson@apple.com>
32235         Reviewed by Dave Hyatt.
32236         
32237         <rdar://problem/4734743> Crash accessing YouTube.
32238         
32239         * config.h:
32240         Enable some more of the JSC bindings code on Windows.
32241         
32242 2006-09-18  Brady Eidson  <beidson@apple.com>
32244         YABF, and merged a change from open source ResourceLoaderWin.cpp
32246         * bridge/win/FrameWin.h:
32247         * platform/win/ResourceLoaderWin.cpp:
32248         (WebCore::ResourceLoader::fileLoadTimer):
32249         * platform/win/TemporaryLinkStubs.cpp:
32250         (FrameWin::isLoadTypeReload):
32252 2006-09-18  Sean Gies  <seangies@apple.com>
32254         Reviewed by Adam Roben.
32256         Support bold & italics.
32258         * platform/win/FontPlatformDataWin.cpp: Use GetOutlineTextMetrics instead of GetTextFace to
32259             query HFONT name.
32261 2006-09-18  Sean Gies  <seangies@apple.com>
32263         Reviewed by Adam Roben.
32265         Changes to bring up CoreGraphics on Windows.
32267         * WebCore.vcproj/WebCore.vcproj: Search platform/cg for headers.  Compile platform/cg/*.cpp.
32268              Add AffineTransform.cpp to build.
32269         * platform/win/FontDataWin.cpp: Include CG before using it.
32270         * platform/win/FontPlatformDataWin.cpp: Fixed typo.
32271         * platform/win/ImageWin.cpp: Include CG and winsock2.  Implement CG version of Image::getHBITMAP.
32272              In Cairo version of Image::getHBITMAP, use correct bitmapInfo field and return true for success.
32273              Fixed image loading bug.
32275 2006-09-18  Brady Eidson  <beidson@apple.com>
32277         Rubberstamp by Adam
32279         Build fix
32281         * bridge/win/FrameWin.h:
32282         * platform/win/TemporaryLinkStubs.cpp:
32283         (FrameWin::originalRequestURL):
32285 2006-09-18  Sean Gies  <seangies@apple.com>
32287         Reviewed by Adam Roben.
32289         Forked FontCacheWin.cpp from OpenSource tree r16421.
32291         * WebCore.vcproj/WebCore.vcproj: Point to Internal file.
32292         * platform/win/FontCacheWin.cpp: Added.
32294 2006-09-15  Anders Carlsson  <acarlsson@apple.com>
32296         Reviewed by Steve.
32298         * WebCore.vcproj/WebCore.vcproj:
32299         Add JavaScriptCore/ to include path.
32301 2006-09-15  Adam Roben  <aroben@apple.com>
32303         Reviewed by sfalken.
32305         Implement historyContains() on Windows (rdar://4733770)
32307         * WebCore.vcproj/WebCore.vcproj: Add
32308         platform\win\WebCoreHistory.{cpp,h} and bridge\win\HistoryWin.cpp to
32309         project.
32310         * bridge/win/HistoryWin.cpp: Added.
32311         (WebCore::historyContains):
32312         * platform/win/TemporaryLinkStubs.cpp: Remove stub for
32313         WebCore::historyContains()
32314         * platform/win/WebCoreHistory.cpp: Added.
32315         (WebCore::WebCoreHistory::setHistoryProvider):
32316         (WebCore::WebCoreHistory::historyProvider):
32317         * platform/win/WebCoreHistory.h: Added.
32319 2006-09-14  Steve Falkenburg  <sfalken@apple.com>
32321         Reviewed by Lou Amadio.
32323         iBench fix - fix WinInet form post code to not reference a stale pointer.
32324         (found by Application Verifier)
32326         * platform/win/ResourceLoaderWin.cpp:
32327         (WebCore::ResourceLoaderWndProc):
32329 2006-09-14  Adam Roben  <aroben@apple.com>
32331         Reviewed by sfalken.
32333         A little #include cleanup
32335         * WebCore.vcproj/WebCore.vcproj: Add loader/icon to
32336         AdditionalIncludeDirectories
32337         * platform/win/TemporaryLinkStubs.cpp: Remove "loader/icon" from
32338         #include of IconLoader.h
32340 2006-09-14  Brady Eidson  <beidson@apple.com>
32342         Build Fix
32344         * WebCore.vcproj/WebCore.vcproj:
32345         * platform/win/TemporaryLinkStubs.cpp:
32346         (IconLoader::receivedResponse):
32347         (IconLoader::notifyIconChanged):
32349 2006-09-13  Steve Falkenburg  <sfalken@apple.com>
32351         Fixes for submission of WebCore.  Doesn't affect build.
32353         * WebCore.vcproj/WebCore.vcproj:
32354         * WebCore.vcproj/merge-opensource.sh:
32356 2006-09-12  Steve Falkenburg  <sfalken@apple.com>
32358         Rubber-stamped by Ada.
32360         Get Boomer ready for B&I submission.
32361        
32362         Projects can now all build independent of one another
32363         without groping for headers or source across trees.
32365         * WebCore.vcproj/WebCore.sln: Fix standalone sln for use by B&I.
32366         * WebCore.vcproj/WebCore.vcproj: Update to new obj layout.
32367         * WebCore.vcproj/build-generated-files.sh: Build derived sources into obj, update to new obj layout.
32368         * WebCore.vcproj/dstroot-to-sdk.cmd: Copy built bits back to WebKitSDKDir for dependent builds.
32370 2006-09-13  Adam Roben  <aroben@apple.com>
32372         Build fix
32374         * WebCore.vcproj/WebCore.vcproj: Rename KHTML_XSLT to XSLT_SUPPORT,
32375         remove KHTML_NO_XBL
32376         * config.h: Ditto.
32378 2006-09-13  Adam Roben  <aroben@apple.com>
32380         Reviewed by beidson.
32382         Initial implementation of Icon, FileChooser on Windows.
32384         * WebCore.vcproj/WebCore.vcproj: Added FileChooserWin.cpp, IconWin.cpp
32385         * platform/win/FileChooserWin.cpp: Added.
32386         (WebCore::FileChooser::FileChooser):
32387         (WebCore::FileChooser::openFileChooser):
32388         (WebCore::FileChooser::basenameForWidth):
32389         (WebCore::FileChooser::uploadControlDetaching):
32390         (WebCore::FileChooser::chooseFile):
32391         * platform/win/IconWin.cpp: Added.
32392         (WebCore::Icon::Icon):
32393         (WebCore::Icon::~Icon):
32394         (WebCore::Icon::newIconForFile):
32395         (WebCore::Icon::paint):
32396         * platform/win/TemporaryLinkStubs.cpp: Removed FileChooser, Icon stub
32397         functions
32399 2006-09-13  Anders Carlsson  <acarlsson@apple.com>
32401         Reviewed by Tim O.
32403         Implement postURL and postURLNotify.
32405         * plugins/win/PluginStreamWin.cpp:
32406         (WebCore::PluginStreamWin::~PluginStreamWin):
32407         (WebCore::PluginStreamWin::start):
32408         (WebCore::PluginStreamWin::startStream):
32409         (WebCore::PluginStreamWin::cancelAndDestroyStream):
32410         * plugins/win/PluginViewWin.cpp:
32411         (WebCore::PluginViewWin::start):
32412         (WebCore::PluginViewWin::loadURL):
32413         (WebCore::PluginViewWin::getURLNotify):
32414         (WebCore::PluginViewWin::getURL):
32415         (WebCore::startsWithBlankLine):
32416         (WebCore::locationAfterFirstBlankLine):
32417         (WebCore::findEOL):
32418         (WebCore::capitalizeRFC822HeaderFieldName):
32419         (WebCore::parseRFC822HeaderFields):
32420         (WebCore::PluginViewWin::handlePost):
32421         (WebCore::PluginViewWin::postURLNotify):
32422         (WebCore::PluginViewWin::postURL):
32423         * plugins/win/PluginViewWin.h:
32425 2006-09-13  Lou Amadio  <lamadio@apple.com>
32427         Reviewed by sfalken
32429         * WebCore.vcproj/WebCore.vcproj:
32431 2006-09-13  Adam Roben  <aroben@apple.com>
32433         Build fix
32435         * WebCore.vcproj/build-generated-files.sh: Export SOURCE_ROOT which is
32436         now used by CodeGenerator.pm
32438 2006-09-12  Anders Carlsson  <acarlsson@apple.com>
32440         Reviewed by Tim O.
32442         Add scripting support for plugins.
32443         
32444         * bridge/win/FrameWin.cpp:
32445         (WebCore::FrameWin::FrameWin):
32446         (WebCore::FrameWin::addPluginRootObject):
32447         (WebCore::FrameWin::cleanupPluginObjects):
32448         (WebCore::FrameWin::bindingRootObject):
32449         (WebCore::FrameWin::windowScriptNPObject):
32450         * bridge/win/FrameWin.h:
32451         * plugins/win/PluginPackageWin.cpp:
32452         (WebCore::PluginPackageWin::load):
32453         * plugins/win/PluginViewWin.cpp:
32454         (WebCore::PluginViewWin::getValue):
32455         * plugins/win/npapi.cpp:
32456         (NPN_RequestRead):
32457         (NPN_InvalidateRect):
32458         (NPN_InvalidateRegion):
32459         (NPN_ForceRedraw):
32461 2006-09-12  Adam Roben  <aroben@apple.com>
32463         Reviewed many times by darin, hyatt.
32465         Add stubs for new engine-based file upload control implementation and
32466         Icon class.
32468         * WebCore.vcproj/WebCore.vcproj: Add new engine-based files, remove old
32469         widget-based files.
32470         * platform/win/TemporaryLinkStubs.cpp: Add stubs for FileChooser and
32471         Icon methods, and add two new LocalizedString methods.
32472         (WebCore::fileButtonChooseFileLabel):
32473         (WebCore::fileButtonNoFileSelectedLabel):
32474         (FileChooser::FileChooser):
32475         (FileChooser::~FileChooser):
32476         (FileChooser::openFileChooser):
32477         (FileChooser::basenameForWidth):
32478         (FileChooser::uploadControlDetaching):
32479         (Icon::~Icon):
32480         (Icon::paint):
32482 2006-09-11  Anders Carlsson  <acarlsson@apple.com>
32484         Reviewed by Tim O.
32486         Add stream and URL handling to PluginViewWin. Include PluginStreamWin.cpp in the build.
32487         Also fix a number of bugs discovered when loading various plugins.
32488         
32489         * WebCore.vcproj/WebCore.vcproj:
32490         * plugins/win/PluginViewWin.cpp:
32491         (WebCore::PluginRequestWin::PluginRequestWin):
32492         (WebCore::PluginRequestWin::url):
32493         (WebCore::PluginRequestWin::target):
32494         (WebCore::PluginRequestWin::notifyData):
32495         (WebCore::PluginRequestWin::sendNotification):
32496         (WebCore::scriptStringIfJavaScriptURL):
32497         (WebCore::registerPluginView):
32498         (WebCore::PluginViewWndProc):
32499         (WebCore::PluginViewWin::updateSize):
32500         (WebCore::PluginViewWin::setFrameGeometry):
32501         (WebCore::PluginViewWin::start):
32502         (WebCore::PluginViewWin::stop):
32503         (WebCore::createUTF8String):
32504         (WebCore::PluginViewWin::performRequest):
32505         (WebCore::PluginViewWin::requestTimerFired):
32506         (WebCore::PluginViewWin::scheduleRequest):
32507         (WebCore::PluginViewWin::loadURL):
32508         (WebCore::makeURL):
32509         (WebCore::PluginViewWin::getURLNotify):
32510         (WebCore::PluginViewWin::getURL):
32511         (WebCore::PluginViewWin::newStream):
32512         (WebCore::PluginViewWin::write):
32513         (WebCore::PluginViewWin::destroyStream):
32514         (WebCore::PluginViewWin::userAgent):
32515         (WebCore::PluginViewWin::~PluginViewWin):
32516         (WebCore::PluginViewWin::PluginViewWin):
32517         * plugins/win/PluginViewWin.h:
32519 2006-09-11  Anders Carlsson  <acarlsson@apple.com>
32521         * WebCore.vcproj/WebCore.vcproj:
32522         Fix build.
32523         
32524 2006-09-11  Anders Carlsson  <acarlsson@apple.com>
32526         Reviewed by Tim O and Maciej.
32528         Add plugin stream object.
32529         
32530         * plugins/win/PluginStreamWin.cpp: Added.
32531         (WebCore::PluginStreamWin::PluginStreamWin):
32532         (WebCore::PluginStreamWin::~PluginStreamWin):
32533         (WebCore::PluginStreamWin::setRequestHeaders):
32534         (WebCore::PluginStreamWin::setPostData):
32535         (WebCore::PluginStreamWin::start):
32536         (WebCore::PluginStreamWin::stop):
32537         (WebCore::PluginStreamWin::startStream):
32538         (WebCore::PluginStreamWin::cancelAndDestroyStream):
32539         (WebCore::PluginStreamWin::destroyStream):
32540         (WebCore::PluginStreamWin::delayDeliveryTimerFired):
32541         (WebCore::PluginStreamWin::deliverData):
32542         (WebCore::PluginStreamWin::receivedResponse):
32543         (WebCore::PluginStreamWin::receivedData):
32544         (WebCore::PluginStreamWin::receivedAllData):
32545         * plugins/win/PluginStreamWin.h: Added.
32547 2006-09-10  Brady Eidson  <beidson@apple.com>
32549         Reviewed by Steven Falkenburg
32551         Added IconDatabase related code and forked ImageWin for its HBITMAP blit
32553         * WebCore.vcproj/WebCore.vcproj: Added in all WebCore::IconDatabase stuffs
32554         * platform/win/ImageWin.cpp: Added. (forked from OpenSource)
32555         (WebCore::Image::initPlatformData):
32556         (WebCore::Image::invalidatePlatformData):
32557         (WebCore::Image::loadPlatformResource):
32558         (WebCore::Image::supportsType):
32559         (WebCore::Image::getHBITMAP): Added - blit the image to an HBITMAP 
32560         
32561 2006-09-10  David Hyatt  <hyatt@apple.com>
32563         Remove the addIntrinsicMargins code from the theme.  I did this
32564         in the open source version but forgot to do it in the internal
32565         version.
32567         * rendering/RenderThemeWin.cpp:
32568         (WebCore::RenderThemeWin::adjustButtonStyle):
32569         (WebCore::RenderThemeWin::adjustTextFieldStyle):
32570         (WebCore::RenderThemeWin::adjustTextAreaStyle):
32571         (WebCore::RenderThemeWin::adjustMenuListStyle):
32573 2006-09-10  Brady Eidson  <beidson@apple.com>
32575         Reviewed by YABF, and Adam's suggestive rubberstamp before he hopped offline
32577         Build fix + FIXME/Radar to reflect an OpenSource change to the Font.h header
32579         * platform/win/FontWin.cpp:
32580         (WebCore::Font::drawGlyphs): Added the parameter and a FIXME 
32582 2006-09-10  Steve Falkenburg  <sfalken@apple.com>
32584         Rubber-stamp by aroben.
32585         
32586         * WebCore.vcproj/WebCore.vcproj:
32588 2006-09-09  Steve Falkenburg  <sfalken@apple.com>
32590         Reviewed by aroben.
32592         Added missing CF files to fix CFNetwork build variant
32594         * WebCore.vcproj/WebCore.vcproj: Use include paths, libs, DLLs from %SystemDrive%\AppleInternal
32595         * WebCore.vcproj/build-generated-files.sh: Don't copy open source DLLs from WebKitLibraries
32597 2006-09-09  Adam Roben  <aroben@apple.com>
32599         Reviewed by hyatt.
32601         Remove unnecessary calls to setAffectedBy{Active,Hover}Rules
32603         * rendering/RenderThemeWin.cpp:
32604         (WebCore::RenderThemeWin::adjustMenuListStyle): Remove unnecessary calls
32606 2006-09-06  Brady Eidson  <beidson@apple.com>
32608         YABF (Yet another build fix)
32610         * platform/win/FontDataWin.cpp: Added missing header
32612 2006-09-06  Brady Eidson  <beidson@apple.com>
32614         Reviewed by Steve's rubberstamp
32616         Three stubs were added this morning, however the methods were already implemented in
32617         Internal/OpenSourceWin/WebCoreWin/bridge/win/FrameWin.cpp
32619         * platform/win/TemporaryLinkStubs.cpp: Nuked some repeat symbols
32621 2006-09-06  Adam Roben  <aroben@apple.com>
32623         Reviewed by Darin.
32625         Fixed various Windows build issues caused by previous checkins.
32627         * bridge/win/FrameWin.h: Added missing #include, updated Selection to SelectionController.
32628         * platform/win/FontWin.cpp: Reorganized #includes.
32629         (WebCore::Font::drawGlyphs): Used a const_cast hack to fix ultimately broken code.
32630         * platform/win/ResourceLoaderWin.cpp: Added missing #include of CString.h and removed double #include of config.h.
32631         (WebCore::ResourceLoaderWndProc): Removed use of String::ascii.
32632         (WebCore::ResourceLoader::start): Ditto.
32633         * platform/win/TemporaryLinkStubs.cpp: Added missing stubs.
32634         (FrameWin::markMisspellings):
32635         (FrameWin::shouldChangeSelection):
32636         (FrameWin::respondToChangedSelection):
32637         (FrameWin::respondToChangedContents):
32638         (FrameWin::handledOnloadEvents):
32639         (FrameWin::createPlugin):
32640         (FrameWin::objectContentType):
32641         * rendering/RenderPopupMenuWin.cpp: Added missing #include.
32643 2006-09-05  Darin Adler  <darin@apple.com>
32645         - build fix part of http://bugzilla.opendarwin.org/show_bug.cgi?id=10728
32646           text encodings should work without a numeric ID
32648         * WebCore.vcproj/WebCore.vcproj: Update for new headers.
32650 2006-09-01  Steve Falkenburg  <sfalken@apple.com>
32652         Reviewed by adachan.
32654         Process redirects received in networking layer through to application.
32655         With this change, the address bar url edit field shows the proper
32656         redirected URL.
32658         * platform/win/ResourceLoaderWin.cpp:
32659         (WebCore::ResourceLoaderWndProc):
32660         (WebCore::transferJobStatusCallback):
32661         (WebCore::ResourceLoader::start):
32663 2006-09-01  Ada Chan  <adachan@apple.com>
32665         Reviewed by lamadio.
32667         Fixed build break.
32669         * bridge/win/FrameWin.h:
32670         * platform/win/TemporaryLinkStubs.cpp:
32671         (FrameWin::respondToChangedContents):
32673 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
32675         Reviewed by Steve.
32677         Add our own internal config.h so we can make changes to it.
32678         
32679         * WebCore.vcproj/WebCore.vcproj:
32680         Add config.h to the file list, move the KXMLCORE_PLATFORM_CF to the new config.h file 
32681                        
32682         * config.h: Added.
32683         
32684         * platform/win/ResourceLoaderWin.cpp:
32685         Include config.h        
32687 2006-08-31  Dave Hyatt <hyatt@apple.com>
32689         Add a platform scrollbar class for Windows.  It doesn't really work yet.
32691         * WebCore.vcproj/WebCore.vcproj:
32692         * platform/win/TemporaryLinkStubs.cpp:
32693         * platform/win/PlatformScrollBarWin.cpp
32695 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
32697         Fix the build.
32699         * WebCore.vcproj/WebCore.vcproj:
32701 2006-08-30  Steve Falkenburg  <sfalken@apple.com>
32703         Reviewed by Ada Chan.
32705         * bridge/win/FrameWin.cpp:
32706         (WebCore::FrameWin::submitForm): Pass form values to submit form delegate
32707         * bridge/win/FrameWin.h: Pass form values to submit form delegate
32709 2006-08-29  David Hyatt  <hyatt@apple.com>
32711         Make project changes so that the forked Font files (and Cairo/JPG/PNG) are all used.
32713         * WebCore.vcproj/WebCore.vcproj:
32715 2006-08-29  David Hyatt  <hyatt@apple.com>
32717         This patch lands all the font changes.  It does not patch the project file
32718         yet, since this was done on Mac.  Will switch to Win32 after landing this
32719         and then fix any glitches.
32721         * platform/cairo/cairo-all.c: Added.
32722         * platform/cairo/pixman-all.c: Added.
32723         * platform/image-decoders/jpeg/jpeg-part1.c: Added.
32724         * platform/image-decoders/jpeg/jpeg-part2.c: Added.
32725         * platform/image-decoders/jpeg/jpeg-part3.c: Added.
32726         * platform/image-decoders/png/png-part1.c: Added.
32727         * platform/image-decoders/png/png-part2.c: Added.
32728         * platform/win/FontDataWin.cpp:
32729         (WebCore::FontData::platformInit):
32730         (WebCore::FontData::platformDestroy):
32731         (WebCore::FontData::platformWidthForGlyph):
32732         * platform/win/FontPlatformData.h:
32733         (WebCore::FontPlatformData::FontPlatformData):
32734         (WebCore::FontPlatformData::cgFont):
32735         (WebCore::FontPlatformData::operator==):
32736         * platform/win/FontPlatformDataWin.cpp:
32737         (WebCore::m_size):
32738         * platform/win/FontWin.cpp:
32739         (WebCore::Font::drawGlyphs):
32741 2006-08-29  David Hyatt  <hyatt@apple.com>
32743         Forking the font files in preparation for dropping in CG code.
32745         Reviewed by adam
32747         * WebCore.vcproj/WebCore.vcproj:
32748         * platform/win/FontDataWin.cpp: Added.
32749         (WebCore::FontData::platformInit):
32750         (WebCore::FontData::platformDestroy):
32751         (WebCore::FontData::smallCapsFontData):
32752         (WebCore::FontData::containsCharacters):
32753         (WebCore::FontData::determinePitch):
32754         (WebCore::FontData::platformWidthForGlyph):
32755         * platform/win/FontPlatformData.h: Added.
32756         (WebCore::FontPlatformData::FontPlatformData):
32757         (WebCore::FontPlatformData::hfont):
32758         (WebCore::FontPlatformData::fontFace):
32759         (WebCore::FontPlatformData::scaledFont):
32760         (WebCore::FontPlatformData::size):
32761         (WebCore::FontPlatformData::hash):
32762         (WebCore::FontPlatformData::operator==):
32763         * platform/win/FontPlatformDataWin.cpp: Added.
32764         (WebCore::m_size):
32765         (WebCore::FontPlatformData::~FontPlatformData):
32766         * platform/win/FontWin.cpp: Added.
32767         (WebCore::notImplemented):
32768         (WebCore::Font::drawGlyphs):
32769         (WebCore::Font::selectionRectForComplexText):
32770         (WebCore::Font::drawComplexText):
32771         (WebCore::Font::floatWidthForComplexText):
32772         (WebCore::Font::offsetForPositionForComplexText):
32774 2006-08-28  Geoffrey Garen  <ggaren@apple.com>
32776         Reviewed by Maciej.
32778         Landed CFNetwork loader, off by default. To enable, define:
32779             KXMLCORE_PLATFORM_CF
32780             KXMLCORE_USE_CFNETWORK
32782         CFNetwork uses winsock2. If you do this, you need to make sure that winsock2.h
32783         is included before windows.h in any translation unit in which it's used.
32784         A lot of the jiggering in this patch is devoted to that.
32785         
32786         * WebCore.vcproj/WebCore.vcproj:
32787         * platform/win/ResourceLoaderWin.cpp: Removed reliance on PlatformData
32788         since it wasn't being used, and removing it made easy work of integrating
32789         CFNetwork in a Windows-independent way.
32790         (WebCore::ResourceLoaderWndProc):
32791         (WebCore::ResourceLoader::fileLoadTimer):
32792         (WebCore::ResourceLoader::cancel):
32793         * platform/win/TemporaryLinkStubs.cpp:
32794         (Path::contains):
32795         * platform/win/WidgetWin.cpp:
32796         * plugins/win/PluginDatabaseWin.cpp:
32797         * plugins/win/PluginPackageWin.h:
32798         * plugins/win/PluginViewWin.h:
32799         * plugins/win/npapi.cpp:
32800         * rendering/RenderPopupMenuWin.cpp:
32801         * rendering/RenderPopupMenuWin.h:
32802         * rendering/RenderThemeWin.cpp:
32804 2006-08-28  Ada Chan  <adachan@apple.com>
32806         Reviewed by ggaren.
32808         Fixed build.
32810         * platform/win/TemporaryLinkStubs.cpp:
32811         (Path::contains):
32813 2006-08-25  David Hyatt  <hyatt@apple.com>
32815         Land CG/Cairo refactoring (and add some winsock2.h).  (I do not really
32816         understand why the winsock2.h stuff would suddenly be needed.)
32818         * platform/win/ResourceLoaderWin.h:
32819         * platform/win/TemporaryLinkStubs.cpp:
32820         (GraphicsContext::setAlpha):
32821         (GraphicsContext::drawFocusRing):
32822         (GraphicsContext::drawLineForMisspelling):
32823         (GraphicsContext::setCompositeOperation):
32824         * plugins/win/PluginPackageWin.h:
32825         * plugins/win/PluginViewWin.h:
32826         * plugins/win/npapi.cpp:
32827         * rendering/RenderThemeWin.cpp:
32828         (WebCore::prepareForDrawing):
32829         (WebCore::doneDrawing):
32831 2006-08-24  Geoffrey Garen  <ggaren@apple.com>
32833         Reviewed by Darin.
32835         Frame refactoring: changed FrameView clients so they no longer assume that
32836         FrameViews are Widgets that can tell you things about the platform, in 
32837         preparation for divorcing FrameViews from heavy-weight Widgets altogether.
32839         This patch makes Page, rather than Widget, responsible for holding the
32840         page's HWND. Refactoring aside, I think this makes more sense.
32842 2006-08-24  Geoffrey Garen  <ggaren@apple.com>
32844         Reviewed by Hyatt.
32846         Branching PageWin.cpp from r15969.
32848         * WebCore.vcproj/WebCore.vcproj:
32849         * bridge/win/PageWin.cpp: Added.
32850         (WebCore::Page::Page):
32851         (WebCore::Page::windowRect):
32852         (WebCore::Page::setWindowRect):
32854 2006-08-23  Adam Roben  <aroben@apple.com>
32856         Reviewed by Ada.
32858         Fixed placement of popups when document is scrolled.
32860         * rendering/RenderPopupMenuWin.cpp:
32861         (WebCore::RenderPopupMenuWin::setPositionAndSize):
32863 2006-08-23  Steve Falkenburg  <sfalken@apple.com>
32865         Build fix (many of our include paths were wrong!)
32867         * WebCore.vcproj/WebCore.vcproj:
32869 2006-08-23  Adam Roben  <aroben@apple.com>
32871         Reviewed by Darin, Lou, Adele.
32873         Initial implementation of <select> elements on Windows.
32875         * WebCore.vcproj/WebCore.vcproj:
32876             Added RenderPopupMenuWin.cpp
32877         * platform/win/TemporaryLinkStubs.cpp:
32878         (RenderPopupMenuWin::addGroupLabel):
32879         * rendering/RenderPopupMenuWin.cpp: Added.
32880         (WebCore::RenderPopupMenuWin::RenderPopupMenuWin):
32881         (WebCore::RenderPopupMenuWin::~RenderPopupMenuWin):
32882         (WebCore::RenderPopupMenuWin::clear):
32883         (WebCore::RenderPopupMenuWin::populate):
32884         (WebCore::RenderPopupMenuWin::showPopup):
32885         (WebCore::RenderPopupMenuWin::hidePopup):
32886         (WebCore::RenderPopupMenuWin::setPositionAndSize):
32887         (WebCore::RenderPopupMenuWin::addOption):
32888         (WebCore::RenderPopupMenuWin::down):
32889         (WebCore::RenderPopupMenuWin::up):
32890         (WebCore::registerPopup):
32891         (WebCore::PopupWndProc):
32892         * rendering/RenderPopupMenuWin.h:
32893             Added useful properties.
32894         (WebCore::RenderPopupMenuWin::popupHandle):
32895         (WebCore::RenderPopupMenuWin::containerHandle):
32896         (WebCore::RenderPopupMenuWin::wasClicked):
32897         (WebCore::RenderPopupMenuWin::setWasClicked):
32898         * rendering/RenderThemeWin.cpp:
32899         (WebCore::RenderThemeWin::RenderThemeWin):
32900         (WebCore::RenderThemeWin::openButtonTheme):
32901         (WebCore::RenderThemeWin::openTextFieldTheme):
32902         (WebCore::RenderThemeWin::openMenuListTheme):
32903         (WebCore::RenderThemeWin::close):
32904         (WebCore::RenderThemeWin::supportsFocus):
32905         (WebCore::RenderThemeWin::determineState):
32906         (WebCore::RenderThemeWin::getThemeData):
32907         (WebCore::RenderThemeWin::paintButton):
32908         (WebCore::RenderThemeWin::paintTextField):
32909             Refactored the above methods and added cases for
32910             MenulistAppearance where appropriate.
32911         (WebCore::RenderThemeWin::paintMenuList):
32912         (WebCore::RenderThemeWin::adjustMenuListStyle):
32913             Implemented the above methods.
32914         * rendering/RenderThemeWin.h:
32916 2006-08-22  Geoffrey Garen  <ggaren@apple.com>
32918         My first Windows build fix.
32920         * WebCore.vcproj/WebCore.vcproj:
32921             - Link against version.lib, since the new plug-in stuff requires it
32922             - Sync the release and debug header search paths, so release
32923               finds the JS bindings.
32925 2006-08-18  Anders Carlsson  <acarlsson@apple.com>
32927         * plugins/win/PluginViewWin.cpp:
32928         (WebCore::PluginViewWin::write):
32929         (WebCore::PluginViewWin::destroyStream):
32930         Another attempt at fixing the build. Make these two functions into instance methods of PluginViewWin.
32932 2006-08-18  Anders Carlsson  <acarlsson@apple.com>
32934         * plugins/win/PluginViewWin.cpp:
32935         (WebCore::write):
32936         (WebCore::destroyStream):
32937         * plugins/win/PluginViewWin.h:
32938         Fix build by removing unneeded parameters.
32940 2006-08-18  Anders Carlsson  <acarlsson@apple.com>
32942         Reviewed by Adele.
32944         Have the NPN functions call into the plugin view. Implement some of the plugin view methods.
32946         * plugins/win/PluginViewWin.cpp:
32947         (WebCore::PluginViewWin::start):
32948         (WebCore::PluginViewWin::setCurrentPluginView):
32949         (WebCore::PluginViewWin::currentPluginView):
32950         (WebCore::PluginViewWin::getURLNotify):
32951         (WebCore::PluginViewWin::getURL):
32952         (WebCore::PluginViewWin::postURLNotify):
32953         (WebCore::PluginViewWin::postURL):
32954         (WebCore::PluginViewWin::newStream):
32955         (WebCore::write):
32956         (WebCore::destroyStream):
32957         (WebCore::PluginViewWin::userAgent):
32958         (WebCore::PluginViewWin::status):
32959         (WebCore::PluginViewWin::getValue):
32960         (WebCore::PluginViewWin::setValue):
32961         (WebCore::PluginViewWin::~PluginViewWin):
32962         (WebCore::PluginViewWin::PluginViewWin):
32963         * plugins/win/PluginViewWin.h:
32964         * plugins/win/npapi.cpp:
32965         (pluginViewForInstance):
32966         (NPN_ReloadPlugins):
32967         (NPN_GetURLNotify):
32968         (NPN_GetURL):
32969         (NPN_PostURLNotify):
32970         (NPN_PostURL):
32971         (NPN_NewStream):
32972         (NPN_Write):
32973         (NPN_DestroyStream):
32974         (NPN_UserAgent):
32975         (NPN_Status):
32976         (NPN_GetValue):
32977         (NPN_SetValue):
32979 2006-08-17  Anders Carlsson  <acarlsson@apple.com>
32981         Reviewed by Steve and Maciej.
32983         Add initial implementation of plugin view.
32985         * WebCore.vcproj/WebCore.vcproj:
32986         Add files.
32987         
32988         * bridge/win/FrameWin.cpp:
32989         (WebCore::FrameWin::objectContentType):
32990         (WebCore::FrameWin::createPlugin):
32991         Implement these functions.
32992         
32993         * platform/win/TemporaryLinkStubs.cpp:
32994         Remove implemented functions.
32995         
32996         * platform/win/WidgetWin.cpp: Add this file from the open source repo
32997         (WebCore::Widget::~Widget):
32998         Call DestroyWindow on the hWnd.
32999         
33000         * plugins/win/PluginDatabaseWin.cpp:
33001         (WebCore::PluginDatabaseWin::createPluginView):
33002         New function which creates a plugin view.
33003         
33004         * plugins/win/PluginDatabaseWin.h:
33005         
33006         * plugins/win/PluginPackageWin.cpp:
33007         (WebCore::PluginPackageWin::load):
33008         Assign the browser functions. They are just stubs for now.
33009                
33010         * plugins/win/PluginViewWin.cpp: Added.
33011         (WebCore::registerPluginView):
33012         (WebCore::PluginViewWndProc):
33013         (WebCore::PluginViewWin::invokeSetWindow):
33014         (WebCore::PluginViewWin::start):
33015         (WebCore::PluginViewWin::stop):
33016         (WebCore::createUTF8String):
33017         (WebCore::createUTF8StringArray):
33018         (WebCore::freeStringArray):
33019         (WebCore::PluginViewWin::~PluginViewWin):
33020         (WebCore::PluginViewWin::PluginViewWin):
33021         * plugins/win/PluginViewWin.h: Added.
33022         (WebCore::PluginViewWin::plugin):
33023         (WebCore::PluginViewWin::instance):
33024         * plugins/win/npapi.cpp: Added.
33025         (NPN_MemAlloc):
33026         (NPN_MemFree):
33027         (NPN_MemFlush):
33028         (NPN_ReloadPlugins):
33029         (NPN_RequestRead):
33030         (NPN_GetURLNotify):
33031         (NPN_GetURL):
33032         (NPN_PostURLNotify):
33033         (NPN_PostURL):
33034         (NPN_NewStream):
33035         (NPN_Write):
33036         (NPN_DestroyStream):
33037         (NPN_UserAgent):
33038         (NPN_Status):
33039         (NPN_InvalidateRect):
33040         (NPN_InvalidateRegion):
33041         (NPN_ForceRedraw):
33042         (NPN_GetValue):
33043         (NPN_SetValue):
33044         (NPN_GetJavaEnv):
33045         (NPN_GetJavaPeer):
33047 2006-08-17  Anders Carlsson  <acarlsson@apple.com>
33049         Reviewed by Maciej.
33051         Add initial implementation of plugin database.
33052         
33053         * WebCore.vcproj/WebCore.vcproj:
33054         Add new files.
33055         
33056         * platform/win/TemporaryLinkStubs.cpp:
33057         Get rid of the PlugInInfoStore stubs.
33059         * plugins/win/PlugInInfoStoreWin.cpp: Added.
33060         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
33061         (WebCore::PlugInInfoStore::pluginCount):
33062         (WebCore::PlugInInfoStore::supportsMIMEType):
33063         (WebCore::refreshPlugins):
33064         * plugins/win/PluginDatabaseWin.cpp: Added.
33065         (WebCore::PluginDatabaseWin::installedPlugins):
33066         (WebCore::PluginDatabaseWin::refresh):
33067         (WebCore::PluginDatabaseWin::plugins):
33068         (WebCore::PluginDatabaseWin::getPluginsInPaths):
33069         (WebCore::PluginDatabaseWin::defaultPluginPaths):
33070         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
33071         (WebCore::PluginDatabaseWin::pluginForMIMEType):
33072         (WebCore::PluginDatabaseWin::pluginForExtension):
33073         * plugins/win/PluginDatabaseWin.h: Added.
33074         (WebCore::PluginDatabaseWin::setPluginPaths):
33075         * plugins/win/PluginPackageWin.cpp: Added.
33076         (WebCore::PluginPackageWin::~PluginPackageWin):
33077         (WebCore::getVersionInfo):
33078         (WebCore::splitString):
33079         (WebCore::PluginPackageWin::PluginPackageWin):
33080         (WebCore::PluginPackageWin::fetchInfo):
33081         (WebCore::PluginPackageWin::load):
33082         (WebCore::PluginPackageWin::unload):
33083         (WebCore::PluginPackageWin::unloadWithoutShutdown):
33084         (WebCore::PluginPackageWin::createPackage):
33085         (WebCore::PluginPackageWin::hash):
33086         (WebCore::PluginPackageWin::equal):
33087         * plugins/win/PluginPackageWin.h: Added.
33088         (WebCore::PluginPackageWin::name):
33089         (WebCore::PluginPackageWin::description):
33090         (WebCore::PluginPackageWin::fileName):
33091         (WebCore::PluginPackageWin::mimeToDescriptions):
33092         (WebCore::PluginPackageWin::mimeToExtensions):
33093         (WebCore::PluginPackageWin::pluginFuncs):
33094         (WebCore::PluginPackageWinHash::hash):
33095         (WebCore::PluginPackageWinHash::equal):
33096         (WTF::):
33097         * plugins/win/npfunctions.h: Added.
33099 2006-08-17  Adam Roben  <aroben@apple.com>
33101         Removing this unintentionally added file.
33103         * rendering/RenderPopupMenuWin.cpp: Removed.
33105 2006-08-17  Adam Roben  <aroben@apple.com>
33107         Reviewed by Steve.
33109         Branching files from OpenSource tree r15924 to prepare for <select>
33110         element implementation.
33112         * WebCore.vcproj/WebCore.vcproj:
33113         * rendering/RenderPopupMenuWin.h: Added.
33114         (WebCore::RenderPopupMenuWin::RenderPopupMenuWin):
33115         * rendering/RenderThemeWin.cpp: Added.
33116         (WebCore::theme):
33117         (WebCore::m_textFieldTheme):
33118         (WebCore::RenderThemeWin::~RenderThemeWin):
33119         (WebCore::RenderThemeWin::close):
33120         (WebCore::RenderThemeWin::platformActiveSelectionBackgroundColor):
33121         (WebCore::RenderThemeWin::platformInactiveSelectionBackgroundColor):
33122         (WebCore::RenderThemeWin::platformActiveSelectionForegroundColor):
33123         (WebCore::RenderThemeWin::platformInactiveSelectionForegroundColor):
33124         (WebCore::RenderThemeWin::addIntrinsicMargins):
33125         (WebCore::RenderThemeWin::supportsFocus):
33126         (WebCore::RenderThemeWin::determineState):
33127         (WebCore::RenderThemeWin::getThemeData):
33128         (WebCore::RenderThemeWin::adjustButtonStyle):
33129         (WebCore::prepareForDrawing):
33130         (WebCore::doneDrawing):
33131         (WebCore::RenderThemeWin::paintButton):
33132         (WebCore::RenderThemeWin::setCheckboxSize):
33133         (WebCore::RenderThemeWin::setRadioSize):
33134         (WebCore::RenderThemeWin::adjustTextFieldStyle):
33135         (WebCore::RenderThemeWin::paintTextField):
33136         (WebCore::RenderThemeWin::adjustTextAreaStyle):
33137         (WebCore::RenderThemeWin::paintTextArea):
33138         (WebCore::RenderThemeWin::createPopupMenu):
33139         * rendering/RenderThemeWin.h: Added.
33140         (WebCore::ThemeData::m_state):
33141         (WebCore::RenderThemeWin::supportsHover):
33142         (WebCore::RenderThemeWin::paintCheckbox):
33143         (WebCore::RenderThemeWin::paintRadio):
33145 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33147         Pull TemporaryLinkStubs.cpp into internal tree to fix the build.
33149         * WebCore.vcproj/WebCore.vcproj:
33150         * platform/win/TemporaryLinkStubs.cpp: Added.
33151         (notImplemented):
33152         (FrameView::updateBorder):
33153         (FrameView::isFrameView):
33154         (PopUpButton::focusPolicy):
33155         (PopUpButton::populate):
33156         (Widget::enableFlushDrawing):
33157         (Widget::isEnabled):
33158         (Widget::focusPolicy):
33159         (Widget::disableFlushDrawing):
33160         (Widget::lockDrawingFocus):
33161         (Widget::unlockDrawingFocus):
33162         (JavaAppletWidget::JavaAppletWidget):
33163         (TextField::selectAll):
33164         (TextField::addSearchResult):
33165         (TextField::selectionStart):
33166         (TextField::hasSelectedText):
33167         (TextField::selectedText):
33168         (TextField::setAutoSaveName):
33169         (TextField::checksDescendantsForFocus):
33170         (TextField::setSelection):
33171         (TextField::setMaxResults):
33172         (TextField::edited):
33173         (Slider::Slider):
33174         (Slider::sizeHint):
33175         (Slider::setValue):
33176         (Slider::setMaxValue):
33177         (Slider::setMinValue):
33178         (Slider::~Slider):
33179         (Slider::setFont):
33180         (Slider::value):
33181         (ListBox::setSelected):
33182         (ListBox::sizeForNumberOfLines):
33183         (ListBox::isSelected):
33184         (ListBox::appendItem):
33185         (ListBox::doneAppendingItems):
33186         (ListBox::setWritingDirection):
33187         (ListBox::setEnabled):
33188         (ListBox::clear):
33189         (ListBox::checksDescendantsForFocus):
33190         (FileButton::FileButton):
33191         (FileButton::click):
33192         (FileButton::sizeForCharacterWidth):
33193         (FileButton::focusPolicy):
33194         (FileButton::frameGeometry):
33195         (FileButton::setFilename):
33196         (FileButton::baselinePosition):
33197         (FileButton::setFrameGeometry):
33198         (FileButton::setDisabled):
33199         (Slider::focusPolicy):
33200         (ListBox::focusPolicy):
33201         (TextField::focusPolicy):
33202         (Cursor::Cursor):
33203         (PlatformMouseEvent::PlatformMouseEvent):
33204         (WebCore::searchableIndexIntroduction):
33205         (WebCore::findNextSentenceFromIndex):
33206         (WebCore::findSentenceBoundary):
33207         (WebCore::findNextWordFromIndex):
33208         (WebCore::ServeSynchronousRequest):
33209         (FrameWin::focusWindow):
33210         (FrameWin::unfocusWindow):
33211         (FrameWin::locationbarVisible):
33212         (FrameWin::issueRedoCommand):
33213         (FrameWin::getObjectInstanceForWidget):
33214         (FrameWin::getEmbedInstanceForWidget):
33215         (FrameWin::canRedo):
33216         (FrameWin::canUndo):
33217         (FrameWin::registerCommandForRedo):
33218         (FrameWin::runJavaScriptPrompt):
33219         (FrameWin::shouldInterruptJavaScript):
33220         (FrameWin::openURL):
33221         (FrameWin::print):
33222         (FrameWin::getAppletInstanceForWidget):
33223         (FrameWin::passMouseDownEventToWidget):
33224         (FrameWin::issueCutCommand):
33225         (FrameWin::issueCopyCommand):
33226         (FrameWin::passWheelEventToChildWidget):
33227         (FrameWin::issueUndoCommand):
33228         (FrameWin::mimeTypeForFileName):
33229         (FrameWin::issuePasteCommand):
33230         (FrameWin::scheduleClose):
33231         (FrameWin::markMisspellings):
33232         (FrameWin::menubarVisible):
33233         (FrameWin::personalbarVisible):
33234         (FrameWin::statusbarVisible):
33235         (FrameWin::toolbarVisible):
33236         (FrameWin::issueTransposeCommand):
33237         (FrameWin::canPaste):
33238         (FrameWin::objectContentType):
33239         (FrameWin::canGoBackOrForward):
33240         (FrameWin::issuePasteAndMatchStyleCommand):
33241         (FrameWin::createPlugin):
33242         (BrowserExtensionWin::canRunModal):
33243         (BrowserExtensionWin::createNewWindow):
33244         (BrowserExtensionWin::canRunModalNow):
33245         (BrowserExtensionWin::runModal):
33246         (BrowserExtensionWin::goBackOrForward):
33247         (BrowserExtensionWin::historyURL):
33248         (GraphicsContext::addRoundedRectClip):
33249         (GraphicsContext::addInnerRoundedRectClip):
33250         (WebCore::screenDepthPerComponent):
33251         (WebCore::screenIsMonochrome):
33252         (WebCore::moveCursor):
33253         (WebCore::historyContains):
33254         (WebCore::submitButtonDefaultLabel):
33255         (WebCore::inputElementAltText):
33256         (WebCore::resetButtonDefaultLabel):
33257         (WebCore::defaultLanguage):
33258         (WebCore::findWordBoundary):
33259         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
33260         (PlugInInfoStore::pluginCount):
33261         (WebCore::PlugInInfoStore::supportsMIMEType):
33262         (WebCore::refreshPlugins):
33263         (WebCore::ResourceLoader::assembleResponseHeaders):
33264         (WebCore::ResourceLoader::retrieveCharset):
33265         (FrameWin::restoreDocumentState):
33266         (FrameWin::partClearedInBegin):
33267         (FrameWin::createEmptyDocument):
33268         (FrameWin::overrideMediaType):
33269         (FrameWin::handledOnloadEvents):
33270         (FrameWin::markedTextRange):
33271         (FrameWin::passSubframeEventToSubframe):
33272         (FrameWin::lastEventIsMouseUp):
33273         (FrameWin::addMessageToConsole):
33274         (FrameWin::shouldChangeSelection):
33275         (FrameWin::respondToChangedSelection):
33276         (FrameWin::createFrame):
33277         (FrameWin::saveDocumentState):
33278         (FrameWin::registerCommandForUndo):
33279         (FrameWin::clearUndoRedoOperations):
33280         (FrameWin::incomingReferrer):
33281         (FrameWin::markMisspellingsInAdjacentWords):
33282         (FrameWin::respondToChangedContents):
33283         (BrowserExtensionWin::BrowserExtensionWin):
33284         (BrowserExtensionWin::setTypedIconURL):
33285         (BrowserExtensionWin::setIconURL):
33286         (BrowserExtensionWin::getHistoryLength):
33287         (WebCore::CheckIfReloading):
33288         (WebCore::CheckCacheObjectStatus):
33289         (Widget::setEnabled):
33290         (Widget::paint):
33291         (Widget::setIsSelected):
33292         (ScrollView::addChild):
33293         (ScrollView::removeChild):
33294         (ScrollView::scrollPointRecursively):
33295         (ScrollView::inWindow):
33296         (GraphicsContext::setShadow):
33297         (GraphicsContext::clearShadow):
33298         (GraphicsContext::beginTransparencyLayer):
33299         (GraphicsContext::endTransparencyLayer):
33300         (GraphicsContext::clearRect):
33301         (GraphicsContext::strokeRect):
33302         (GraphicsContext::setLineWidth):
33303         (GraphicsContext::setLineCap):
33304         (GraphicsContext::setLineJoin):
33305         (GraphicsContext::setMiterLimit):
33306         (GraphicsContext::setAlpha):
33307         (GraphicsContext::setCompositeOperation):
33308         (GraphicsContext::clip):
33309         (GraphicsContext::translate):
33310         (GraphicsContext::rotate):
33311         (GraphicsContext::scale):
33312         (Path::Path):
33313         (Path::~Path):
33314         (Path::contains):
33315         (Path::translate):
33316         (Path::boundingRect):
33317         (Path::operator=):
33318         (Path::clear):
33319         (Path::moveTo):
33320         (Path::addLineTo):
33321         (Path::addQuadCurveTo):
33322         (Path::addBezierCurveTo):
33323         (Path::addArcTo):
33324         (Path::closeSubpath):
33325         (Path::addArc):
33326         (Path::addRect):
33327         (Path::addEllipse):
33328         (TextField::TextField):
33329         (TextField::~TextField):
33330         (TextField::setFont):
33331         (TextField::setAlignment):
33332         (TextField::setWritingDirection):
33333         (TextField::maxLength):
33334         (TextField::setMaxLength):
33335         (TextField::text):
33336         (TextField::setText):
33337         (TextField::cursorPosition):
33338         (TextField::setCursorPosition):
33339         (TextField::setEdited):
33340         (TextField::setReadOnly):
33341         (TextField::setPlaceholderString):
33342         (TextField::setColors):
33343         (TextField::sizeForCharacterWidth):
33344         (TextField::baselinePosition):
33345         (TextField::setLiveSearch):
33346         (PopUpButton::PopUpButton):
33347         (PopUpButton::~PopUpButton):
33348         (PopUpButton::setFont):
33349         (PopUpButton::baselinePosition):
33350         (PopUpButton::setWritingDirection):
33351         (PopUpButton::clear):
33352         (PopUpButton::appendItem):
33353         (PopUpButton::setCurrentItem):
33354         (PopUpButton::sizeHint):
33355         (PopUpButton::frameGeometry):
33356         (PopUpButton::setFrameGeometry):
33357         (PlatformScrollBar::PlatformScrollBar):
33358         (PlatformScrollBar::~PlatformScrollBar):
33359         (PlatformScrollBar::width):
33360         (PlatformScrollBar::height):
33361         (PlatformScrollBar::setEnabled):
33362         (PlatformScrollBar::paint):
33363         (PlatformScrollBar::setScrollBarValue):
33364         (PlatformScrollBar::setKnobProportion):
33365         (PlatformScrollBar::setRect):
33366         (ScrollBar::ScrollBar):
33367         (ScrollBar::setSteps):
33368         (ScrollBar::scroll):
33369         (ScrollBar::setValue):
33370         (ScrollBar::setKnobProportion):
33371         (ListBox::ListBox):
33372         (ListBox::~ListBox):
33373         (ListBox::setSelectionMode):
33374         (ListBox::setFont):
33375         (WebCore::focusRingColor):
33376         (WebCore::setFocusRingColorChangeFunction):
33377         (Frame::setNeedsReapplyStyles):
33378         (Image::drawTiled):
33379         (RenderPopupMenuWin::~RenderPopupMenuWin):
33380         (RenderPopupMenuWin::clear):
33381         (RenderPopupMenuWin::populate):
33382         (RenderPopupMenuWin::showPopup):
33383         (RenderPopupMenuWin::addSeparator):
33384         (RenderPopupMenuWin::addGroupLabel):
33385         (RenderPopupMenuWin::addOption):
33386         (RenderThemeWin::paintMenuList):
33387         (RenderThemeWin::adjustMenuListStyle):
33388         (RenderThemeWin::systemFont):
33390 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33392         Fix the build with TOT.
33394         * WebCore.vcproj/WebCore.vcproj:
33396 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33398         Get this building.
33400         * WebCore.vcproj/WebCore.sln:
33401         * WebCore.vcproj/WebCore.vcproj:
33402         * WebCore.vcproj/build-generated-files.sh:
33404 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33406         Initial check-in.
33408         * ChangeLog: Added.
33409         * WebCore.vcproj/WebCore.sln: Added.
33410         * WebCore.vcproj/WebCore.vcproj: Added.
33411         * WebCore.vcproj/build-generated-files.sh: Added.
33412         * bridge/win/FrameWin.cpp: Added.
33413         (WebCore::FrameWin::FrameWin):
33414         (WebCore::FrameWin::~FrameWin):
33415         (WebCore::FrameWin::urlSelected):
33416         (WebCore::FrameWin::submitForm):
33417         (WebCore::FrameWin::userAgent):
33418         (WebCore::FrameWin::runJavaScriptAlert):
33419         (WebCore::FrameWin::runJavaScriptConfirm):
33420         (WebCore::FrameWin::keyPress):
33421         (WebCore::FrameWin::setTitle):
33422         (WebCore::FrameWin::setStatusBarText):
33423         (WebCore::FrameWin::textFieldDidBeginEditing):
33424         (WebCore::FrameWin::textFieldDidEndEditing):
33425         (WebCore::FrameWin::textDidChangeInTextField):
33426         (WebCore::FrameWin::doTextFieldCommandFromEvent):
33427         (WebCore::FrameWin::textWillBeDeletedInTextField):
33428         (WebCore::FrameWin::textDidChangeInTextArea):
33429         * bridge/win/FrameWin.h: Added.
33430         (WebCore::Win):
33431         * platform/win/ResourceLoaderWin.cpp: Added.
33432         (WebCore::addToOutstandingJobs):
33433         (WebCore::removeFromOutstandingJobs):
33434         (WebCore::lookupResourceLoader):
33435         (WebCore::ResourceLoaderWndProc):
33436         (WebCore::initializeOffScreenResourceLoaderWindow):
33437         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
33438         (WebCore::ResourceLoader::~ResourceLoader):
33439         (WebCore::transferJobStatusCallback):
33440         (WebCore::ResourceLoader::start):
33441         (WebCore::ResourceLoader::fileLoadTimer):
33442         (WebCore::ResourceLoader::cancel):
33443         * platform/win/ResourceLoaderWin.h: Added.
33445 === End of merged changes from branches/WindowsMerge ===
33447 2007-06-10  Holger Hans Peter Freyther  <zecke@selfish.org>
33449          Reviewed by Maciej.
33451          Disable whole-view editing for the Gdk port in order to improve the browsing experience.
33453          * platform/gdk/EditorClientGdk.cpp:
33454          (WebCore::EditorClientGdk::isEditable): Return false to disable whole-view editing
33456 2007-06-08  Sam Weinig  <sam@webkit.org>
33458         Reviewed by Oliver.
33460         Patch for http://bugs.webkit.org/show_bug.cgi?id=14044
33461         Autogenerate the JS bindings for HTMLCollection
33463         - also moves JSHTMLAllCollection into it's own file.
33465         * DerivedSources.make:
33466         * WebCore.pro:
33467         * WebCore.xcodeproj/project.pbxproj:
33468         * bindings/js/JSHTMLAllCollection.h: Added.
33469         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
33470         (WebCore::JSHTMLAllCollection::toBoolean):
33471         (WebCore::JSHTMLAllCollection::masqueradeAsUndefined):
33472         * bindings/js/JSHTMLCollectionCustom.cpp: Added.
33473         (WebCore::getNamedItems):
33474         (WebCore::JSHTMLCollection::callAsFunction):
33475         (WebCore::JSHTMLCollection::implementsCall):
33476         (WebCore::JSHTMLCollection::canGetItemsForName):
33477         (WebCore::JSHTMLCollection::nameGetter):
33478         (WebCore::JSHTMLCollection::item):
33479         (WebCore::JSHTMLCollection::namedItem):
33480         (WebCore::toJS):
33481         * bindings/js/JSHTMLDocumentCustom.cpp:
33482         (WebCore::JSHTMLDocument::nameGetter):
33483         (WebCore::JSHTMLDocument::all):
33484         * bindings/js/JSXMLHttpRequest.cpp:
33485         * bindings/js/kjs_html.cpp:
33486         (WebCore::ImageConstructorImp::ImageConstructorImp):
33487         (WebCore::ImageConstructorImp::construct):
33488         * bindings/js/kjs_html.h:
33489         (WebCore::ImageConstructorImp::implementsConstruct):
33490         * bindings/js/kjs_window.cpp:
33491         (KJS::Window::namedItemGetter):
33492         * bindings/objc/DOMUtility.mm:
33493         (KJS::createDOMWrapper):
33494         * bindings/scripts/CodeGeneratorJS.pm:
33495         * html/HTMLCollection.cpp:
33496         (WebCore::HTMLCollection::tags):
33497         * html/HTMLCollection.h:
33498         (WebCore::HTMLCollection::collectionType):
33499         * html/HTMLCollection.idl:
33500         * html/HTMLOptionsCollection.idl:
33502 2007-06-08  Justin Garcia  <justin.garcia@apple.com>
33504         Reviewed by John.
33505         
33506         <rdar://problem/5232159> REGRESSION: Cannot select text in RSS view
33508         The selection is updated both on mouse movement and
33509         when the autoscroll timer fires.  The autoscroll
33510         code wasn't converting mouse coordinates to layer
33511         coordinates correctly, and was then using those
33512         coordinates to create a bad selection.
33514         * rendering/RenderLayer.cpp:
33515         (WebCore::RenderLayer::autoscroll): Use convertToLayerCoordinates.
33517 2007-06-08  Anders Carlsson  <andersca@apple.com>
33519         Reviewed by Geoff.
33521         Store the root object in a hash set, keyed by the plugin view. This is in preparation for 
33522         letting plugins invalidate the root object upon destruction
33524         * page/Frame.cpp:
33525         (WebCore::Frame::createRootObject):
33526         (WebCore::Frame::cleanupScriptObjects):
33527         * page/FramePrivate.h:
33529 2007-06-08  Lars Knoll <lars@trolltech.com>
33531         Reviewed by Zack.
33533         Add qwebobjectpluginconnector to the build.
33535         * WebCore.pro:
33537 2007-06-07  Justin Garcia  <justin.garcia@apple.com>
33539         Reviewed by Tristan.
33540         
33541         <rdar://problem/5250997> A crash occurs when selecting Undo Typing for a page that has been closed in tab
33543         * WebCore.exp: Added clearUndoRedoOperations.
33544         * page/Page.cpp:
33545         (WebCore::Page::clearUndoRedoOperations): Added.
33546         * page/Page.h:
33547         
33548 2007-06-07  David Hyatt  <hyatt@apple.com>
33550         Fix crash.  Null check layer.  Bug 13984.
33552         Reviewed by andersca
33554         * WebCore.xcodeproj/project.pbxproj:
33555         * page/FrameView.cpp:
33556         (WebCore::FrameView::windowClipRectForLayer):
33558 2007-06-07  Oliver Hunt  <oliver@apple.com>
33560         Reviewed by Justin.
33562         Remove incorrect assertions.
33563         
33564         These assertions were made on the assumption that 
33565         TSM would always call with a range that was contained 
33566         by an editable region.
33567         
33568         TSM may call -[WebHTMLView characterIndexForPoint:] on a mouse
33569         event that is otherwise unrelated to editing, which may
33570         be outside the current editing region, triggering these 
33571         assertions.
33573         * page/mac/WebCoreFrameBridge.mm:
33574         (-[WebCoreFrameBridge convertToNSRange:]):
33576 2007-06-07  Justin Garcia  <justin.garcia@apple.com>
33578         Reviewed by John.
33579         
33580         <rdar://problem/5237074> REGRESSION: editing/unsupported-content/table-delete-003 is failing (13931)
33581         
33582         * editing/DeleteSelectionCommand.cpp:
33583         (WebCore::DeleteSelectionCommand::initializeStartEnd):
33584         We wouldn't expand the selection to include a special element 
33585         at the start of the selection unless the end of the selection 
33586         was at the end of a special element. Avoid a special 
33587         element at the start as long as it's fully selected. Ditto for 
33588         the end.
33589         * editing/htmlediting.cpp:
33590         (WebCore::positionBeforeContainingSpecialElement):
33591         (WebCore::positionAfterContainingSpecialElement):
33593 2007-06-07  Sam Weinig  <sam@webkit.org>
33595         Reviewed by Anders.
33597         Patch for  http://bugs.webkit.org/show_bug.cgi?id=14028
33598         Finish autogenerating the JS bindings for Node
33600         * DerivedSources.make:
33601         * WebCore.pro:
33602         * WebCore.xcodeproj/project.pbxproj:
33603         * bindings/js/JSHTMLElementWrapperFactory.cpp:
33604         (WebCore::createJSHTMLWrapper):
33605         * bindings/js/JSHTMLElementWrapperFactory.h:
33606         * bindings/js/JSHTMLOptionElementConstructor.cpp:
33607         * bindings/js/JSNamedNodeMapCustom.cpp:
33608         * bindings/js/JSNodeCustom.cpp:
33609         (WebCore::JSNode::insertBefore):
33610         (WebCore::JSNode::replaceChild):
33611         (WebCore::JSNode::removeChild):
33612         (WebCore::JSNode::appendChild):
33613         (WebCore::JSNode::mark):
33614         (WebCore::toJS):
33615         * bindings/js/JSSVGElementWrapperFactory.cpp:
33616         (WebCore::createJSSVGWrapper):
33617         * bindings/js/JSSVGElementWrapperFactory.h:
33618         * bindings/js/JSXSLTProcessor.cpp:
33619         (KJS::XSLTProcessorPrototypeFunction::callAsFunction):
33620         * bindings/js/kjs_binding.cpp:
33621         (KJS::ScriptInterpreter::getDOMNodeForDocument):
33622         (KJS::ScriptInterpreter::putDOMNodeForDocument):
33623         (KJS::ScriptInterpreter::markDOMNodesForDocument):
33624         (KJS::ScriptInterpreter::updateDOMNodeDocument):
33625         * bindings/js/kjs_binding.h:
33626         * bindings/js/kjs_dom.cpp:
33627         (WebCore::toAttr):
33628         * bindings/js/kjs_dom.h:
33629         * bindings/js/kjs_domnode.h: Removed.
33630         * bindings/objc/DOMUtility.mm:
33631         (KJS::createDOMWrapper):
33632         * bindings/scripts/CodeGeneratorJS.pm:
33633         * dom/Node.h:
33634         (WebCore::Node::parentElement):
33635         * dom/Node.idl:
33637 2007-06-07  Sam Weinig  <sam@webkit.org>
33639         Another Gdk and Qt build fix.
33641         * WebCore.pro:
33643 2007-06-07  Sam Weinig  <sam@webkit.org>
33645         Gdk and Qt build fix.
33647         * WebCore.pro:
33649 2007-06-06  Sam Weinig  <sam@webkit.org>
33651         Reviewed by Hyatt.
33653         Patch for http://bugs.webkit.org/show_bug.cgi?id=13973
33654         Autogenerate most of the rest of kjs_dom.h/cpp
33656         - Autogenerate JSNodeList and JSNamedNodeMap.
33657         - Move JSEventTargetNode, JSNamedNodesCollection, and JSDOMExceptionConstructor 
33658           into their own files.
33659         - Rename KJS::DOMEventTargeNode to WebCore::JSEventTargetNode to adhere
33660           to convention and allow easier code generation.
33661         - Add JS constructors for JSNodeList and JSNamedNodeMap.
33662         - Moved more toJS methods into the correct (corresponding) header files.
33663         - Cleaned up code in order for changes to work.
33665         * DerivedSources.make:
33666         * WebCore.xcodeproj/project.pbxproj:
33667         * bindings/js/JSDOMExceptionConstructor.cpp: Added.
33668         (WebCore::):
33669         (WebCore::JSDOMExceptionConstructor::JSDOMExceptionConstructor):
33670         (WebCore::JSDOMExceptionConstructor::getOwnPropertySlot):
33671         (WebCore::JSDOMExceptionConstructor::getValueProperty):
33672         (WebCore::getDOMExceptionConstructor):
33673         * bindings/js/JSDOMExceptionConstructor.h: Added.
33674         (WebCore::JSDOMExceptionConstructor::classInfo):
33675         * bindings/js/JSDOMWindowCustom.cpp: Added.
33676         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
33677         * bindings/js/JSDocumentCustom.cpp:
33678         (WebCore::JSDocument::mark):
33679         (WebCore::toJS):
33680         * bindings/js/JSEventTargetNode.cpp: Added.
33681         (WebCore::JSEventTargetNode::JSEventTargetNode):
33682         (WebCore::JSEventTargetNode::getOwnPropertySlot):
33683         (WebCore::JSEventTargetNode::getValueProperty):
33684         (WebCore::JSEventTargetNode::put):
33685         (WebCore::JSEventTargetNode::putValueProperty):
33686         (WebCore::JSEventTargetNode::setListener):
33687         (WebCore::JSEventTargetNode::getListener):
33688         (WebCore::JSEventTargetNode::pushEventHandlerScope):
33689         (WebCore::JSEventTargetNodePrototypeFunction::callAsFunction):
33690         (WebCore::toEventTargetNode):
33691         * bindings/js/JSEventTargetNode.h: Added.
33692         (WebCore::JSEventTargetNode::):
33693         * bindings/js/JSHTMLElementCustom.cpp:
33694         * bindings/js/JSHTMLFormElementCustom.cpp:
33695         (WebCore::JSHTMLFormElement::nameGetter):
33696         * bindings/js/JSHTMLOptionElementConstructor.cpp:
33697         * bindings/js/JSNamedNodeMapCustom.cpp: Added.
33698         (WebCore::JSNamedNodeMap::canGetItemsForName):
33699         (WebCore::JSNamedNodeMap::nameGetter):
33700         * bindings/js/JSNamedNodesCollection.cpp: Added.
33701         (WebCore::):
33702         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
33703         (WebCore::JSNamedNodesCollection::lengthGetter):
33704         (WebCore::JSNamedNodesCollection::indexGetter):
33705         (WebCore::JSNamedNodesCollection::getOwnPropertySlot):
33706         * bindings/js/JSNamedNodesCollection.h: Added.
33707         (WebCore::JSNamedNodesCollection::classInfo):
33708         * bindings/js/JSNodeCustom.cpp: Added.
33709         (WebCore::toJS):
33710         * bindings/js/JSNodeListCustom.cpp: Added.
33711         (WebCore::JSNodeList::callAsFunction):
33712         (WebCore::JSNodeList::implementsCall):
33713         (WebCore::JSNodeList::canGetItemsForName):
33714         (WebCore::JSNodeList::nameGetter):
33715         * bindings/js/kjs_dom.cpp:
33716         * bindings/js/kjs_dom.h:
33717         * bindings/js/kjs_domnode.h:
33718         * bindings/js/kjs_events.cpp:
33719         (KJS::JSLazyEventListener::parseCode):
33720         * bindings/js/kjs_html.cpp:
33721         (KJS::JSHTMLCollection::getNamedItems):
33722         * bindings/js/kjs_html.h:
33723         * bindings/js/kjs_window.cpp:
33724         (WebCore::toJS):
33725         * bindings/js/kjs_window.h:
33726         * bindings/objc/DOMInternal.mm:
33727         (-[WebScriptObject _initializeScriptDOMNodeImp]):
33728         * bindings/objc/DOMUtility.mm:
33729         (KJS::createDOMWrapper):
33730         * bindings/scripts/CodeGeneratorJS.pm:
33731         * bridge/mac/WebCoreAXObject.mm:
33732         * dom/Attr.idl:
33733         * dom/CharacterData.idl:
33734         * dom/Document.idl:
33735         * dom/DocumentFragment.idl:
33736         * dom/DocumentType.idl:
33737         * dom/Element.idl:
33738         * dom/NamedNodeMap.idl:
33739         * dom/Node.idl:
33740         * dom/NodeList.idl:
33741         * page/DOMWindow.idl:
33743 2007-06-06  Justin Garcia  <justin.garcia@apple.com>
33745         Reviewed by Oliver.
33746         
33747         <rdar://problem/5245519> CrashTracer: [USER] 457 crashes in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties()
33748         
33749         If the user pastes something into a region that ends up being
33750         invisible, or if the pasted content contains style spans 
33751         that are render-less, we'll crash when we try to remove
33752         redundant styles from style spans.
33754         * css/CSSComputedStyleDeclaration.cpp:
33755         (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
33756         Add null checks.
33758 2007-06-06  Justin Garcia  <justin.garcia@apple.com>
33760         Reviewed by Harrison.
33762         <rdar://problem/4889598> Problems with moveDown: and moveUp: in Notes with ToDos
33763         
33764         The caret would disappear when moving from content above or below
33765         a ToDo if that ToDo doesn't have any content in it with the same
33766         x position as the caret. That's because closestLeafChildForXPos
33767         would return non-editable leaves, and which turn into non-editable
33768         VisiblePositions, which are invisible.
33770         * editing/visible_units.cpp:
33771         (WebCore::previousLinePosition): Ask closestLeafForXPos to only
33772         return editable leaves.
33773         (WebCore::nextLinePosition): Ditto.
33774         * rendering/RootInlineBox.cpp:
33775         (WebCore::isEditableLeaf): Added.
33776         (WebCore::RootInlineBox::closestLeafChildForXPos): If requested,
33777         return the closest editable leaf. Removed an early return if the
33778         position is before the first leaf, it's not really much of an
33779         optimization.
33780         * rendering/RootInlineBox.h:
33782 2007-06-06  Sam Weinig  <sam@webkit.org>
33784         Reviewed by Anders.
33786         Fix release build.
33788         * bindings/objc/DOM.mm:
33789         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Add missing null initialization.
33790         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Add missing null initialization.
33792 2007-06-06  Sam Weinig  <sam@webkit.org>
33794         Reviewed by Hyatt.
33796         Patch for http://bugs.webkit.org/show_bug.cgi?id=13947
33797         Finish autogenerating the JS DOM traversal code
33799         - Completely generate JSNodeFilter.
33800         - Move JSNodeFilterCondition into its own file
33802         * DerivedSources.make:
33803         * WebCore.pro:
33804         * WebCore.xcodeproj/project.pbxproj:
33805         * bindings/js/JSNodeFilterCondition.cpp: Copied from WebCore/bindings/js/kjs_traversal.cpp.
33806         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
33807         (WebCore::JSNodeFilterCondition::mark):
33808         (WebCore::JSNodeFilterCondition::acceptNode):
33809         * bindings/js/JSNodeFilterCondition.h: Copied from WebCore/bindings/js/kjs_traversal.h.
33810         * bindings/js/JSNodeFilterCustom.cpp: Added.
33811         (WebCore::JSNodeFilter::mark):
33812         (WebCore::toNodeFilter):
33813         * bindings/js/kjs_dom.cpp:
33814         * bindings/js/kjs_traversal.cpp: Removed.
33815         * bindings/js/kjs_traversal.h: Removed.
33816         * bindings/js/kjs_window.cpp:
33817         * bindings/objc/DOM.mm:
33818         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
33819         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
33820         * bindings/scripts/CodeGeneratorJS.pm:
33821         * dom/Document.cpp:
33822         (WebCore::Document::createNodeIterator):
33823         (WebCore::Document::createTreeWalker):
33824         * dom/Document.h:
33825         * dom/NodeFilter.idl:
33827 2007-06-06  Alp Toker  <alp.toker@collabora.co.uk>
33829         Reviewed by Eric Seidel.
33831         http://bugs.webkit.org/show_bug.cgi?id=14017
33832         Cairo: Unwanted gradient effect for small stretched images
33834         * platform/graphics/cairo/ImageCairo.cpp: Use CAIRO_FILTER_NEAREST to
33835         work around the issue.
33836         (WebCore::BitmapImage::draw):
33837         (WebCore::Image::drawPattern):
33839 2007-06-06  Lars Knoll <lars@trolltech.com>
33841         Reviewed by Zack
33843         Add an API to create and load plugins.
33844         Don't include moc files by hand anymore, rather let
33845         qmake handle them.
33847         * WebCore.pro:
33848         * platform/qt/MimeTypeRegistryQt.cpp:
33849         (WebCore::):
33850         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
33851         * platform/qt/QWebPopup.cpp:
33852         * platform/qt/SharedTimerQt.cpp:
33854 2007-06-06  Mark Rowe  <mrowe@apple.com>
33856         Qt build fix.
33858         * rendering/RenderTextControl.cpp: Fix case of #include filename.
33860 2007-06-06  Lars Knoll  <lars@trolltech.com>
33862         Reviewed by Maciej.
33864         Define WTF_USE_NPOBJECT for Qt. Fix includes
33865         in HTMLPluginElement and add proper forwarding headers
33866         from JavaScriptCore.
33868         * ForwardingHeaders/bindings/npruntime.h: Added.
33869         * ForwardingHeaders/bindings/runtime.h: Added.
33870         * config.h:
33871         * html/HTMLPlugInElement.cpp:
33872         * html/HTMLPlugInElement.h:
33874 2007-06-06  David Hyatt  <hyatt@apple.com>
33876         Bulletproof windowClipRect, since it can be called at crazy times.
33877         Part of fix for 13972.
33879         Reviewed by olliej
33881         * bindings/objc/DOM.mm:
33882         (-[DOMElement _windowClipRect]):
33884 2007-06-05  Darin Fisher  <darin@chromium.org>
33886         Reviewed by Dave Hyatt.
33888         Fixes http://bugs.webkit.org/show_bug.cgi?id=14008
33890         * rendering/RenderTextControl.cpp:
33891         (WebCore::RenderTextControl::calcHeight):
33892         (WebCore::RenderTextControl::calcPrefWidths):
33894 2007-06-05  Kevin McCullough  <kmccullough@apple.com>
33896         - Respelling Oliver's name right.
33898 2007-06-05  Kevin McCullough  <kmccullough@apple.com>
33900         Reviewed by Mark and Oliver.
33902         - http://bugs.webkit.org/show_bug.cgi?id=13352  REGRESSION: Gmail hangs on send message.
33903         - Now we don't hang, but we do so by avoiding certain legitimate characters, the evangelism bug for this is: <rdar://problem/5252577> gmail does not accept legal characters in the form boundary
33905         * html/HTMLFormElement.cpp:
33906         (WebCore::getUniqueBoundaryString):
33908 2007-06-05  Anders Carlsson  <andersca@apple.com>
33910         Build fix.
33911         
33912         * xml/xmlhttprequest.cpp:
33913         (WebCore::isValidToken):
33915 2007-06-05  Anders Carlsson  <andersca@apple.com>
33917         Reviewed by Geoff.
33919         <rdar://problem/5245555> REGRESSION: HTTP header injection in XMLHttpRequest.setRequestHeader
33920         <rdar://problem/5246208> HTTP injection in XMLHttpRequest.open method parameter
33921         <rdar://problem/5246242> HTTP header injection in HXMLHttpRequest.setRequestHeader header parameter
33922         
33923         Check method names, header names and header values and throw exceptions if any of them are
33924         invalid. This is what the new XMLHttpRequest spec states that we should do.
33925         
33926         * xml/xmlhttprequest.cpp:
33927         (WebCore::isValidToken):
33928         (WebCore::isValidHeaderValue):
33929         (WebCore::XMLHttpRequest::open):
33930         (WebCore::XMLHttpRequest::setRequestHeader):
33932 2007-06-05  Sam Weinig  <sam@webkit.org>
33934         Reviewed by Geoff.
33936         Optimize JSCSSStyleDeclaration after performance regression in r21854.
33938         - Check static table before name getter in JSCSSStyleDeclaration::getOwnPropertySlot()
33939         - Get rid of a string allocation by keeping string as KJS::Identifier for canGetItemsForName()
33940           functions.
33942         * WebCore.xcodeproj/project.pbxproj:
33943         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
33944         (WebCore::JSCSSStyleDeclaration::canGetItemsForName):
33945         * bindings/js/JSHTMLAppletElementCustom.cpp:
33946         (WebCore::JSHTMLAppletElement::canGetItemsForName):
33947         * bindings/js/JSHTMLDocumentCustom.cpp:
33948         (WebCore::JSHTMLDocument::canGetItemsForName):
33949         * bindings/js/JSHTMLEmbedElementCustom.cpp:
33950         (WebCore::JSHTMLEmbedElement::canGetItemsForName):
33951         * bindings/js/JSHTMLFormElementCustom.cpp:
33952         (WebCore::JSHTMLFormElement::canGetItemsForName):
33953         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
33954         (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
33955         * bindings/js/JSHTMLObjectElementCustom.cpp:
33956         (WebCore::JSHTMLObjectElement::canGetItemsForName):
33957         * bindings/scripts/CodeGeneratorJS.pm:
33958         * css/CSSStyleDeclaration.idl:
33960 2007-06-04  Sam Weinig  <sam@webkit.org>
33962         Reviewed, tweaked and landed by Anders.
33964         <rdar://problem/5247178> REGRESSION: With CSS Edit 2.5, a crash occurs at WebCore::DeprecatedString::DeprecatedString when page fails to be extracted
33965         
33966         Null check the provisional document loader. If an application stops the load 
33967         inside of the didFailProvisionalLoad delegate method, the provisional document loader will be nulled out.
33969         * loader/FrameLoader.cpp:
33970         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
33972 2007-06-04  Alp Toker  <alp.toker@collabora.co.uk>
33974         Reviewed by Anders.
33976         http://bugs.webkit.org/show_bug.cgi?id=13986
33977         Cairo graphics fixes and cleanups
33979         * platform/graphics/ImageBuffer.h:
33980         * platform/graphics/cairo/ImageBufferCairo.cpp:
33981         (WebCore::ImageBuffer::surface): Provide surface() accessor.
33982         * platform/graphics/cairo/AffineTransformCairo.cpp:
33983         (WebCore::AffineTransform::rotate): Convert from degrees to radians to
33984         fix rotation.
33985         * platform/graphics/cairo/GraphicsContextCairo.cpp:
33986         (WebCore::GraphicsContext::drawRect): Add save/restore.
33987         (WebCore::GraphicsContext::rotate): Rename parameter to "radians" to
33988         avoid further confusion.
33989         * platform/graphics/cairo/PathCairo.cpp:
33990         (WebCore::Path::boundingRect): The cairo_fill_extents() parameters do
33991         not describe a point/size but rather the two control points of the
33992         rectangular region.
33993         (WebCore::Path::contains): Remove needless casts.
33995 2007-06-04  Sam Weinig  <sam@webkit.org>
33997         Reviewed by Adam Roben.
33999         Fix the buildbot.
34001         * rendering/RenderSVGContainer.cpp:
34002         (WebCore::RenderSVGContainer::layout):
34004 2007-06-04  Justin Garcia  <justin.garcia@apple.com>
34006         Reviewed by Kimon Tsinteris.
34008         <rdar://problem/5241148> REGRESSION: ActivEdit can't perform operations on certain selections
34009         
34010         Return valid equivalents from these methods (no [img, 1] for 
34011         example). ActivEdit was using positions returned from these
34012         methods to create new DOM Ranges.
34013         
34014         * editing/SelectionController.cpp:
34015         (WebCore::SelectionController::baseNode):
34016         (WebCore::SelectionController::baseOffset):
34017         (WebCore::SelectionController::extentNode):
34018         (WebCore::SelectionController::extentOffset):
34019         (WebCore::SelectionController::anchorNode):
34020         (WebCore::SelectionController::anchorOffset):
34021         (WebCore::SelectionController::focusNode):
34022         (WebCore::SelectionController::focusOffset):
34023         * editing/SelectionController.h:
34025 2007-06-04  Rob Buis  <buis@kde.org>
34027         Fix the svg experimental build.
34029         * ksvg2/svg/SVGFEFloodElement.cpp:
34031 2007-06-04  Rob Buis  <buis@kde.org>
34033         Reviewed by Hyatt.
34035         http://bugs.webkit.org/show_bug.cgi?id=6170
34036         CSS1: Properties for :first-letter aren't recalculated on color change
34038         Mark styles with first-letter as unique.
34040         * css/cssstyleselector.cpp:
34041         (WebCore::CSSStyleSelector::styleForElement):
34043 2007-06-01  Anders Carlsson  <acarlsson@apple.com>
34045         Reviewed by David Harrison.
34047         <rdar://problem/5236843> 
34048         CrashTracer: [USER] 3 crashes in Mail at WebCore::Loader::didReceiveResponse(WebCore::SubresourceLoader*, WebCore::ResourceResponse const&)
34050         This is by no means the best solution for handling user style sheets. I've filed <rdar://problem/5244734> 
34051         for tracking that.
34052         
34053         * loader/loader.cpp:
34054         (WebCore::Loader::didReceiveResponse):
34055         If a load starts while the frame is still in the provisional state 
34056         (this can be the case when loading the user style sheet), committing the load then causes all
34057         requests to be removed from the m_requestsLoading map. This means that req might be null here.
34058         In that case we just return early. 
34059         
34060 2007-06-01  Mitz Pettel  <mitz@webkit.org>
34062         Reviewed by Adele.
34064         - fix http://bugs.webkit.org/show_bug.cgi?id=13958
34065           REGRESSION: Form select menu in iframe destroys form select menu on page
34067         * page/mac/EventHandlerMac.mm:
34068         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): Instead of calling
34069         the event handler methods directly, post the fake event on the application event
34070         queue. This ensures that the fake event is handled only after handling of the
34071         initiating event has ended, and is seen by ancestor frames' event handlers.
34073 2007-06-01  George Staikos  <staikos@kde.org>
34075         Reviewed by bdash.
34077         Redo the build fix again after it was backed out
34079         * WebCore.pro: add an include guard around CSSGrammar.h
34081 2007-05-31  Geoffrey Garen  <ggaren@apple.com>
34083         Reviewed by Beth Dakin.
34085         Fixed <rdar://problem/5238177> Continuing after hitting breakpoint doesn't 
34086         execute the next step.
34087         
34088         No test because the only code affected is the debugger, and none of the
34089         relevant API is exported.
34090         
34091         Reverted an accidental change in 21324 that caused originRootObject for
34092         the window object always to be 0. We could probably just remove the debugger's
34093         dependency on originRootObject, but I wanted to be safe.
34095         * page/mac/FrameMac.mm:
34096         (WebCore::Frame::windowScriptObject):
34098 2007-05-31  David Hyatt  <hyatt@apple.com>
34100         Fix for 11768, Flash plugin does not respect clips set via CSS.
34102         Reviewed by olliej
34104         * bindings/objc/DOM.mm:
34105         (-[DOMElement _windowClipRect]):
34106         * bindings/objc/DOMPrivate.h:
34107         * page/FrameView.cpp:
34108         (WebCore::FrameView::windowClipRect):
34109         (WebCore::FrameView::windowClipRectForLayer):
34110         * platform/ScrollView.h:
34111         (WebCore::ScrollView::contentsToWindow):
34112         (WebCore::ScrollView::windowToContents):
34113         * platform/mac/ScrollViewMac.mm:
34114         (WebCore::ScrollView::contentsToWindow):
34115         (WebCore::ScrollView::windowToContents):
34117 2007-05-31  Sam Weinig  <sam@webkit.org>
34119         Reviewed by Adam.
34121         Fix build bot.
34123         * ksvg2/svg/SVGSVGElement.cpp:
34124         (WebCore::SVGSVGElement::setCurrentScale):
34126 2007-05-31  Sam Weinig  <sam@webkit.org>
34128         Fix Qt and Gdk builds.
34130         * WebCore.pro: remove bindings/js/JSHTMLAnchorElementCustom.cpp
34132 2007-05-31  Sam Weinig  <sam@webkit.org>
34134         Reviewed by Geoff.
34136         Patch for http://bugs.webkit.org/show_bug.cgi?id=10782
34137         Classes should not override JSObject::toString(ExecState *)
34139         Remove all overrides of JSObject::toString and JSObject::toPrimitive
34140         which is a bad practice.  Instead, if an object, like the 
34141         HTMLAnchorElement, needs to override to toString, it should add
34142         a function to the JS object which will be called when needed.  This
34143         also allows developers to override toString and valueOf from within JS.
34145         Test: fast/js/toString-and-valueOf-override.html
34147         * WebCore.xcodeproj/project.pbxproj:
34148         * bindings/js/JSHTMLAnchorElementCustom.cpp: Removed.
34149         * bindings/js/kjs_binding.cpp:
34150         * bindings/js/kjs_binding.h:
34151         * bindings/js/kjs_dom.cpp:
34152         * bindings/js/kjs_dom.h:
34153         * bindings/js/kjs_domnode.h:
34154         * bindings/js/kjs_window.cpp:
34155         (KJS::History::):
34156         (KJS::LocationFunc::callAsFunction):
34157         (KJS::SelectionFunc::callAsFunction):
34158         * bindings/js/kjs_window.h:
34159         * bindings/scripts/CodeGeneratorJS.pm:
34160         * html/HTMLAnchorElement.cpp:
34161         (WebCore::HTMLAnchorElement::toString):
34162         * html/HTMLAnchorElement.h:
34163         * html/HTMLAnchorElement.idl:
34165 2007-05-31  Rob Buis  <buis@kde.org>
34167         Reviewed by Darin.
34169         http://bugs.webkit.org/show_bug.cgi?id=11272
34170         Implement currentScale(), setCurrentScale() and currentTranslate() in SVGSVGElement
34172         Allow zooming and panning, thereby implementing the above methods.
34174         * ksvg2/svg/SVGDocument.cpp:
34175         (WebCore::SVGDocument::zoomEnabled):
34176         (WebCore::SVGDocument::startPan):
34177         (WebCore::SVGDocument::updatePan):
34178         * ksvg2/svg/SVGDocument.h:
34179         * ksvg2/svg/SVGSVGElement.cpp:
34180         (WebCore::SVGSVGElement::currentScale):
34181         (WebCore::SVGSVGElement::setCurrentScale):
34182         (WebCore::SVGSVGElement::currentTranslate):
34183         (WebCore::SVGSVGElement::setCurrentTranslate):
34184         * ksvg2/svg/SVGSVGElement.h:
34185         * page/EventHandler.cpp:
34186         (WebCore::EventHandler::EventHandler):
34187         (WebCore::EventHandler::handleMousePressEvent):
34188         (WebCore::EventHandler::handleMouseMoveEvent):
34189         (WebCore::EventHandler::handleMouseReleaseEvent):
34190         * page/EventHandler.h:
34191         * page/Frame.cpp:
34192         (WebCore::Frame::setZoomFactor):
34193         * rendering/RenderSVGContainer.cpp:
34194         (WebCore::RenderSVGContainer::layout):
34195         (WebCore::RenderSVGContainer::paint):
34196         (WebCore::RenderSVGContainer::absoluteTransform):
34197         * rendering/RenderSVGContainer.h:
34199 2007-05-31  Eric Seidel  <eric@webkit.org>
34201         Reviewed by Niko.
34203         Links are activated based on mouse down events instead of click events
34204         http://bugs.webkit.org/show_bug.cgi?id=12570
34205         
34206         Test: svg/custom/prevent-default.svg
34208         * html/HTMLAnchorElement.cpp: use MiddleButton and RightButton instead of 1 and 2
34209         (WebCore::HTMLAnchorElement::defaultEventHandler):
34210         * ksvg2/svg/SVGAElement.cpp:
34211         (WebCore::SVGAElement::defaultEventHandler): make it function more like the HTML side
34213 2007-05-30  Maciej Stachowiak  <mjs@apple.com>
34215         Reviewed by Hyatt.
34217         - fix layout test editing/style/table-selection.html
34218         
34219         This was broken by the change to keep whitespace text nodes in tables. They safely didn't render,
34220         but the font delta style change command would wrap them in spans, creating extra anonymous table
34221         cells.
34223         * editing/ApplyStyleCommand.cpp:
34224         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Don't wrap in a span if the text node
34225         is not rendered.
34227 2007-05-31  Alp Toker  <alp.toker@collabora.co.uk>
34229         Reviewed by Eric Seidel.
34231         http://bugs.webkit.org/show_bug.cgi?id=13941
34232         Rename WebCore/platform/network/gdk to WebCore/platform/network/curl
34234         * WebCore.pro:
34236 2007-05-31  Alp Toker  <alp.toker@collabora.co.uk>
34238         Reviewed by Niko.
34240         Patch for http://bugs.webkit.org/show_bug.cgi?id=13945
34241         GraphicsContextCairo enhancements necessary for SVG support
34243         * platform/graphics/cairo/GraphicsContextCairo.cpp:
34244         (WebCore::GraphicsContext::concatCTM):
34245         (WebCore::GraphicsContext::beginPath):
34246         (WebCore::GraphicsContext::addPath):
34248 2007-05-31  Patti Hoa <patti@apple.com>
34250         Reviewed by Darin.
34251         
34252         <rdar://problem/5221920> AXLink is returning a CFString instead of a CFURL for AXURL
34254         * bridge/mac/WebCoreAXObject.mm:
34255         (-[WebCoreAXObject accessibilityAttributeValue:]):
34256         Convert the url string to an NSURL before returning as the AXURLAttribute
34258 2007-05-30  Sam Weinig  <sam@webkit.org>
34260         Reviewed by Oliver.
34262         Patch for http://bugs.webkit.org/show_bug.cgi?id=13943
34263         Autogenerate the JS bindings for the CSSStyleSheet
34265         * DerivedSources.make:
34266         * WebCore.pro:
34267         * WebCore.xcodeproj/project.pbxproj:
34268         * bindings/js/JSStyleSheetCustom.cpp:
34269         (WebCore::toJS):
34270         * bindings/js/kjs_css.cpp:
34271         * bindings/js/kjs_css.h:
34272         * bindings/scripts/CodeGeneratorJS.pm:
34273         * css/CSSStyleSheet.cpp:
34274         (WebCore::CSSStyleSheet::addRule):
34275         (WebCore::CSSStyleSheet::cssRules):
34276         * css/CSSStyleSheet.h:
34277         (WebCore::CSSStyleSheet::rules):
34278         (WebCore::CSSStyleSheet::removeRule):
34279         * css/CSSStyleSheet.idl:
34280         * page/DOMWindow.idl:
34282 2007-05-30  Sam Weinig  <sam@webkit.org>
34284         Reviewed by Oliver.
34286         Patch for http://bugs.webkit.org/show_bug.cgi?id=13937
34287         Autogenerate the JS bindings for the CSSValue
34289         * WebCore.pro:
34290         * WebCore.xcodeproj/project.pbxproj:
34291         * bindings/js/JSCSSValueCustom.cpp: Added.
34292         (WebCore::toJS):
34293         * bindings/js/kjs_css.cpp:
34294         * bindings/js/kjs_css.h:
34295         * bindings/objc/DOMUtility.mm:
34296         (KJS::createDOMWrapper):
34297         * bindings/scripts/CodeGeneratorJS.pm:
34298         * css/CSSValue.h:
34299         (WebCore::CSSValue::setCssText):
34300         * css/CSSValue.idl:
34302 2007-05-30  Sam Weinig  <sam@webkit.org>
34304         Reviewed by Oliver the Hun.
34306         Patch for http://bugs.webkit.org/show_bug.cgi?id=13944
34307         Generate and add missing JS constructors
34309         * css/CSSRuleList.idl:
34310         * css/CSSValueList.idl:
34311         * css/Counter.idl:
34312         * page/DOMWindow.idl:
34314 2007-05-30  Justin Garcia  <justin.garcia@apple.com>
34316         Reviewed by Darin.
34318         http://bugs.webkit.org/show_bug.cgi?id=13915
34319         REGRESSION(r21687): editing/inserting/paragraph-separator-* failing pixel test (misspelling markers)
34321         After r21687, SimplifiedBackwardsTextIterator was no longer 
34322         emitting a '\n' as it left the first block of a range ending 
34323         at [block, 0]. So, foo<div>^<br></div> looked like foo^ to
34324         spell checking (foo wasn't marked as misspelled).
34326         After r21687, SBTI stopped emitting '\n's in the above case 
34327         because 1) we stopped incorrectly emitting '\n's for nodes as 
34328         we entered them and 2) we were and still are incorrectly calling 
34329         code that should only be called when entering nodes as we leave 
34330         them and 3) we don't call exitNode(), which is responsible 
34331         for emitting the '\n' in the above testcase, when we should.
34333         Before and after r21687, we'd call exitNode() for a node as 
34334         we traversed in reverse pre-order from its first descendant 
34335         out to its sibling or one of its ancestors' siblings.  We 
34336         weren't calling it a) after we'd enter a node that could 
34337         have children but had none and b) when leaving a container 
34338         that contained the end of the range used to create the iterator.
34340         * editing/TextIterator.cpp:
34341         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
34342         (WebCore::SimplifiedBackwardsTextIterator::advance): Call exitNode() as we
34343         leave a childless container node and a node where the range ended.
34344         * editing/TextIterator.h: Track the end of the range used to create
34345         the SimplifiedBackwardsTextIterator.
34347 2007-05-30  Alp Toker  <alp.toker@collabora.co.uk>
34349         Reviewed by Brady.
34351         Enable logging in the Gdk port.
34352         http://bugs.webkit.org/show_bug.cgi?id=13936
34354         * WebCore.pro:
34355         * platform/NotImplemented.h: Changed to use WTFLogVerbose.
34356         * platform/gdk/LoggingGdk.cpp: Added.
34357         (WebCore::InitializeLoggingChannelsIfNecessary):
34359 2007-05-30  Beth Dakin  <bdakin@apple.com>
34361         Reviewed by Hyatt.
34363         Fix for <rdar://problem/5198882> CrashTracer: [USER] 7 crashes in 
34364         Safari at com.apple.WebCore: WebCore::RenderBlock::layoutBlock + 
34365         2360
34367         The problem is that we are re-entering layout when we should not. 
34368         http://trac.webkit.org/projects/webkit/changeset/21778 actually 
34369         fixed this crash, but we have been inspired to add the same guard 
34370         in two other possibly-dangerous places.
34372         * page/FrameView.cpp:
34373         (WebCore::FrameView::layout): Add the guard in two more places.
34375 2007-05-30  Justin Garcia  <justin.garcia@apple.com>
34377         Reviewed by Oliver.
34379         <rdar://problem/5096134> VO gets stuck on Howto.apple.com
34380         http://bugs.webkit.org/show_bug.cgi?id=8622
34381         VisiblePositions aren't canonicalized in some cases
34382         
34383         No new test cases added: can't write automated tests 
34384         for VO.
34386         * editing/IndentOutdentCommand.cpp:
34387         (WebCore::IndentOutdentCommand::outdentParagraph):
34388         VisiblePositions must be recomputed after nodes that
34389         may have effected their canonicalization are removed.
34390         * editing/VisiblePosition.cpp:
34391         (WebCore::canonicalizeCandidate): Added.
34392         (WebCore::VisiblePosition::canonicalPosition): Canonicalize
34393         the candidates returned by next/previousCandidate before
34394         returning them.
34395         * editing/VisiblePosition.h:
34396         (WebCore::operator==): Remove the workaround for 8622.
34397         * editing/visible_units.cpp:
34398         (WebCore::startOfParagraph): Ditto.
34400 2007-05-30  Sam Weinig  <sam@webkit.org>
34402         Reviewed by Dr. Harrison.
34404         Patch for http://bugs.webkit.org/show_bug.cgi?id=13868
34405         REGRESSION: crash on accessing a new iframe's contentWindow property
34407         Adds a null check in for the contentWindow property for HTMLIFrameElement
34408         and HTMLFrameElement.
34410         * bindings/scripts/CodeGeneratorJS.pm:
34411         * html/HTMLFrameElement.idl:
34412         * html/HTMLIFrameElement.idl:
34414 2007-05-30  Mitz Pettel  <mitz@webkit.org>
34416         Reviewed by Darin.
34418         - fix http://bugs.webkit.org/show_bug.cgi?id=13775
34419           REGRESSION: Popup button text should use "natural" directionality to match the items in the popup menu
34421         Test: fast/forms/select-writing-direction-natural.html
34423         * platform/PopupMenu.h: Added the static method itemWritingDirectionIsNatural
34424         which says whether items in the popup ignore the CSS text-align and direction
34425         properties and instead are left-aligned and use natural writing direction.
34426         * platform/gdk/PopupMenuGdk.cpp:
34427         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34428         * platform/mac/PopupMenuMac.mm:
34429         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34430         * platform/qt/PopupMenuQt.cpp:
34431         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34432         * platform/win/TemporaryLinkStubs.cpp:
34433         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34434         * platform/wx/TemporaryLinkStubs.cpp:
34435         (PopupMenu::itemWritingDirectionIsNatural):
34436         * rendering/RenderMenuList.cpp:
34437         (WebCore::textDirectionForParagraph): Added this helper function that uses
34438         the Unicode Bidi Algorithm rules P2 and P3 to determine the writing direction
34439         of text.
34440         (WebCore::RenderMenuList::adjustInnerStyle): Made the alignment and direction
34441         adjustment conditional on the popup implementation.
34442         (WebCore::RenderMenuList::setText): Added call to adjustInnerStyle() since
34443         the style depends on the text when natural writing direction is used.
34445 2007-05-30  Timothy Hatcher  <timothy@apple.com>
34447         Reviewed by Darin.
34449         <rdar://problem/5200795> REGRESSION (r21057): lineBoxRects doesn't match actual text when wrapping occurs
34451         Use box->end() instead of box->len().
34453         * rendering/RenderText.cpp:
34454         (WebCore::RenderText::addLineBoxRects):
34456 2007-05-30  Sam Weinig  <sam@webkit.org>
34458         Reviewed by Darin.
34460         Patch for http://bugs.webkit.org/show_bug.cgi?id=13919
34461         Autogenerate the JS bindings for the CSSRule and its subclasses
34463         - subclasses generated are CSSCharsetRule, CSSFontFaceRule, CSSImportRule
34464           CSSMediaRule, CSSPageRule and CSSStyleRule.
34466         * DerivedSources.make:
34467         * WebCore.pro:
34468         * WebCore.xcodeproj/project.pbxproj:
34469         * bindings/js/JSCSSRuleCustom.cpp: Added.
34470         (WebCore::toJS):
34471         * bindings/js/kjs_css.cpp:
34472         * bindings/js/kjs_css.h:
34473         * bindings/objc/DOMUtility.mm:
34474         (KJS::createDOMWrapper):
34475         * bindings/scripts/CodeGeneratorJS.pm:
34476         * css/CSSCharsetRule.h:
34477         (WebCore::CSSCharsetRule::setEncoding):
34478         * css/CSSCharsetRule.idl:
34479         * css/CSSFontFaceRule.idl:
34480         * css/CSSImportRule.idl:
34481         * css/CSSMediaRule.idl:
34482         * css/CSSPageRule.cpp:
34483         (WebCore::CSSPageRule::setSelectorText):
34484         * css/CSSPageRule.h:
34485         * css/CSSPageRule.idl:
34486         * css/CSSRule.cpp:
34487         (WebCore::CSSRule::setCssText):
34488         * css/CSSRule.h:
34489         * css/CSSRule.idl:
34490         * css/CSSStyleRule.cpp:
34491         (WebCore::CSSStyleRule::setSelectorText):
34492         * css/CSSStyleRule.h:
34493         * css/CSSStyleRule.idl:
34494         * page/DOMWindow.idl: add new constructors.
34496 2007-05-30  Mark Rowe  <mrowe@apple.com>
34498         Build fixes after r21889.  Add missing #includes.
34500         * ForwardingHeaders/kjs/function.h: Added.
34501         * bindings/js/kjs_binding.h:
34502         * bindings/js/kjs_dom.h:
34503         * bindings/js/kjs_window.h:
34505 2007-05-30  Mark Rowe  <mrowe@apple.com>
34507         Gdk build fix.  Update WidgetGdk to use NotImplemented.h.
34509         * platform/gdk/WidgetGdk.cpp:
34510         (WebCore::Widget::setEnabled):
34511         (WebCore::Widget::isEnabled):
34512         (WebCore::Widget::removeFromParent):
34513         (WebCore::Widget::paint):
34514         (WebCore::Widget::setIsSelected):
34516 2007-05-29  Holger Freyther  <zecke@selfish.org>
34518         Reviewed by Anders.
34520         Make ScrollView use a GtkLayout. This class matches QScrollView the most and promises
34521         to ease the implementation of ScrollView::addChild. GtkLayout should be resource friendly
34522         even with huge width and heights of frames.
34523         Make Widget aware of GtkLayout to use the right GdkWindow as drawable. For GtkLayout one must
34524         draw on the bin_window.
34525         Remove the layer violation from FrameGdk.cpp and ScrollView. FrameGdk is no longer responsible to
34526         implement scrolling on keyboard events. ScrollView is no longer required to know that it could be
34527         a FrameView and handles scrolling of Frames magically.
34529         * platform/ScrollView.h:
34530         * platform/gdk/FrameGdk.cpp:
34531         (WebCore::FrameGdk::keyPress):
34532         (WebCore::FrameGdk::handleGdkEvent):
34533         * platform/gdk/ScrollViewGdk.cpp:
34534         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
34535         (WebCore::ScrollView::updateContents):
34536         (WebCore::ScrollView::visibleWidth):
34537         (WebCore::ScrollView::visibleHeight):
34538         (WebCore::ScrollView::visibleContentRect):
34539         (WebCore::ScrollView::resizeContents):
34540         (WebCore::ScrollView::contentsX):
34541         (WebCore::ScrollView::contentsY):
34542         (WebCore::ScrollView::scrollOffset):
34543         (WebCore::ScrollView::scrollBy):
34544         (WebCore::ScrollView::setFrameGeometry):
34545         (WebCore::ScrollView::updateGeometry):
34546         (WebCore::ScrollView::setGtkWidget):
34547         (WebCore::ScrollView::updateScrollbars):
34548         (WebCore::ScrollView::windowToContents):
34549         (WebCore::ScrollView::contentsToWindow):
34550         (WebCore::ScrollView::scrollbarUnderMouse):
34551         * platform/gdk/TemporaryLinkStubs.cpp: Move Widget methods to WidgetGdk.cpp
34552         * platform/gdk/WidgetGdk.cpp:
34553         (WebCore::Widget::setGtkWidget):
34554         (WebCore::Widget::setFrameGeometry):
34555         (WebCore::Widget::setEnabled):
34556         (WebCore::Widget::isEnabled):
34557         (WebCore::Widget::removeFromParent):
34558         (WebCore::Widget::paint):
34559         (WebCore::Widget::setIsSelected):
34560         (WebCore::Widget::invalidate):
34561         (WebCore::Widget::invalidateRect):
34563 2007-05-29  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
34565         Reviewed by Maciej.
34567         Curl (linux/gdk) networking improvements: 
34568         a) POST support
34569         b) don't use CURL in a re-entrant way.
34570         c) turn on curl's internal debugging support in a debug build if the DEBUG_CURL environment variable is set.
34572         * platform/network/ResourceHandleInternal.h:
34573         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
34574         * platform/network/gdk/ResourceHandleCurl.cpp:
34575         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
34576         * platform/network/gdk/ResourceHandleManager.cpp:
34577         (WebCore::ResourceHandleManager::ResourceHandleManager):
34578         (WebCore::writeCallback):
34579         (WebCore::ResourceHandleManager::downloadTimerCallback):
34580         (WebCore::ResourceHandleManager::setupPOST):
34581         (WebCore::ResourceHandleManager::add):
34582         (WebCore::ResourceHandleManager::removeScheduledJob):
34583         (WebCore::ResourceHandleManager::startScheduledJobs):
34584         (WebCore::ResourceHandleManager::startJob):
34585         (WebCore::ResourceHandleManager::cancel):
34586         * platform/network/gdk/ResourceHandleManager.h:
34587         (WebCore::ResourceHandleList::ResourceHandleList):
34588         (WebCore::ResourceHandleList::next):
34589         (WebCore::ResourceHandleList::job):
34590         (WebCore::ResourceHandleList::setRemoved):
34591         (WebCore::ResourceHandleList::removed):
34593 2007-05-29  Sam Weinig  <sam@webkit.org>
34595         Fix the Qt and Gdk builds.
34597         * WebCore.pro:
34599 2007-05-29  Adele Peterson  <adele@apple.com>
34601         Reviewed by Adam.
34603         Fix for <rdar://problem/5109711> REGRESSION: Focus ring artifacts appear around a widget's search field at times (Address Book, Dictionary)
34605         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintSearchField):
34606           We only need this hack for drawing the search field focus ring on Tiger.  On Leopard, drawWithFrame correctly draws the cell's focus ring.
34608 2007-05-29  Alp Toker  <alp.toker@collabora.co.uk>
34610         Reviewed by Mitz.
34612         Patch for http://bugs.webkit.org/show_bug.cgi?id=13899
34614         * platform/graphics/cairo/GraphicsContextCairo.cpp:
34615         (WebCore::GraphicsContext::strokeArc): Use cairo_arc_negative() to fix
34616         CSS rounded borders.
34617         (WebCore::GraphicsContext::beginTransparencyLayer):
34618         (WebCore::GraphicsContext::endTransparencyLayer): save/restore is
34619         redundant. push/pop group does this implicitly.
34621 2007-05-29  Sam Weinig  <sam@webkit.org>
34623         Reviewed by Oliver.
34625         Patch for http://bugs.webkit.org/show_bug.cgi?id=13912
34626         Autogenerate the JS bindings for the MediaList
34628         * DerivedSources.make:
34629         * WebCore.xcodeproj/project.pbxproj:
34630         * bindings/js/kjs_css.cpp:
34631         * bindings/js/kjs_css.h:
34632         * bindings/objc/DOMUtility.mm:
34633         (KJS::createDOMWrapper):
34634         * bindings/scripts/CodeGeneratorJS.pm:
34635         * css/MediaList.idl:
34636         * page/DOMWindow.idl: Add constructor.
34638 2007-05-29  Matt Perry  <mpComplete@gmail.com>
34640         Reviewed by Maciej.
34642         Fixed some rendering issues for <select>s on Windows.
34644         * rendering/RenderThemeWin.cpp:
34645         (WebCore::RenderThemeWin::adjustMenuListStyle):
34646         (WebCore::RenderThemeWin::paintMenuList):
34647         * rendering/RenderThemeWin.h:
34649 2007-05-29  David Hyatt  <hyatt@apple.com>
34651         Fold the invalidateVerticalPositions crawl into the bidi iteration.
34652         This makes it more correct (since we won't drill into elements that
34653         did not need to be reset) and cuts out an extra walk of all our children.
34654         We're still O(n^2) as new content streams in, but this at least cuts
34655         out one separate O(n^2) crawl.
34657         Reviewed by olliej
34659         * rendering/RenderObject.cpp:
34660         * rendering/RenderObject.h:
34661         (WebCore::RenderObject::invalidateVerticalPosition):
34662         * rendering/bidi.cpp:
34663         (WebCore::RenderBlock::layoutInlineChildren):
34665 2007-05-29  Sam Weinig  <sam@webkit.org>
34667         Reviewed by Oliver.
34669         Patch for http://bugs.webkit.org/show_bug.cgi?id=13908
34670         Autogenerate the JS bindings for the StyleSheet
34672         * DerivedSources.make:
34673         * WebCore.xcodeproj/project.pbxproj:
34674         * bindings/js/JSStyleSheetCustom.cpp: Added.
34675         (WebCore::toJS):
34676         (WebCore::JSStyleSheet::toBoolean):
34677         * bindings/js/kjs_css.cpp:
34678         (KJS::):
34679         (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
34680         (KJS::DOMCSSStyleSheet::getOwnPropertySlot):
34681         * bindings/js/kjs_css.h:
34682         * bindings/objc/DOMUtility.mm:
34683         (KJS::createDOMWrapper):
34684         * bindings/scripts/CodeGeneratorJS.pm:
34685         * css/StyleSheet.idl:
34686         * page/DOMWindow.idl: Add new constructor.
34688 2007-05-29  David Hyatt  <hyatt@apple.com>
34690         Make sure <embed> does not allow an end tag.
34692         Reviewed by olliej
34694         * html/HTMLEmbedElement.h:
34695         (WebCore::HTMLEmbedElement::endTagRequirement):
34697 2007-05-29  Adele Peterson  <adele@apple.com>
34699         Reviewed by Brady.
34701         Fix for <rdar://problem/5213039> REGRESSION: Wells Fargo registration page returns blank
34703         Roll out updated fix for 11866 that tried to make reset work for hidden inputs.  Since
34704         all browsers update the value attribute when setting the value, it doesn't really make sense to reset.
34705         Its true that IE does support resetting these controls, but in this case, it doesn't really make sense to have
34706         another place to store an alternate version of the value.
34708         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::reset):
34709         * html/HTMLInputElement.h:
34711 2007-05-29  Darin Adler  <darin@apple.com>
34713         Reviewed by Anders.
34715         - removed the general case optimization for innerHTML because some sites
34716           rely on setting innerHTML to trigger loading plug-ins for example; we
34717           could consider bringing it back some day, perhaps with a list of element
34718           types to exclude
34720         * dom/CharacterData.cpp: (WebCore::CharacterData::setData):
34721         Do nothing if the old data is identical to the new data.
34723         * html/HTMLElement.cpp:
34724         (WebCore::replaceChildrenWithFragment): Remove childrenAreEqual optimization.
34725         (WebCore::replaceChildrenWithText): Remove optimization for cases where the
34726         text data is identical to the new data, since CharacterData handles that now.
34727         (WebCore::HTMLElement::setOuterHTML): Remove childrenAreEqual optimization.
34729 2007-05-29  Mitz Pettel  <mitz@webkit.org>
34731         Reviewed by Maciej.
34733         - fix http://bugs.webkit.org/show_bug.cgi?id=13904
34734           REGRESSION: Search fields with a results popup do not always draw the popup arrow
34736         Covered by fast/forms/box-shadow-override.html
34738         The search button draws a popup arrow depending on whether the
34739         search menu template is set, rather than on the maximum number of recent
34740         search strings.
34742         * rendering/RenderThemeMac.h:
34743         * rendering/RenderThemeMac.mm:
34744         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): Removed the
34745         call to -setMaxmiumRecents:.
34746         (WebCore::RenderThemeMac::paintSearchFieldResultsButton): Replaced calling
34747         -setMaximumRecents: with setting the search menu template.
34748         (WebCore::RenderThemeMac::search): Removed initialization of the menu.
34749         (WebCore::RenderThemeMac::searchMenuTemplate): Added. Returns an empty
34750         NSMenu to be used as the search menu template.
34752 2007-05-29  David Hyatt  <hyatt@apple.com>
34754         Fix for bug 13907, <noscript> should be allowed inside <head> when
34755         scripting is enabled.
34757         Reviewed by aroben
34759         * html/HTMLHeadElement.cpp:
34760         (WebCore::HTMLHeadElement::checkDTD):
34761         * html/HTMLParser.cpp:
34762         (WebCore::HTMLParser::handleError):
34763         * html/HTMLParserErrorCodes.cpp:
34764         (WebCore::htmlParserErrorMessageTemplate):
34765         * html/HTMLParserErrorCodes.h:
34767 2007-05-29  Mitz Pettel  <mitz@webkit.org>
34769         Reviewed by Maciej.
34771         - fix crash in http://bugs.webkit.org/show_bug.cgi?id=13792
34772           REGRESSION: WebKit doesn't show this javascript screenshot page (and crashes after click on its "hidden link")
34774         Test: fast/frames/removal-before-attach-crash.html
34776         Delayed the queueing of the post-attach callback until attach().
34778         * html/HTMLFrameElementBase.cpp:
34779         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
34780         (WebCore::HTMLFrameElementBase::parseMappedAttribute): Replaced call to the
34781         HTMLElement implementation with a call to the HTMLFrameOwnerElement
34782         implementation, as the latter is the parent class.
34783         (WebCore::HTMLFrameElementBase::insertedIntoDocument): Instead of queueing
34784         the post-attach callback here, just set a flag telling us to do so
34785         at the beginning of attach().
34786         (WebCore::HTMLFrameElementBase::removedFromDocument): Reset the above flag.
34787         (WebCore::HTMLFrameElementBase::attach): If this is the first attach() after
34788         being inserted into the document, queue a post-attach callback to load the
34789         frame.
34790         (WebCore::HTMLFrameElementBase::willRemove): Changed to call up to the correct
34791         parent class.
34792         (WebCore::HTMLFrameElementBase::setFocus): Ditto.
34793         * html/HTMLFrameElementBase.h:
34794         * html/HTMLPlugInElement.cpp:
34795         (WebCore::HTMLPlugInElement::mapToEntry): Replaced call to the HTMLElement
34796         implementation with a call to the HTMLFrameOwnerElement implementation,
34797         as the latter is the parent class.
34798         (WebCore::HTMLPlugInElement::parseMappedAttribute): Ditto.
34799         (WebCore::HTMLPlugInElement::checkDTD): Ditto.
34800         (WebCore::HTMLPlugInElement::detach): Ditto.
34802 2007-05-29  Darin Adler  <darin@apple.com>
34804         Reviewed by Maciej.
34806         - fix http://bugs.webkit.org/show_bug.cgi?id=13602
34807           Amazon product pages keep repainting over and over again
34809         - fix first-letter when the text of the affected text node is changed
34811         Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
34812         if they don't need to.
34814         Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
34815         Test: fast/css/first-letter-detach.html
34817         * html/HTMLElement.cpp:
34818         (WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
34819         attribute maps.
34820         (WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
34821         arbitrary nodes.
34822         (WebCore::childrenAreEqual): Added. Helper functions that compare children of nodes.
34823         (WebCore::hasOneChild): Added. Helper function.
34824         (WebCore::hasOneTextChild): Added. Helper function.
34825         (WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
34826         setInnerText. Optimizes the cases where all the nodes are the same, where both the current
34827         and the new content are single text nodes, and where the current content is a single node
34828         that can be replaced with replaceChild.
34829         (WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
34830         the case where the current content is a single text node or a single node that can be
34831         replaced with replaceChild.
34832         (WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
34833         (WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
34834         exactly matches the current node.
34835         (WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
34836         cases instead of doing removeChildren/appendChild. Changed code that was using
34837         DeprecatedString to instead use String. Changed general case to use a document fragment
34838         and replaceChildrenWithFragment.
34840         * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
34841         Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
34842         was registered for the DOMCharacterDataModified event. Caused trouble in the test.
34844         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::updateFirstLetter): Set first-letter
34845         after the setStyle call so calls to setTextInternal inside setStyle don't clear it.
34847         * rendering/RenderText.h: Made setTextInternal virtual so that RenderTextFragment can do
34848         appropriate work when the text changes.
34850         * rendering/RenderTextFragment.h: Added an override of setTextInternal. Removed the
34851         firstLetter parameter to the constructor and made it a separate setter. Also changed
34852         m_generatedContentStr to m_contentString to match the getter function.
34853         * rendering/RenderTextFragment.cpp:
34854         (WebCore::RenderTextFragment::RenderTextFragment): Removed firstLetter parameter.
34855         (WebCore::RenderTextFragment::setTextInternal): When the text changes, destroy the
34856         first-letter node and reset the fragment values so that RenderBlock::updateFirstLetter,
34857         which will run during layout, will create a new first-letter child. Otherwise we end up
34858         with the first letter of the old text.
34860 2007-05-29  Sam Weinig  <sam@webkit.org>
34862         Fix Qt build.
34864         * platform/NotImplemented.h:
34866 2007-05-29  Sam Weinig  <sam@webkit.org>
34868         Reviewed by Adam Roben.
34870         Consolidate platform dependent notImplemented() macros
34871         into one platform independent macro that uses WTFLog.
34873         * platform/NotImplemented.h:
34875 2007-05-29  Darin Adler  <darin@apple.com>
34877         Reviewed by Sam.
34879         - a clean-up pass on form-related aspects of the recent JSHTMLElement patch
34881         * bindings/js/JSHTMLElementCustom.cpp: (WebCore::JSHTMLElement::pushEventHandlerScope):
34882         Replace the call to formForEventHandlerScope() with a call to the new form() function.
34883         And removed the now-uneeded code to search for a form ancestor.
34885         * html/HTMLElement.h: Added a general-purpose form() function. The intent is to return
34886         the form ancestor if any, but return the associated form for a form control, which isn't
34887         always an ancestor of the control. To keep form() efficient for form controls, it's an
34888         inline that calls a virtual, allowing a derived class to override it with an inline.
34889         This replaces formForEventHandlerScope(). Also added findFormAncestor() to use here and
34890         to replace the multiple loops found elsewhere to search for the nearest form ancestor.
34891         * html/HTMLElement.cpp:
34892         (WebCore::HTMLElement::findFormAncestor): Added.
34893         (WebCore::HTMLElement::virtualForm): Added. Calls findFormAncestor().
34895         * html/HTMLGenericFormElement.h: Suggested name change to HTMLFormControlElement.
34896         Removed the confusing getForm() function, which is superceded by findFormAncestor.
34897         Removed the unused onSelect() function. Removed the override of formForEventHandlerScope(),
34898         replacing it with an override of virtualForm().
34899         * html/HTMLGenericFormElement.cpp:
34900         (WebCore::HTMLGenericFormElement::HTMLGenericFormElement): Use findFormAncestor
34901         instead of getForm.
34902         (WebCore::HTMLGenericFormElement::insertedIntoTree): Ditto.
34903         (WebCore::HTMLGenericFormElement::virtualForm): Added.
34905         * html/HTMLLabelElement.h: Removed now-unneeded form() and formForEventHandlerScope()
34906         functions, since base class behavior is now good enough. Renamed formElement() to
34907         correspondingControl(), since that's the terminology used elsewhere in the code,
34908         and the old name was unnecessarily confusing.
34909         * html/HTMLLabelElement.cpp:
34910         (WebCore::HTMLLabelElement::correspondingControl): Renamed. Removed unnecessary
34911         special case for empty ID, since getElementById already returns 0 for that case.
34912         (WebCore::HTMLLabelElement::setActive): Updated for name change.
34913         (WebCore::HTMLLabelElement::setHovered): Ditto.
34914         (WebCore::HTMLLabelElement::defaultEventHandler): Ditto.
34915         (WebCore::HTMLLabelElement::focus): Ditto.
34916         (WebCore::HTMLLabelElement::accessKeyAction): Ditto.
34918         * html/HTMLObjectElement.h: Removed now-unneeded form() and formForEventHandlerScope()
34919         functions, since base class behavior is now good enough. Also removed forward
34920         declaration of KJS::Bindings::Instance -- since the type is the return value of a
34921         function from the base class, it's guaranteed to be declared in the base class header.
34922         * html/HTMLObjectElement.cpp: Ditto.
34924         * bridge/mac/WebCoreAXObject.mm: (labelForElement): Updated for name change.
34926 2007-05-29  Zack Rusin  <zrusin@trolltech.com>
34928         Reviewed by George and Niko
34930         Making the convenience method notImplemented convenient
34931         for the Qt port.
34933         * platform/NotImplemented.h:
34935 2007-05-28  Sam Weinig  <sam@webkit.org>
34937         Reviewed by Geoff.
34939         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13902
34940           Autogenerate the JS bindings for the CSSStyleDeclaration
34942         * WebCore.pro:
34943         * WebCore.xcodeproj/project.pbxproj:
34944         * bindings/js/JSCSSStyleDeclarationCustom.cpp: Added.
34945         (WebCore::cssPropertyName):
34946         (WebCore::isCSSPropertyName):
34947         (WebCore::JSCSSStyleDeclaration::canGetItemsForName):
34948         (WebCore::JSCSSStyleDeclaration::nameGetter):
34949         (WebCore::JSCSSStyleDeclaration::customPut):
34950         * bindings/js/kjs_binding.h:
34951         * bindings/js/kjs_css.cpp:
34952         * bindings/js/kjs_css.h:
34953         * bindings/objc/DOMUtility.mm:
34954         (KJS::createDOMWrapper):
34955         * bindings/scripts/CodeGeneratorJS.pm:
34956         * css/CSSStyleDeclaration.idl:
34958 2007-05-28  Mitz Pettel  <mitz@webkit.org>
34960         Reviewed by Darin.
34962         - fix http://bugs.webkit.org/show_bug.cgi?id=13896
34963           REGRESSION (NativePopup): Reproductible crasher on Google Coop control panel
34965         Test: fast/forms/select-display-none-style-resolve.html
34967         * html/HTMLOptGroupElement.cpp:
34968         (WebCore::HTMLOptGroupElement::attach): Do not compute style if the parent
34969         does not have style.
34970         * html/HTMLOptionElement.cpp:
34971         (WebCore::HTMLOptionElement::attach): Ditto.
34973 2007-05-28  Sam Weinig  <sam@webkit.org>
34975         Fix Gdk and Qt builds.
34977         * WebCore.pro:
34979 2007-05-28  Sam Weinig  <sam@webkit.org>
34981         Reviewed by Darin.
34983         Patch for http://bugs.webkit.org/show_bug.cgi?id=13894
34984         Remove the legacy class KJS::JSHTMLElement
34986         - Now that all of the subclasses of JSHTMLElement are
34987           autogenerated and no longer rely on the legacy parent,
34988           we can remove it and update all the HTML idl files to
34989           reflect so.
34991         - Also adds JSHTMLBlockquoteElement's JS constructor which
34992           was mistakingly missing.
34994         * WebCore.xcodeproj/project.pbxproj:
34995         * bindings/js/JSHTMLAnchorElementCustom.cpp:
34996         (WebCore::JSHTMLAnchorElement::toString):
34997         * bindings/js/JSHTMLElementCustom.cpp: Added.
34998         (WebCore::JSHTMLElement::pushEventHandlerScope):
34999         * bindings/js/JSHTMLElementWrapperFactory.cpp:
35000         (WebCore::createJSHTMLWrapper):
35001         * bindings/js/JSHTMLInputElementBase.cpp:
35002         (WebCore::):
35003         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
35004         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
35005         (WebCore::JSHTMLInputElementBase::put):
35006         * bindings/js/JSHTMLInputElementBase.h:
35007         * bindings/js/JSHTMLSelectElementCustom.cpp:
35008         * bindings/js/kjs_html.cpp:
35009         (KJS::runtimeObjectCustomGetOwnPropertySlot):
35010         * bindings/js/kjs_html.h:
35011         * bindings/scripts/CodeGeneratorJS.pm:
35012         * html/HTMLAnchorElement.idl:
35013         * html/HTMLAppletElement.idl:
35014         * html/HTMLAreaElement.idl:
35015         * html/HTMLBRElement.idl:
35016         * html/HTMLBaseElement.idl:
35017         * html/HTMLBaseFontElement.idl:
35018         * html/HTMLBlockquoteElement.idl:
35019         * html/HTMLBodyElement.idl:
35020         * html/HTMLButtonElement.idl:
35021         * html/HTMLCanvasElement.idl:
35022         * html/HTMLDListElement.idl:
35023         * html/HTMLDirectoryElement.idl:
35024         * html/HTMLDivElement.idl:
35025         * html/HTMLElement.cpp:
35026         (WebCore::HTMLElement::formForEventHandlerScope):
35027         * html/HTMLElement.h:
35028         * html/HTMLElement.idl:
35029         * html/HTMLEmbedElement.idl:
35030         * html/HTMLFieldSetElement.idl:
35031         * html/HTMLFontElement.idl:
35032         * html/HTMLFormElement.idl:
35033         * html/HTMLFrameElement.idl:
35034         * html/HTMLFrameSetElement.idl:
35035         * html/HTMLGenericFormElement.cpp:
35036         (WebCore::HTMLGenericFormElement::formForEventHandlerScope):
35037         * html/HTMLGenericFormElement.h:
35038         * html/HTMLHRElement.idl:
35039         * html/HTMLHeadElement.idl:
35040         * html/HTMLHeadingElement.idl:
35041         * html/HTMLHtmlElement.idl:
35042         * html/HTMLIFrameElement.idl:
35043         * html/HTMLImageElement.idl:
35044         * html/HTMLIsIndexElement.idl:
35045         * html/HTMLLIElement.idl:
35046         * html/HTMLLabelElement.cpp:
35047         (WebCore::HTMLLabelElement::form):
35048         (WebCore::HTMLLabelElement::formForEventHandlerScope):
35049         * html/HTMLLabelElement.h:
35050         * html/HTMLLabelElement.idl:
35051         * html/HTMLLegendElement.idl:
35052         * html/HTMLLinkElement.idl:
35053         * html/HTMLMapElement.idl:
35054         * html/HTMLMarqueeElement.idl:
35055         * html/HTMLMenuElement.idl:
35056         * html/HTMLMetaElement.idl:
35057         * html/HTMLModElement.idl:
35058         * html/HTMLOListElement.idl:
35059         * html/HTMLObjectElement.cpp:
35060         (WebCore::HTMLObjectElement::formForEventHandlerScope):
35061         * html/HTMLObjectElement.h:
35062         * html/HTMLObjectElement.idl:
35063         * html/HTMLOptGroupElement.idl:
35064         * html/HTMLOptionElement.idl:
35065         * html/HTMLParagraphElement.idl:
35066         * html/HTMLParamElement.idl:
35067         * html/HTMLPreElement.idl:
35068         * html/HTMLQuoteElement.idl:
35069         * html/HTMLScriptElement.idl:
35070         * html/HTMLSelectElement.idl:
35071         * html/HTMLStyleElement.idl:
35072         * html/HTMLTableCaptionElement.idl:
35073         * html/HTMLTableCellElement.idl:
35074         * html/HTMLTableColElement.idl:
35075         * html/HTMLTableElement.idl:
35076         * html/HTMLTableRowElement.idl:
35077         * html/HTMLTableSectionElement.idl:
35078         * html/HTMLTextAreaElement.idl:
35079         * html/HTMLTitleElement.idl:
35080         * html/HTMLUListElement.idl:
35081         * page/DOMWindow.idl:
35083 2007-05-28  Zack Rusin  <zrusin@trolltech.com>
35085         Reviewed by andersca
35087         Adding Qt related constructor/casting operators
35088         to the AtomicString and updating the project
35089         file for new Qt settings api using those.
35091         * WebCore.pro:
35092         * platform/AtomicString.h:
35094 2007-05-27  Sam Weinig  <sam@webkit.org>
35096         Qt and Gdk build fix.
35098         * WebCore.pro:
35100 2007-05-27  Sam Weinig  <sam@webkit.org>
35102         Reviewed by Hyatt.
35104         Patch for http://bugs.webkit.org/show_bug.cgi?id=13893
35105         Autogenerate the JS bindings for the HTMLObjectElement, 
35106         HTMLEmbedElement and HTMLAppletElement
35108         * DerivedSources.make:
35109         * WebCore.xcodeproj/project.pbxproj:
35110         * bindings/js/JSHTMLAppletElementCustom.cpp: Added.
35111         (WebCore::JSHTMLAppletElement::customGetOwnPropertySlot):
35112         (WebCore::JSHTMLAppletElement::customPut):
35113         (WebCore::JSHTMLAppletElement::implementsCall):
35114         (WebCore::JSHTMLAppletElement::callAsFunction):
35115         (WebCore::JSHTMLAppletElement::canGetItemsForName):
35116         (WebCore::JSHTMLAppletElement::nameGetter):
35117         * bindings/js/JSHTMLElementWrapperFactory.cpp:
35118         * bindings/js/JSHTMLEmbedElementCustom.cpp: Added.
35119         (WebCore::JSHTMLEmbedElement::customGetOwnPropertySlot):
35120         (WebCore::JSHTMLEmbedElement::customPut):
35121         (WebCore::JSHTMLEmbedElement::implementsCall):
35122         (WebCore::JSHTMLEmbedElement::callAsFunction):
35123         (WebCore::JSHTMLEmbedElement::canGetItemsForName):
35124         (WebCore::JSHTMLEmbedElement::nameGetter):
35125         * bindings/js/JSHTMLObjectElementCustom.cpp: Added.
35126         (WebCore::JSHTMLObjectElement::customGetOwnPropertySlot):
35127         (WebCore::JSHTMLObjectElement::customPut):
35128         (WebCore::JSHTMLObjectElement::implementsCall):
35129         (WebCore::JSHTMLObjectElement::callAsFunction):
35130         (WebCore::JSHTMLObjectElement::canGetItemsForName):
35131         (WebCore::JSHTMLObjectElement::nameGetter):
35132         * bindings/js/kjs_html.cpp:
35133         (KJS::):
35134         (KJS::JSHTMLElement::toString):
35135         (KJS::JSHTMLElement::pushEventHandlerScope):
35136         (KJS::runtimeObjectGetter):
35137         (KJS::runtimeObjectPropertyGetter):
35138         (KJS::runtimeObjectCustomGetOwnPropertySlot):
35139         (KJS::runtimeObjectCustomPut):
35140         (KJS::runtimeObjectImplementsCall):
35141         (KJS::runtimeObjectCallAsFunction):
35142         * bindings/js/kjs_html.h:
35143         (KJS::JSHTMLElement::classInfo):
35144         * bindings/scripts/CodeGeneratorJS.pm: Add support for 
35145         CustomGetOwnPropertySlot, CustomPutFunction, CustomCall,
35146         and SVGCheckSecurityDocument properties.
35147         * html/HTMLAppletElement.idl:
35148         * html/HTMLEmbedElement.idl:
35149         * html/HTMLObjectElement.idl:
35150         * page/DOMWindow.idl: Uncomment constructors.
35152 2007-05-27  Sam Weinig  <sam@webkit.org>
35154         Reviewed by Oliver.
35156         Gdk build fix.
35158         * platform/graphics/Path.h:
35160 2007-05-27  Sam Weinig  <sam@webkit.org>
35162         Gdk build fix.  Forgot to update a few instances of notImplementedGdk() to notImplemented().
35164         * page/gdk/EventHandlerGdk.cpp:
35165         (WebCore::EventHandler::passMousePressEventToScrollbar):
35166         * platform/gdk/EditorClientGdk.cpp:
35167         (WebCore::EditorClientGdk::ignoreWordInSpellDocument):
35168         (WebCore::EditorClientGdk::learnWord):
35169         (WebCore::EditorClientGdk::checkSpellingOfString):
35170         (WebCore::EditorClientGdk::checkGrammarOfString):
35171         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
35172         (WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
35173         (WebCore::EditorClientGdk::showSpellingUI):
35174         (WebCore::EditorClientGdk::spellingUIIsShowing):
35175         (WebCore::EditorClientGdk::getGuessesForWord):
35176         * platform/gdk/FrameGdk.cpp:
35177         (WebCore::Frame::dashboardRegionsChanged):
35178         * platform/gdk/PlatformScrollBarGdk.cpp:
35179         (PlatformScrollbar::paint):
35180         (PlatformScrollbar::updateThumbPosition):
35181         (PlatformScrollbar::updateThumbProportion):
35182         * platform/gdk/TemporaryLinkStubs.cpp:
35183         (Widget::setEnabled):
35184         (Widget::isEnabled):
35185         (Widget::removeFromParent):
35186         (Widget::paint):
35187         (Widget::setIsSelected):
35188         (Widget::invalidate):
35189         (Widget::invalidateRect):
35191 2007-05-27  Alp Toker  <alp.toker@collabora.co.uk>
35193         Reviewed by Sam and Oliver.
35195         Implement PathCairo. This patch is based on changes in Mike Emmel's
35196         WebKit fork with some additional clean-ups and updates.
35198         * platform/graphics/Path.h:
35199         * platform/graphics/cairo/CairoPath.h: Added.
35200         (CairoPath::CairoPath):
35201         (CairoPath::~CairoPath):
35202         * platform/graphics/cairo/GraphicsContextCairo.cpp:
35203         (WebCore::GraphicsContext::clip):
35204         * platform/graphics/cairo/PathCairo.cpp:
35205         (WebCore::Path::Path):
35206         (WebCore::Path::~Path):
35207         (WebCore::Path::operator=):
35208         (WebCore::Path::clear):
35209         (WebCore::Path::isEmpty):
35210         (WebCore::Path::translate):
35211         (WebCore::Path::moveTo):
35212         (WebCore::Path::addLineTo):
35213         (WebCore::Path::addRect):
35214         (WebCore::Path::addQuadCurveTo):
35215         (WebCore::Path::addBezierCurveTo):
35216         (WebCore::Path::addArc):
35217         (WebCore::Path::addArcTo):
35218         (WebCore::Path::addEllipse):
35219         (WebCore::Path::closeSubpath):
35220         (WebCore::Path::boundingRect):
35221         (WebCore::Path::contains):
35222         (WebCore::Path::apply):
35223         (WebCore::Path::transform):
35224         (WebCore::Path::debugString):
35226 2007-05-27  Kevin Ollivier  <kevino@theolliviers.com>
35228         Reviewed by Sam Weinig.
35230         Consolidate all notImplemented() macro definitions into
35231         one header file for all platforms.
35233         * loader/gdk/DocumentLoaderGdk.cpp:
35234         (WebCore::DocumentLoader::getResponseModifiedHeader):
35235         * loader/gdk/FrameLoaderClientGdk.cpp:
35236         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
35237         (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
35238         (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
35239         (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
35240         (WebCore::FrameLoaderClientGdk::createPlugin):
35241         (WebCore::FrameLoaderClientGdk::createFrame):
35242         (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
35243         (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
35244         (WebCore::FrameLoaderClientGdk::objectContentType):
35245         (WebCore::FrameLoaderClientGdk::overrideMediaType):
35246         (WebCore::FrameLoaderClientGdk::windowObjectCleared):
35247         (WebCore::FrameLoaderClientGdk::hasWebView):
35248         (WebCore::FrameLoaderClientGdk::hasFrameView):
35249         (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
35250         (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
35251         (WebCore::FrameLoaderClientGdk::restoreViewState):
35252         (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
35253         (WebCore::FrameLoaderClientGdk::makeDocumentView):
35254         (WebCore::FrameLoaderClientGdk::makeRepresentation):
35255         (WebCore::FrameLoaderClientGdk::forceLayout):
35256         (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
35257         (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
35258         (WebCore::FrameLoaderClientGdk::detachedFromParent1):
35259         (WebCore::FrameLoaderClientGdk::detachedFromParent2):
35260         (WebCore::FrameLoaderClientGdk::detachedFromParent3):
35261         (WebCore::FrameLoaderClientGdk::detachedFromParent4):
35262         (WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
35263         (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
35264         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
35265         (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
35266         (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
35267         (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
35268         (WebCore::FrameLoaderClientGdk::dispatchWillClose):
35269         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
35270         (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
35271         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
35272         (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
35273         (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
35274         (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
35275         (WebCore::FrameLoaderClientGdk::dispatchShow):
35276         (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
35277         (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
35278         (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
35279         (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
35280         (WebCore::FrameLoaderClientGdk::willChangeTitle):
35281         (WebCore::FrameLoaderClientGdk::finishedLoading):
35282         (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
35283         (WebCore::FrameLoaderClientGdk::setDefersLoading):
35284         (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
35285         (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
35286         (WebCore::FrameLoaderClientGdk::clearArchivedResources):
35287         (WebCore::FrameLoaderClientGdk::canHandleRequest):
35288         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
35289         (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
35290         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
35291         (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
35292         (WebCore::FrameLoaderClientGdk::didFinishLoad):
35293         (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
35294         (WebCore::FrameLoaderClientGdk::setTitle):
35295         (WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
35296         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
35297         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
35298         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
35299         (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
35300         (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
35301         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
35302         (WebCore::FrameLoaderClientGdk::download):
35303         (WebCore::FrameLoaderClientGdk::cancelledError):
35304         (WebCore::FrameLoaderClientGdk::blockedError):
35305         (WebCore::FrameLoaderClientGdk::cannotShowURLError):
35306         (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
35307         (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
35308         (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
35309         (WebCore::FrameLoaderClientGdk::shouldFallBack):
35310         (WebCore::FrameLoaderClientGdk::willUseArchive):
35311         (WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
35312         (WebCore::FrameLoaderClientGdk::canCachePage):
35313         (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
35314         (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
35315         (WebCore::FrameLoaderClientGdk::setMainDocumentError):
35316         (WebCore::FrameLoaderClientGdk::startDownload):
35317         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
35318         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
35319         * loader/qt/DocumentLoaderQt.cpp:
35320         * page/gdk/ContextMenuClientGdk.cpp:
35321         (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
35322         (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
35323         (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
35324         (WebCore::ContextMenuClientGdk::downloadURL):
35325         (WebCore::ContextMenuClientGdk::copyImageToClipboard):
35326         (WebCore::ContextMenuClientGdk::searchWithGoogle):
35327         (WebCore::ContextMenuClientGdk::lookUpInDictionary):
35328         (WebCore::ContextMenuClientGdk::speak):
35329         (WebCore::ContextMenuClientGdk::stopSpeaking):
35330         * page/gdk/EventHandlerGdk.cpp:
35331         (WebCore::EventHandler::passMouseDownEventToWidget):
35332         (WebCore::EventHandler::eventActivatedView):
35333         (WebCore::EventHandler::passSubframeEventToSubframe):
35334         (WebCore::EventHandler::passWheelEventToWidget):
35335         (WebCore::EventHandler::createDraggingClipboard):
35336         * page/qt/EventHandlerQt.cpp:
35337         * page/qt/FrameQt.cpp:
35338         * platform/NotImplemented.h: Added.
35339         * platform/gdk/CursorGdk.cpp:
35340         (WebCore::Cursor::Cursor):
35341         * platform/gdk/EditorClientGdk.cpp:
35342         (WebCore::EditorClientGdk::shouldDeleteRange):
35343         (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
35344         (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
35345         (WebCore::EditorClientGdk::spellCheckerDocumentTag):
35346         (WebCore::EditorClientGdk::shouldBeginEditing):
35347         (WebCore::EditorClientGdk::shouldEndEditing):
35348         (WebCore::EditorClientGdk::shouldInsertText):
35349         (WebCore::EditorClientGdk::shouldChangeSelectedRange):
35350         (WebCore::EditorClientGdk::shouldApplyStyle):
35351         (WebCore::EditorClientGdk::didBeginEditing):
35352         (WebCore::EditorClientGdk::respondToChangedContents):
35353         (WebCore::EditorClientGdk::respondToChangedSelection):
35354         (WebCore::EditorClientGdk::didEndEditing):
35355         (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
35356         (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
35357         (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
35358         (WebCore::EditorClientGdk::isEditable):
35359         (WebCore::EditorClientGdk::registerCommandForUndo):
35360         (WebCore::EditorClientGdk::registerCommandForRedo):
35361         (WebCore::EditorClientGdk::clearUndoRedoOperations):
35362         (WebCore::EditorClientGdk::canUndo):
35363         (WebCore::EditorClientGdk::canRedo):
35364         (WebCore::EditorClientGdk::undo):
35365         (WebCore::EditorClientGdk::redo):
35366         (WebCore::EditorClientGdk::shouldInsertNode):
35367         (WebCore::EditorClientGdk::pageDestroyed):
35368         (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
35369         (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
35370         (WebCore::EditorClientGdk::handleInputMethodKeypress):
35371         (WebCore::EditorClientGdk::textFieldDidBeginEditing):
35372         (WebCore::EditorClientGdk::textFieldDidEndEditing):
35373         (WebCore::EditorClientGdk::textDidChangeInTextField):
35374         (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
35375         (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
35376         (WebCore::EditorClientGdk::textDidChangeInTextArea):
35377         * platform/gdk/FrameGdk.cpp:
35378         (WebCore::Frame::print):
35379         (WebCore::Frame::issueTransposeCommand):
35380         (WebCore::Frame::cleanupPlatformScriptObjects):
35381         (WebCore::Frame::dragImageForSelection):
35382         * platform/gdk/NotImplementedGdk.h: Removed.
35383         * platform/gdk/PopupMenuGdk.cpp:
35384         (WebCore::PopupMenu::PopupMenu):
35385         (WebCore::PopupMenu::~PopupMenu):
35386         (WebCore::PopupMenu::show):
35387         (WebCore::PopupMenu::hide):
35388         (WebCore::PopupMenu::updateFromElement):
35389         * platform/gdk/RenderThemeGdk.cpp:
35390         (WebCore::RenderThemeGdk::setCheckboxSize):
35391         (WebCore::RenderThemeGdk::setRadioSize):
35392         (WebCore::RenderThemeGdk::adjustTextFieldStyle):
35393         * platform/gdk/ScreenGdk.cpp:
35394         (WebCore::screenDepthPerComponent):
35395         (WebCore::screenIsMonochrome):
35396         (WebCore::screenRect):
35397         (WebCore::screenAvailableRect):
35398         * platform/gdk/ScrollViewGdk.cpp:
35399         (WebCore::ScrollView::update):
35400         (WebCore::ScrollView::addChild):
35401         (WebCore::ScrollView::removeChild):
35402         (WebCore::ScrollView::scrollRectIntoViewRecursively):
35403         (WebCore::ScrollView::inWindow):
35404         (WebCore::ScrollView::wheelEvent):
35405         (WebCore::ScrollView::updateScrollbars):
35406         (WebCore::ScrollView::updateScrollInfo):
35407         (WebCore::ScrollView::windowToContents):
35408         (WebCore::ScrollView::contentsToWindow):
35409         (WebCore::ScrollView::scrollbarUnderMouse):
35410         * platform/gdk/TemporaryLinkStubs.cpp:
35411         (FrameView::updateBorder):
35412         (WebCore::findNextWordFromIndex):
35413         (WebCore::currentTextBreakLocaleID):
35414         (ChromeClientGdk::chromeDestroyed):
35415         (ChromeClientGdk::windowRect):
35416         (ChromeClientGdk::setWindowRect):
35417         (ChromeClientGdk::pageRect):
35418         (ChromeClientGdk::scaleFactor):
35419         (ChromeClientGdk::focus):
35420         (ChromeClientGdk::unfocus):
35421         (ChromeClientGdk::createWindow):
35422         (ChromeClientGdk::createModalDialog):
35423         (ChromeClientGdk::show):
35424         (ChromeClientGdk::canRunModal):
35425         (ChromeClientGdk::runModal):
35426         (ChromeClientGdk::setToolbarsVisible):
35427         (ChromeClientGdk::toolbarsVisible):
35428         (ChromeClientGdk::setStatusbarVisible):
35429         (ChromeClientGdk::statusbarVisible):
35430         (ChromeClientGdk::setScrollbarsVisible):
35431         (ChromeClientGdk::scrollbarsVisible):
35432         (ChromeClientGdk::setMenubarVisible):
35433         (ChromeClientGdk::menubarVisible):
35434         (ChromeClientGdk::setResizable):
35435         (ChromeClientGdk::closeWindowSoon):
35436         (ChromeClientGdk::canTakeFocus):
35437         (ChromeClientGdk::takeFocus):
35438         (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
35439         (ChromeClientGdk::addMessageToConsole):
35440         (ChromeClientGdk::runBeforeUnloadConfirmPanel):
35441         (ChromeClientGdk::runJavaScriptAlert):
35442         (ChromeClientGdk::runJavaScriptConfirm):
35443         (ChromeClientGdk::runJavaScriptPrompt):
35444         (ChromeClientGdk::setStatusbarText):
35445         (ChromeClientGdk::shouldInterruptJavaScript):
35446         (ChromeClientGdk::tabsToLinks):
35447         (ChromeClientGdk::windowResizerRect):
35448         (ChromeClientGdk::addToDirtyRegion):
35449         (ChromeClientGdk::scrollBackingStore):
35450         (ChromeClientGdk::updateBackingStore):
35451         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
35452         (PlugInInfoStore::pluginCount):
35453         (WebCore::PlugInInfoStore::supportsMIMEType):
35454         (WebCore::refreshPlugins):
35455         (SearchPopupMenu::saveRecentSearches):
35456         (SearchPopupMenu::loadRecentSearches):
35457         (SearchPopupMenu::SearchPopupMenu):
35458         (SearchPopupMenu::enabled):
35459         (FileChooser::FileChooser):
35460         (FileChooser::~FileChooser):
35461         (FileChooser::openFileChooser):
35462         (FileChooser::basenameForWidth):
35463         (ResourceHandle::willLoadFromCache):
35464         (ResourceHandle::loadsBlocked):
35465         (ResourceHandle::loadResourceSynchronously):
35466         (Icon::Icon):
35467         (Icon::~Icon):
35468         (Icon::newIconForFile):
35469         (Icon::paint):
35470         (Font::selectionRectForComplexText):
35471         (Font::drawComplexText):
35472         (Font::floatWidthForComplexText):
35473         (Font::offsetForPositionForComplexText):
35474         (CachedPage::close):
35475         (Editor::newGeneralClipboard):
35476         (Pasteboard::generalPasteboard):
35477         (Pasteboard::writeSelection):
35478         (Pasteboard::writeURL):
35479         (Pasteboard::writeImage):
35480         (Pasteboard::clear):
35481         (Pasteboard::canSmartReplace):
35482         (Pasteboard::documentFragment):
35483         (Pasteboard::plainText):
35484         (Pasteboard::Pasteboard):
35485         (Pasteboard::~Pasteboard):
35486         (ContextMenu::ContextMenu):
35487         (ContextMenu::~ContextMenu):
35488         (ContextMenu::appendItem):
35489         (ContextMenuItem::ContextMenuItem):
35490         (ContextMenuItem::~ContextMenuItem):
35491         (ContextMenuItem::releasePlatformDescription):
35492         (ContextMenuItem::type):
35493         (ContextMenuItem::setType):
35494         (ContextMenuItem::action):
35495         (ContextMenuItem::setAction):
35496         (ContextMenuItem::title):
35497         (ContextMenuItem::setTitle):
35498         (ContextMenuItem::platformSubMenu):
35499         (ContextMenuItem::setSubMenu):
35500         (ContextMenuItem::setChecked):
35501         (ContextMenuItem::setEnabled):
35502         (WebCore::supportedKeySizes):
35503         (WebCore::systemBeep):
35504         (WebCore::userIdleTime):
35505         * platform/graphics/cairo/GraphicsContextCairo.cpp:
35506         * platform/graphics/cairo/ImageBufferCairo.cpp:
35507         * platform/graphics/cairo/PathCairo.cpp:
35508         * platform/graphics/gdk/ImageGdk.cpp:
35509         * platform/graphics/qt/GraphicsContextQt.cpp:
35510         * platform/graphics/qt/IconQt.cpp:
35511         * platform/graphics/qt/ImageQt.cpp:
35512         * platform/network/gdk/ResourceHandleCurl.cpp:
35513         (WebCore::ResourceHandle::setDefersLoading):
35514         * platform/network/gdk/ResourceHandleManager.cpp:
35515         (WebCore::ResourceHandleManager::setupPUT):
35516         (WebCore::ResourceHandleManager::setupPOST):
35517         * platform/network/qt/ResourceHandleQt.cpp:
35518         * platform/qt/ClipboardQt.cpp:
35519         * platform/qt/CursorQt.cpp:
35520         * platform/qt/DragDataQt.cpp:
35521         * platform/qt/FileChooserQt.cpp:
35522         * platform/qt/MimeTypeRegistryQt.cpp:
35523         * platform/qt/PasteboardQt.cpp:
35524         * platform/qt/PlatformScrollBarQt.cpp:
35525         * platform/qt/PopupMenuQt.cpp:
35526         * platform/qt/ScrollViewQt.cpp:
35527         * platform/qt/TemporaryLinkStubs.cpp:
35528         * platform/qt/TextBoundaries.cpp:
35529         * platform/qt/WidgetQt.cpp:
35530         * platform/win/FontWin.cpp:
35531         * platform/win/TemporaryLinkStubs.cpp:
35532         * platform/wx/ClipboardWx.cpp:
35533         * platform/wx/FontWx.cpp:
35534         * platform/wx/ScrollViewWx.cpp:
35535         * platform/wx/SharedTimerWx.cpp:
35536         * platform/wx/TemporaryLinkStubs.cpp:
35538 2007-05-27  Rob Buis  <buis@kde.org>
35540         Reviewed by Oliver.
35542         http://bugs.webkit.org/show_bug.cgi?id=13828
35543         x/y values on rootmost <svg> elements should be ignored
35545         Make sure that root-most <svg> elements do not take into account x/y.
35547         * ksvg2/svg/SVGSVGElement.cpp:
35548         (WebCore::SVGSVGElement::viewport):
35549         (WebCore::SVGSVGElement::getCTM):
35550         (WebCore::SVGSVGElement::getScreenCTM):
35551         * rendering/RenderSVGContainer.cpp:
35552         (WebCore::RenderSVGContainer::calcViewport):
35554 2007-05-26  David Hyatt  <hyatt@apple.com>
35556         Fix for radar bug 5219562, PNG isn't displayed on SVG test suite.
35557         Improve <object> error handling so that it recovers properly when
35558         <td> is used inside it.
35560         Reviewed by olliej
35562         Added fast/invalid/td-inside-object.html
35564         * html/HTMLObjectElement.h:
35565         (WebCore::HTMLObjectElement::tagPriority):
35566         * html/HTMLParser.cpp:
35567         (WebCore::HTMLParser::handleError):
35568         * html/HTMLParserErrorCodes.cpp:
35569         (WebCore::htmlParserErrorMessageTemplate):
35570         * html/HTMLParserErrorCodes.h:
35572 2007-05-26  David Hyatt  <hyatt@apple.com>
35574         Don't compare the "isset" variables in background layers, since they
35575         lead us to turn off the Aqua look incorrectly, even when the background
35576         matches the default.
35578         Reviewed by olliej
35580         * rendering/RenderStyle.cpp:
35581         (WebCore::BackgroundLayer::operator==):
35583 2007-05-26  David Hyatt  <hyatt@apple.com>
35585         Improve the </p> -> <p></p> error message to not spew two errors.
35586         Fix a bug where errors reported inside document.write didn't get
35587         reported as such because of a mistake in the notation of SegmentedString.
35589         Reviewed by aroben
35591         * html/HTMLParser.cpp:
35592         (WebCore::HTMLParser::processCloseTag):
35593         * platform/SegmentedString.h:
35594         (WebCore::SegmentedSubstring::clear):
35596 2007-05-26  David Hyatt  <hyatt@apple.com>
35598         Fix for bug 13887, percentage height block not sized correctly inside
35599         positioned percentage height containing block.
35601         Reviewed by mitz
35603         fast/block/positioning/complex-percentage-height.html
35605         * rendering/RenderBox.cpp:
35606         (WebCore::RenderBox::calcPercentageHeight):
35608 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35610         Reviewed by Oliver Hunt.
35612         - finish fixing http://bugs.webkit.org/show_bug.cgi?id=13871
35613           Box shadow should not apply to Aqua-themed controls
35615         Covered by fast/forms/box-shadow-override.html
35617         I forgot to include adjustSliderThumbStyle in the previous patch and the
35618         test didn't detect it because of a bug introduced in r21739.
35620         * rendering/RenderThemeMac.h:
35621         * rendering/RenderThemeMac.mm:
35622         (WebCore::RenderThemeMac::adjustSliderThumbStyle):
35624 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35626         Reviewed by Hyatt.
35628         - fix http://bugs.webkit.org/show_bug.cgi?id=13876
35629           Box-Shadow disappears if shadow doesn't fit in the window size
35631         Tests: fast/repaint/box-shadow-h.html
35632                fast/repaint/box-shadow-v.html
35634         * rendering/RenderTable.cpp:
35635         (WebCore::RenderTable::layout):
35637 2007-05-26  Alexey Proskuryakov  <ap@webkit.org>
35639         Reviewed by Darin.
35641         http://bugs.webkit.org/show_bug.cgi?id=13605
35642         REGRESSION: Browser crashes when switching Kotoeri input modes
35644         The problem could no longer be reproduced with Kotoeri thanks to
35645         a fix in <http://trac.webkit.org/projects/webkit/changeset/21728>,
35646         but we still need to protect from invalid ranges passed from
35647         input methods.
35649         Test: editing/input/replace-invalid-range.html
35651         * page/mac/WebCoreFrameBridge.mm:
35652         (-[WebCoreFrameBridge selectNSRange:]): Added a null check.
35654 2007-05-26  Darin Adler  <darin@apple.com>
35656         * platform/network/mac/ResourceResponseMac.mm:
35657         (WebCore::ResourceResponse::doUpdateResourceResponse):
35658         Alexey pointed out that I was wrong about object lifetime, so
35659         rolling this change out.
35661 2007-05-26  Darin Adler  <darin@apple.com>
35663         Reviewed by Anders.
35665         * platform/network/mac/ResourceResponseMac.mm:
35666         (WebCore::ResourceResponse::doUpdateResourceResponse):
35667         Fixed code where a temporary String is used after destroyed.
35669 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35671         Reviewed by Darin.
35673         - http://bugs.webkit.org/show_bug.cgi?id=13842
35674           Simplify Color::light() and Color::dark()
35676         Not testable.
35678         * platform/graphics/Color.cpp:
35679         (WebCore::Color::light):
35680         (WebCore::Color::dark):
35682 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35684         Reviewed by Darin.
35686         - fix http://bugs.webkit.org/show_bug.cgi?id=13870
35687           RenderFrameSet should only allow frame and frameset children
35689         Covered by fast/frames/inline-object-inside-frameset.html
35691         * rendering/RenderFrame.h:
35692         (WebCore::RenderFrame::isFrame): Added.
35693         * rendering/RenderFrameSet.cpp:
35694         (WebCore::RenderFrameSet::paint): Removed check for inline objects that is
35695         no longer needed.
35696         (WebCore::RenderFrameSet::isChildAllowed): Added. Allows the child only
35697         if it is a frame or another frameset.
35698         * rendering/RenderFrameSet.h:
35699         * rendering/RenderObject.h:
35700         (WebCore::RenderObject::isFrame): Added.
35702 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35704         Reviewed by Darin.
35706         - http://bugs.webkit.org/show_bug.cgi?id=13871
35707           Box shadow should not apply to Aqua-themed controls
35709         Test: fast/forms/box-shadow-override.html
35711         * rendering/RenderTheme.cpp:
35712         (WebCore::RenderTheme::adjustCheckboxStyle):
35713         (WebCore::RenderTheme::adjustRadioStyle):
35714         * rendering/RenderThemeMac.h:
35715         * rendering/RenderThemeMac.mm:
35716         (WebCore::RenderThemeMac::adjustButtonStyle):
35717         (WebCore::RenderThemeMac::adjustMenuListStyle):
35718         (WebCore::RenderThemeMac::adjustSliderTrackStyle):
35719         (WebCore::RenderThemeMac::adjustSearchFieldStyle):
35720         (WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
35721         (WebCore::RenderThemeMac::adjustSearchFieldDecorationStyle):
35722         (WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationStyle):
35723         (WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
35725 2007-05-26  Holger Freyther  <zecke@selfish.org>
35727         Reviewed by Anders.
35729         * platform/gdk/FrameGdk.cpp: Catch up to make it compile
35730         (WebCore::FrameGdk::FrameGdk): The Settings is now owned by the Page
35732 2007-05-25  Sam Weinig  <sam@webkit.org>
35734         Reviewed by Oliver of the Hunt.
35736         Fixed <rdar://problem/5230247> at least 43 xhtml tests fail in 
35737         Leopard because they are being interpreted as html
35739         Adds a work around for <rdar://problem/5230154> which explicitly
35740         sets local .xhtml files to have the MIME type application/xhtml+xml.
35742         * platform/network/mac/ResourceResponseMac.mm:
35743         (WebCore::ResourceResponse::doUpdateResourceResponse):
35745 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
35747         Reviewed by Darin Adler.
35749         Fixed <rdar://problem/5055182> The page cache has no global cap.
35750         
35751         Beefed up the PageCache class to track which HistoryItems are 
35752         cached, and decide how to evict old HistoryItems as new ones are
35753         added.
35755         * history/BackForwardList.cpp: Removed support for managing the page cache
35756         through the BackForwardList since this is deprecated in Mac's 
35757         WebBackForwardList, and doesn't exist on other platforms.
35758         
35759         Added a Page* back pointer so that Mac WebBackForwardList can still support 
35760         its deprecated API, using the new hotness. This isn't a big burden, since 
35761         Page is responsible for calling BackForwardList::close upon destruction, 
35762         anyway.
35764         * history/HistoryItem.cpp: Replaced CachedPage* with boolean that tells
35765         you whether you're in the page cache. This prevents us from having more
35766         than one persistent repository for cached pages.
35768         * history/PageCache.cpp: If you're playing along at home, this code is 
35769         the reason for the patch.
35771         * loader/FrameLoader.cpp: If you're playing along at home, the minuses in
35772         this file are the reason for the patch.
35773         
35774         Replaced call to FrameLoaderClient::loadedFromCachedPage with its one-line
35775         implementation because WebCore calling itself through WebKit is uncivilized.
35777         * page/Settings.cpp: Added support for removing a Page's HistoryItems from
35778         the page cache.
35780 2007-05-25  Mitz Pettel  <mitz@webkit.org>
35782         Reviewed by Darin.
35784         - fix http://bugs.webkit.org/show_bug.cgi?id=13869
35785           Many leaks seen on buildbot after r21735
35787         - fix another regression from r21739: ::-webkit-slider-thumb style not
35788           applied.
35790         Test: fast/forms/slider-thumb-stylability.html
35792         * rendering/RenderSlider.cpp:
35793         (WebCore::RenderSlider::setStyle):
35794         (WebCore::RenderSlider::createThumbStyle):
35796 2007-05-25  Justin Garcia  <justin.garcia@apple.com>
35798         Reviewed by Harrison.
35800         <rdar://problem/5228141> 
35801         REGRESSION: Can't apply style to selection that ends after an image
35803         * editing/ApplyStyleCommand.cpp:
35804         (WebCore::ApplyStyleCommand::applyInlineStyle):
35805         Use range compliant equivalents when creating the Range
35806         used to compute pastEndNode(), otherwise Range's constructor
35807         ASSERTs and pastEndNode() returns null. Added a testcase.
35808         If the incoming Range is collapsed at [br, 0], callers want
35809         the style to be applied to the br, so expand the Range to include
35810         it.  We got away without expanding before because pastEndNode
35811         of a Range from [br, 0] to [br, 0] is the node after the br.
35812         Using range compliant equivalents changed that. There's already
35813         test coverage for this change.
35814         Changed while loop termination for finding the end of a run 
35815         so that we don't process pastEnd.  end.node() may now be 
35816         non-atomic and we'd blow past it. There's already test
35817         coverage for this change.
35819 2007-05-25  Beth Dakin  <bdakin@apple.com>
35821         Rubber stamped by Hyatt
35823         Adding an ASSERT for good measure.
35825         * page/FrameView.cpp:
35826         (WebCore::FrameView::layout):
35828 2007-05-25  Kevin McCullough  <kmccullough@apple.com>
35830         Reviewed by Geoff.
35832         - <rdar://problem/5183523> REGRESSION: Excel: Worksheet tabs in spreadsheet saved as web page don't work 
35833         - Change load to check the URL as well as the referrer since it is possilbe to have a referrer which limits a load even thought the URL would allow it.  There is a bug about how we need to re-evaluate the whole load architecture: <rdar://problem/5227992> Rethink canLoad() to have a consistent and comprehensive architecture.
35835         * loader/FrameLoader.cpp:
35836         (WebCore::FrameLoader::loadSubframe):
35837         (WebCore::FrameLoader::load):
35838         (WebCore::FrameLoader::canLoad):
35839         * loader/FrameLoader.h:
35841 2007-05-25  Anders Carlsson  <andersca@apple.com>
35843         Reviewed by Brady.
35845         <rdar://problem/5209536>
35846         http://bugs.webkit.org/show_bug.cgi?id=13757
35847         REGRESSION: Leaks seen on buildbot after r21497.
35848         
35849         Fix multipart data loading so it works like Tiger Safari. When one part of a multipart connection has been loaded,
35850         move the subresource loader from the subresource loaders set and into a special multipart subresource loader set. This set 
35851         is not considered when asking a document loader if it's currently loading. 
35852                 
35853         * loader/DocumentLoader.cpp:
35854         (WebCore::DocumentLoader::stopLoading):
35855         Always stop the multipart subresource loaders here.
35856         
35857         (WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):
35858         New function that moves the loader from m_subresourceLoaders to m_multipartSubresourceLoaders and updates the document loader's state.
35859         
35860         * loader/ProgressTracker.cpp:
35861         (WebCore::ProgressTracker::incrementProgress):
35862         If a progress item already exists, reuse it. This can happen in some rare circumstances when dealing with multipart data.
35863         
35864         * loader/SubresourceLoader.cpp:
35865         (WebCore::SubresourceLoader::didReceiveResponse):
35866         Call subresourceLoaderFinishedLoadingOnePart if the response is multipart.
35868 2007-05-25  Patti Hoa  <patti@apple.com>
35870         Reviewed by Tim Hatcher.
35872         <rdar://problem/4918397> Exception raise inspecting note contents in the background
35873         
35874         * bridge/mac/WebCoreAXObject.mm:
35875         (-[WebCoreAXObject accessibilityDescription]):
35876         Only allow asking the attachmentView for description if attachmentView supports this description attribute
35878 2007-05-25  Beth Dakin  <bdakin@apple.com>
35880         Reviewed by Oliver and Hyatt.
35882         Fix for <rdar://problem/5228363> REGRESSION: In Mail, attempting to 
35883         create a To Do results in a crash
35885         This regressed with r21635. Now that -boundingBox updates layout if 
35886         it is needed, we infinitely recurse when Mail draws a custom 
35887         highlight. The fix is to put a guard around laying out the render 
35888         tree.
35890         * page/FrameView.cpp:
35891         (WebCore::FrameViewPrivate::reset):
35892         (WebCore::FrameView::layout):
35894 2007-05-25  Patti Hoa <patti@apple.com>
35896         Reviewed by John Sullivan.
35897         
35898         <rdar://problem/5221986> selection in web areas doesn't seem to be working for text navigation
35899         
35900         * bridge/mac/WebCoreAXObject.mm:
35901         (-[WebCoreAXObject accessibilityIsAttributeSettable:]):
35902         Fixed up incorrect string comparison for AXSelectedTextMarkerRange ax attribute so 
35903         this attribute can actually announce its settability. 
35905 2007-05-25  Darin Adler  <darin@apple.com>
35907         Reviewed by Alice.
35909         - fix <rdar://problem/5228048> REGRESSION: In a new Mail message, the caret isn't
35910           immediately inserted when tabbing into or clicking in the message body
35912         This latent problem was uncovered by <http://trac.webkit.org/projects/webkit/changeset/21476>,
35913         which removed some code that did extra work whenever setCaretVisible made the caret visible.
35915         * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Call invalidateCaretRect
35916         when turning the caret on. All other call sites that touched m_caretPaint were doing
35917         this, but this was not.
35919 2007-05-25  Darin Adler  <darin@apple.com>
35921         Reviewed by Harrison.
35923         * DerivedSources.make: Tweaked spelling.
35925 2007-05-25  Mitz Pettel  <mitz@webkit.org>
35927         Reviewed by Darin.
35929         - fix http://bugs.webkit.org/show_bug.cgi?id=13872
35930           REGRESSION: An empty search field can have a cancel button
35932         Test: fast/forms/search-cancel-button-style-sharing.html
35934         * rendering/RenderTextControl.cpp:
35935         (WebCore::RenderTextControl::createCancelButtonStyle): Prevented sharing of
35936         the cancel button style between search fields that share style, because
35937         each search field mutates the style to show and hide the cancel button.
35939 2007-05-25  David Harrison  <harrison@apple.com>
35941         Reviewed by Kevin and Geoff.
35943         * DerivedSources.make:
35944         Add an inclusion guard for CSSGrammar.h and XPathGrammar.h, because older versions of bison do not
35945         
35946         * css/maketokenizer:
35947         Unconditionally define the flex basic types that are not part of newer versions of flex. Was
35948         only needed on Linux. Now needed on Mac OS 10.5, and is OK to do on 10.4.9.
35950 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
35952         Reviewed by Darin Adler.
35953         
35954         Moved JavaScriptCore-related pending public API to public API.
35956         Moved -JSObject
35958         * bindings/objc/WebScriptObjectPendingPublic.h: from here
35959         * bindings/objc/WebScriptObject.h: to here
35960         * bindings/objc/WebScriptObject.mm: and out of its temporary category
35962 2007-05-25  Mitz Pettel  <mitz@webkit.org>
35964         Reviewed by Darin.
35966         - fix http://bugs.webkit.org/show_bug.cgi?id=13767
35967           REGRESSION: Multipart image documents are garbled
35969         Test: http/tests/multipart/invalid-image-data-standalone.html
35971         * loader/DocumentLoader.cpp:
35972         (WebCore::DocumentLoader::isLoadingMultipartContent): Added.
35973         * loader/DocumentLoader.h:
35974         * loader/ImageDocument.cpp:
35975         (WebCore::ImageTokenizer::finish): If the image is multipart, make a copy
35976         of the current part instead of using the resource data, which is going to be
35977         overwritten by the next part.
35978         * loader/MainResourceLoader.h:
35979         (WebCore::MainResourceLoader::isLoadingMultipartContent): Added.
35981 2007-05-25  Anders Carlsson  <andersca@apple.com>
35983         Fix no-svg build.
35984         
35985         * bindings/js/kjs_html.cpp:
35986         (KJS::HTMLElementFunction::callAsFunction):
35988 2007-05-25  Anders Carlsson  <andersca@apple.com>
35990         Reviewed by Mitz.
35992         <rdar://problem/5226788> After resizing the window larger than the image, hovering over the image still shows magnify glass
35993         
35994         One part of the bug was already fixed by my previous commit. This fixes the case where the window is sized so the image fit
35995         after it has been zoomed in.
35996         
35997         * loader/ImageDocument.cpp:
35998         (WebCore::ImageDocument::windowSizeChanged):
36000 2007-05-25  John Sullivan  <sullivan@apple.com>
36002         Reviewed by Anders and Tim
36004         - WebCore change for: 
36005           <rdar://problem/5226000> REGRESSION: In Gmail and Mail, a hang occurs when attempting to grammar/spellcheck a word in a reply 
36007         * editing/Editor.cpp:
36008         (WebCore::findFirstBadGrammarInRange):
36009         Use the more obvious way to check whether a range is empty. In this case the more obvious way
36010         would also have caused no problem to occur. Also added an assertion. Though this change is
36011         enough to fix the symptom of the bug, the real fix is in WebKit.
36013 2007-05-25  Anders Carlsson  <andersca@apple.com>
36015         Reviewed by Darin (Sorta).
36017         * loader/ImageDocument.cpp:
36018         (WebCore::ImageDocument::restoreImageSize):
36019         Use removeProperty here.
36021 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
36023         Reviewed by Darin Adler.
36025         Some cleanup to Cache while Fixing <rdar://problem/5055182> The page cache 
36026         has no global cap.
36027         
36028         * loader/Cache.cpp: Removed destructor to help identify this class as a
36029         singleton.
36031         * loader/Cache.h: Made constructor and destructor private to match the
36032         singleton model of PageCache.
36033         
36034         Put structs related to Cache inside its declaration to fix some namespace
36035         conflicts I had while writing my patch. (They don't exist anymore, but
36036         I figured this might help future development.)
36038 2007-05-24  Geoffrey Garen  <ggaren@apple.com>
36040         Reviewed by Darin Adler.
36042         Fixed a bug with Settings where a number of different objects held bare 
36043         Settings* data members, even though the Page owns the Settings object and 
36044         deletes it upon destruction.
36046         Added NULL checks since the Page can be deleted before the frame/document.
36048         * page/Settings.cpp: Removed reliance on setNeedsReapplyStylesForSettingsChange.
36050         * css/cssstyleselector.cpp: CSSStyleSelector was the worst offender. It 
36051         held a number of back pointers that were not guaranteed. I removed the 
36052         Settings*, Frame*, and FrameView* back pointers, but others could probably 
36053         go, too. I replaced them with a single Document* pointer, which is guaranteed
36054         because the Document owns the CSSStyleSelector.
36056         * page/Page.cpp: Removed setNeedsReapplyStylesForSettingsChange -- the 
36057         Settings object is now a proper subcontroller of Page, so it doesn't need
36058         to use a global table to find its page anymore. Also, this function
36059         confusingly implied that the Frames in a page can have heterogeneous settings,
36060         which is not true.
36062 2007-05-25  David Hyatt  <hyatt@apple.com>
36064         Make sure -webkit-border-fit accounts for padding as well as border.
36066         Reviewed by aroben
36068         * rendering/RenderBlock.cpp:
36069         (WebCore::RenderBlock::borderFitAdjust):
36071 2007-05-25  David Hyatt  <hyatt@apple.com>
36073         Rework line numbering (again).  This time I finally think I have
36074         it right for all the document.write insanity that can occur.
36076         Reviewed by aroben
36078         * html/HTMLParser.cpp:
36079         (WebCore::HTMLParser::reportErrorToConsole):
36080         * html/HTMLParserErrorCodes.cpp:
36081         (WebCore::htmlParserDocumentWriteMessage):
36082         * html/HTMLParserErrorCodes.h:
36083         * html/HTMLTokenizer.cpp:
36084         (WebCore::HTMLTokenizer::write):
36085         * html/HTMLTokenizer.h:
36086         (WebCore::HTMLTokenizer::lineNumberPtr):
36087         (WebCore::HTMLTokenizer::processingContentWrittenByScript):
36088         * platform/SegementedSring.cpp
36089         (WebCore::SegmentedString::setExcludeLineNumbers):
36090         * platform/SegmentedString.h:
36091         (WebCore::SegmentedSubstring::SegmentedSubstring):
36092         (WebCore::SegmentedSubstring::clear):
36093         (WebCore::SegmentedSubstring::excludeLineNumbers):
36094         (WebCore::SegmentedSubstring::setExcludeLineNumbers):
36095         (WebCore::SegmentedString::excludeLineNumbers):
36096         (WebCore::SegmentedString::advance):
36098 2007-05-24  Geoffrey Garen  <ggaren@apple.com>
36100         Reviewed by Adam Roben.
36102         Added a debug-only CachedPage counter. This helped me track down an SVG 
36103         timer bug in my recent page cache work.
36104                 
36105         * history/CachedPage.cpp:
36107 2007-05-24  David Hyatt  <hyatt@apple.com>
36109         Improve <form> error reporting to catch <form>s inside table parts.
36110         Tweak the wording of some of the error messages to be a bit better.
36112         Reviewed by olliej
36114         * html/HTMLParser.cpp:
36115         (WebCore::HTMLParser::insertNode):
36116         (WebCore::HTMLParser::processCloseTag):
36117         (WebCore::HTMLParser::popBlock):
36118         * html/HTMLParserErrorCodes.cpp:
36119         (WebCore::htmlParserErrorMessageTemplate):
36120         * html/HTMLParserErrorCodes.h:
36122 2007-05-24  Rob Buis  <buis@kde.org>
36124         Reviewed by Hyatt.
36126         http://bugs.webkit.org/show_bug.cgi?id=4104
36127         first-letter not updating style with hover
36128         http://bugs.webkit.org/show_bug.cgi?id=13169
36129         css-formatted first letter won't hide dynamically
36131         Update first letter when RenderBlock::setStyle is called. 
36133         * css/cssstyleselector.cpp:
36134         (WebCore::CSSStyleSelector::checkOneSelector):
36135         * dom/Document.cpp:
36136         (WebCore::Document::Document):
36137         (WebCore::Document::createElement):
36138         * dom/Document.h:
36139         (WebCore::Document::usesFirstLetterRules):
36140         (WebCore::Document::setUsesFirstLetterRules):
36141         * rendering/RenderBlock.cpp:
36142         (WebCore::RenderBlock::setStyle):
36143         (WebCore::RenderBlock::updateFirstLetter):
36145 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36147         Reviewed by Darin.
36149         - fix http://bugs.webkit.org/show_bug.cgi?id=13800
36150           REGRESSION: Moving a slider moves another unrelated slider
36152         Test: fast/forms/slider-thumb-shared-style.html
36154         RenderSlider mutates the thumb's style, therefore it must not be shared
36155         with another slider's thumb, a situation that could occur if the sliders
36156         themselves shared style.
36158         * rendering/RenderSlider.cpp:
36159         (WebCore::RenderSlider::createThumbStyle): Always use a private copy for
36160         the thumb style.
36162 2007-05-24  Adele Peterson  <adele@apple.com>
36164         Reviewed by Darin.
36166         Fix for <rdar://problem/5211921> Form values sometimes get transposed (iGoogle)
36168         Test: fast/history/redirect-load-no-form-restoration.html
36170         * history/HistoryItem.cpp:
36171         (WebCore::HistoryItem::setURL): Clear the document state when the url changes for a HistoryItem.
36172         (WebCore::HistoryItem::isCurrentDocument): Added. Compares the HistoryItem url to the document's url.  This might not be the best way to do this, but it works for now.
36173         * history/HistoryItem.h:
36174         * loader/FrameLoader.cpp: (WebCore::FrameLoader::saveDocumentState): Only set the document (and form) state if the document is current for the history item.
36176 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36178         Reviewed by Adele.
36180         - fix http://bugs.webkit.org/show_bug.cgi?id=13857
36181           REGRESSION: onChange function applied to select element executes twice when focus is set
36183         Test: fast/forms/select-double-onchange.html
36185         * html/HTMLSelectElement.cpp:
36186         (WebCore::HTMLSelectElement::menuListOnChange): Changed to update m_lastOnChangeIndex
36187         before dispatching the change event to avoid reentrancy.
36189 2007-05-24  Darin Adler  <darin@apple.com>
36191         Reviewed by Hyatt.
36193         - fix <rdar://problem/5226451> REGRESSION (21618): Mail block quotes
36194           are missing the lines on the side
36196         This patch fixes three problems:
36198         1) makes the "skip canLoad check" boolean also skip the check
36199            that prevents any loads while the document is in provisional
36200            state; this is the proximate cause of the bug
36202         * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create):
36203         Don't check the frame's state if skipCanLoadCheck is true.
36205         2) moves the "skip canLoad check" boolean to the Request object;
36206            the old implementation would cause that flag to affect the
36207            new request we served, which might not be the resource with
36208            that flag set
36210         3) fixes error-handling code path that would leak requests
36212         * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
36213         Pass false to the CachedImage constructor to indicate we are not making
36214         this object for the cache.
36216         * loader/Cache.cpp:
36217         (WebCore::createResource): Pass true to the CachedImage constructor to
36218         indicate we are making this object for the cache.
36219         (WebCore::Cache::requestResource): Add new code that assumes the object
36220         will already have the inCache bit set, and that will delete the object
36221         and return 0 if the cache is disabled and the load failed.
36223         * loader/CachedImage.h:
36224         * loader/CachedImage.cpp: (WebCore::CachedImage::CachedImage):
36225         Added a forCache boolean parameter. Always false for the constructor
36226         that's only used outside the cache code, and passed in as a boolean
36227         for the constructor that's used both in cache and outside cache.
36229         * loader/CachedResource.h:
36230         * loader/CachedResource.cpp:
36231         (WebCore::CachedResource::CachedResource): Added a forCache boolean
36232         parameter that determines the initial state of the m_inCache flag.
36233         This is needed to prevent a resource from being destroyed if an
36234         error occurs during the initial load.
36236         * loader/DocLoader.cpp:
36237         (WebCore::DocLoader::requestCSSStyleSheet): Added FIXME.
36238         (WebCore::DocLoader::setLoadInProgress): Added null check.
36240         * loader/Request.h:
36241         * loader/Request.cpp: (WebCore::Request::Request):
36242         Added a shouldSkipCanLoadCheck boolean here, since we need to track
36243         this for each request.
36245         * loader/loader.h:
36246         * loader/loader.cpp:
36247         (WebCore::Loader::load): Pass the skipCanLoadCheck boolean to the
36248         Request constructor rather than to the servePendingRequests function.
36249         (WebCore::Loader::servePendingRequests): Add a loop so we can handle
36250         cases where the request fails immediately without leaking the request
36251         and thinking that we're loading forever.
36253 2007-05-24  David Hyatt  <hyatt@apple.com>
36255         Add error reporting for residual style.
36257         Reviewed by aroben
36259         * html/HTMLParser.cpp:
36260         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
36261         (WebCore::HTMLParser::reopenResidualStyleTags):
36262         * html/HTMLParserErrorCodes.cpp:
36263         (WebCore::htmlParserErrorMessageTemplate):
36264         * html/HTMLParserErrorCodes.h:
36266 2007-05-24  David Hyatt  <hyatt@apple.com>
36268         Report <script/> as a warning instead of an error for now, since we
36269         actually do close it.  (Sigh.)
36271         Reviewed by beth
36273         * html/HTMLParser.cpp:
36274         (WebCore::HTMLParser::parseToken):
36275         (WebCore::HTMLParser::reportErrorToConsole):
36276         * html/HTMLParserErrorCodes.cpp:
36277         (WebCore::htmlParserErrorMessageTemplate):
36278         (WebCore::isWarning):
36279         * html/HTMLParserErrorCodes.h:
36281 2007-05-24  David Hyatt  <hyatt@apple.com>
36283         Add error reporting for the </p> -> <p></p> quirk.
36285         Add error reporting when a stray close tag is encountered with no
36286         corresponding open tag.
36288         Reviewed by adele
36290         * html/HTMLParser.cpp:
36291         (WebCore::HTMLParser::HTMLParser):
36292         (WebCore::HTMLParser::processCloseTag):
36293         (WebCore::HTMLParser::popBlock):
36294         * html/HTMLParser.h:
36295         (WebCore::HTMLParser::popBlock):
36296         * html/HTMLParserErrorCodes.cpp:
36297         (WebCore::htmlParserErrorMessageTemplate):
36298         * html/HTMLParserErrorCodes.h:
36300 2007-05-24  Kevin McCullough  <kmccullough@apple.com>
36302         Reviewed by.
36304         - Rolling back change to fix the build until I have a good fix for data: urls.
36306         * ChangeLog:
36307         * loader/FrameLoader.cpp:
36308         (WebCore::FrameLoader::load):
36309         (WebCore::FrameLoader::open):
36310         * platform/String.cpp:
36312 2007-05-24  David Hyatt  <hyatt@apple.com>
36314         Add two more error messages to the HTMLParser.
36316         Report when the </br> -> <br> quirk is triggered.
36318         Also report whenever the broken XML self-closing tag syntax is used on
36319         tags that can actually have an end tag (either optional or required).
36321         Reviewed by aroben
36323         * html/HTMLParser.cpp:
36324         (WebCore::HTMLParser::parseToken):
36325         * html/HTMLParserErrorCodes.cpp:
36326         (WebCore::htmlParserErrorMessageTemplate):
36327         * html/HTMLParserErrorCodes.h:
36328         (WebCore::):
36329         * html/HTMLTokenizer.cpp:
36330         (WebCore::HTMLTokenizer::parseTag):
36331         * html/HTMLTokenizer.h:
36332         (WebCore::Token::reset):
36334 2007-05-24  Sam Weinig  <sam@webkit.org>
36336         Reviewed by Anders.
36338         Rename JSHTMLFrameSetCustom.cpp to JSHTMLFrameSetElementCustom.cpp
36339         for consistency.
36341         * WebCore.xcodeproj/project.pbxproj:
36342         * bindings/js/JSHTMLFrameSetCustom.cpp: Removed.
36343         * bindings/js/JSHTMLFrameSetElementCustom.cpp: Added.
36345 2007-05-24  David Hyatt  <hyatt@apple.com>
36347         Fix for <rdar://problem/5208440> (13753)
36349         REGRESSION: Raw text needs to be pulled outside of tables
36351         Reviewed by aroben
36353         * html/HTMLParser.cpp:
36354         (WebCore::HTMLParser::handleError):
36355         * html/HTMLTableColElement.cpp:
36356         (WebCore::HTMLTableColElement::checkDTD):
36357         * html/HTMLTableElement.cpp:
36358         (WebCore::HTMLTableElement::checkDTD):
36359         * html/HTMLTableRowElement.cpp:
36360         (WebCore::HTMLTableRowElement::checkDTD):
36361         * html/HTMLTableSectionElement.cpp:
36362         (WebCore::HTMLTableSectionElement::checkDTD):
36364 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36366         Reviewed by Darin.
36368         - fix http://bugs.webkit.org/show_bug.cgi?id=13837
36369           Separator in new <select> widget disappears when block element with border is in document.
36371         Test: fast/forms/menulist-separator-painting.html
36373         * platform/graphics/cg/GraphicsContextCG.cpp:
36374         (WebCore::GraphicsContext::drawConvexPolygon): Changed this function to
36375         actually do both filling and stroking when needed, even though all existing
36376         callers set the stroke to none.
36377         * rendering/RenderThemeMac.mm:
36378         (WebCore::RenderThemeMac::paintMenuListButton): Added calls to set the stroke
36379         style and thickness when painting the arrows and the separator.
36381 2007-05-24  Timothy Hatcher  <timothy@apple.com>
36383         Reviewed by Sam Weinig.
36385         Remove the OBJC_NEW_PROPERTIES #ifdef and only export the new @property syntax.
36387         * bindings/objc/DOMObject.h:
36388         * bindings/scripts/CodeGeneratorObjC.pm:
36390 2007-05-24  Sam Weinig  <sam@webkit.org>
36392         Reviewed by Anders.
36394         Uncomment HTMLFramesSetElement constructor now that it exists.
36396         * page/DOMWindow.idl:
36398 2007-05-24  Anders Carlsson  <andersca@apple.com>
36400         Try fixing the buildbot build.
36401         
36402         * loader/ImageDocument.cpp:
36403         (WebCore::ImageDocument::resizeImageToFit):
36404         (WebCore::ImageDocument::imageClicked):
36406 2007-05-24  Sam Weinig  <sam@webkit.org>
36408         Reviewed by Darin.
36410         Patch for http://bugs.webkit.org/show_bug.cgi?id=13853
36411         Autogenerate the JS bindings for the HTMLFrameSetElement
36413         * DerivedSources.make:
36414         * WebCore.pro:
36415         * WebCore.xcodeproj/project.pbxproj:
36416         * bindings/js/JSHTMLElementWrapperFactory.cpp:
36417         * bindings/js/JSHTMLFrameSetCustom.cpp: Added.
36418         (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
36419         (WebCore::JSHTMLFrameSetElement::nameGetter):
36420         * bindings/js/kjs_html.cpp:
36421         (KJS::):
36422         (KJS::JSHTMLElement::classInfo):
36423         (KJS::JSHTMLElement::accessors):
36424         (KJS::JSHTMLElement::getOwnPropertySlot):
36425         * bindings/js/kjs_html.h:
36426         (KJS::JSHTMLElement::):
36427         * html/HTMLFrameSetElement.idl:
36429 2007-05-24  Zack Rusin  <zrusin@trolltech.com>
36431         Reviewed by andersca
36433         Fixing check for incorrent font size - it should
36434         check fixed not normal.
36436         * page/Settings.cpp:
36437         (WebCore::Settings::setDefaultFixedFontSize):
36439 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36441         Speculative buildbot build fix.
36443         * css/cssstyleselector.cpp:
36444         (WebCore::CSSStyleSelector::applyProperty):
36446 2007-05-24  Adam Roben  <aroben@apple.com>
36448         Made Chrome::addMessageToConsole more flexible
36450         addMessageToConsole now takes two additional parameters to specify the
36451         message source (HTML, JS, CSS, XML) and level (error, warning, log). To
36452         maintain our old behavior, all current messages were given
36453         JSMessageSource and ErrorMessageLevel parameters. Messages matching
36454         these characteristics are passed up to the ChromeClient.
36456         Reviewed by Hyatt.
36458         * bindings/js/JSCustomXPathNSResolver.cpp:
36459         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
36460         * bindings/js/kjs_events.cpp:
36461         (KJS::JSAbstractEventListener::handleEvent):
36462         * bindings/js/kjs_proxy.cpp:
36463         (WebCore::KJSProxy::evaluate):
36464         * bindings/js/kjs_window.cpp:
36465         (KJS::Window::isSafeScript):
36466         (KJS::ScheduledAction::execute):
36467         * html/HTMLParser.cpp:
36468         (WebCore::HTMLParser::reportErrorToConsole):
36469         * ksvg2/misc/SVGDocumentExtensions.cpp:
36470         (WebCore::SVGDocumentExtensions::reportWarning):
36471         (WebCore::SVGDocumentExtensions::reportError):
36472         * loader/FrameLoader.cpp:
36473         (WebCore::FrameLoader::reportLocalLoadFailed):
36474         * page/Chrome.cpp:
36475         (WebCore::Chrome::addMessageToConsole):
36476         * page/Chrome.h:
36477         (WebCore::):
36478         * xml/xmlhttprequest.cpp:
36479         (WebCore::XMLHttpRequest::setRequestHeader):
36481 2007-05-24  David Hyatt  <hyatt@apple.com>
36483         Rework how HTML handles line numbering so that it is not fooled by
36484         \r without a following \n and so that document.write doesn't lead
36485         to line numbering confusion.
36487         Reviewed by aroben
36489         * html/HTMLParser.cpp:
36490         (WebCore::HTMLParser::reportErrorToConsole):
36491         * html/HTMLTokenizer.cpp:
36492         (WebCore::HTMLTokenizer::processListing):
36493         (WebCore::HTMLTokenizer::parseSpecial):
36494         (WebCore::HTMLTokenizer::parseComment):
36495         (WebCore::HTMLTokenizer::parseServer):
36496         (WebCore::HTMLTokenizer::parseProcessingInstruction):
36497         (WebCore::HTMLTokenizer::parseText):
36498         (WebCore::HTMLTokenizer::parseEntity):
36499         (WebCore::HTMLTokenizer::parseTag):
36500         (WebCore::HTMLTokenizer::write):
36501         (WebCore::HTMLTokenizer::processToken):
36502         (WebCore::HTMLTokenizer::setSrc):
36503         * html/HTMLTokenizer.h:
36504         (WebCore::HTMLTokenizer::lineNumberPtr):
36505         * html/HTMLViewSourceDocument.cpp:
36506         (WebCore::HTMLViewSourceDocument::addLine):
36507         * loader/TextDocument.cpp:
36508         (WebCore::TextTokenizer::write):
36509         * platform/SegmentedString.cpp:
36510         (WebCore::SegmentedString::SegmentedString):
36511         (WebCore::SegmentedString::operator=):
36512         (WebCore::SegmentedString::clear):
36513         * platform/SegmentedString.h:
36514         (WebCore::SegmentedString::SegmentedString):
36515         (WebCore::SegmentedString::advance):
36516         (WebCore::SegmentedString::escaped):
36518 2007-05-23  David Hyatt  <hyatt@apple.com>
36520         Make the delete/InsertRows/Cells methods as well as the rowIndex method
36521         able to work properly even when whitespace or comment nodes are present.
36523         Reviewed by aroben
36525         fast/table/rowindex-comment-nodes.html
36527         * html/HTMLTableRowElement.cpp:
36528         (WebCore::HTMLTableRowElement::rowIndex):
36529         (WebCore::HTMLTableRowElement::insertCell):
36530         (WebCore::HTMLTableRowElement::deleteCell):
36531         * html/HTMLTableSectionElement.cpp:
36532         (WebCore::HTMLTableSectionElement::insertRow):
36533         (WebCore::HTMLTableSectionElement::deleteRow):
36535 2007-05-23  David Hyatt  <hyatt@apple.com>
36537         <optgroup> should allow <script> and text nodes inside it, just like
36538         <select> does.
36540         Reviewed by aroben
36542         fast/forms/stuff-on-my-optgroup.html
36544         * html/HTMLOptGroupElement.cpp:
36545         (WebCore::HTMLOptGroupElement::checkDTD):
36546         * html/HTMLSelectElement.cpp:
36547         (WebCore::HTMLSelectElement::checkDTD):
36549 2007-05-23  David Hyatt  <hyatt@apple.com>
36551         Framesets should allow whitespace text nodes as children.
36553         Reviewed by aroben
36555         * html/HTMLFrameSetElement.cpp:
36556         (WebCore::HTMLFrameSetElement::checkDTD):
36558 2007-05-24  Mark Rowe  <mrowe@apple.com>
36560         Fix the Qt build after r21685.
36562         * platform/qt/CursorQt.cpp:
36563         (WebCore::notAllowedCursor):
36564         (WebCore::zoomInCursor):
36565         (WebCore::zoomOutCursor):
36567 2007-05-23  Alp Toker  <alp.toker@collabora.co.uk>
36569         Reviewed by Adam.
36571         Fix the gdk build following changes in r21685.
36573         * platform/gdk/CursorGdk.cpp:
36574         (WebCore::zoomInCursor):
36575         (WebCore::zoomOutCursor):
36577 2007-05-23  David Hyatt  <hyatt@apple.com>
36579         Fix for <rdar://problem/5222611> REGRESSION: Paint ordering problems at
36580         http://buymeasoda.com/dev/issues/image_onload/image_onload.html
36582         Clamp z-index so that values that exceed maxint (or that are below minint)
36583         are clamped to those values.
36585         Reviewed by darin
36587         * css/cssstyleselector.cpp:
36588         (WebCore::CSSStyleSelector::applyProperty):
36590 2007-05-23  Mitz Pettel  <mitz@webkit.org>
36592         Reviewed by David Hyatt.
36594         - fix http://bugs.webkit.org/show_bug.cgi?id=13563
36595           REGRESSION: Crash loading message in Yahoo! Mail
36597         Tests: fast/css/stale-style-selector-crash-1.html
36598                fast/css/stale-style-selector-crash-2.html
36600         * dom/Document.cpp:
36601         (WebCore::Document::Document): Initialize the m_didCalculateStyleSelector
36602         flag to 'false'.
36603         (WebCore::Document::updateStyleSelector): Do not bail out if we have ever
36604         calculated a non-trivial style selector, even if at the moment we are
36605         pending style sheets. We could have calculated a non-trivial selector
36606         already either because at some point there were no pending style sheets
36607         (so the currently pending ones were added dynamically) or because we were
36608         forced to do a layout ignoring pending style sheets. Either way, once
36609         there is a style selector, we need to keep it up to date, otherwise we can
36610         crash under recalcStyle() during updateRendering() or simply not recalculate
36611         style correctly for dynamic changes.
36612         (WebCore::Document::recalcStyleSelector): Set m_didCalculateStyleSelector
36613         to 'true' when creating a new style selector.
36614         * dom/Document.h:
36616 2007-05-23  Anders Carlsson  <andersca@apple.com>
36618         Reviewed by Adam.
36620         <rdar://problem/5224749> Show a zoom/unzoom cursor for resizable image documents
36621         
36622         * WebCore.xcodeproj/project.pbxproj:
36623         Install the zoom cursors.
36624         
36625         * loader/ImageDocument.cpp:
36626         (WebCore::ImageDocument::resizeImageToFit):
36627         Set the cursor to the zoom in cursor.
36628         
36629         (WebCore::ImageDocument::restoreImageSize):
36630         If the image fits, reset the cursor. Otherwise, set it to the zoom in cursor.
36632 2007-05-23  Darin Adler  <darin@apple.com>
36634         Reviewed by Hyatt.
36636         - fix problems where unrendered nodes were affecting on plain text serialization
36638         * editing/TextIterator.cpp:
36639         (WebCore::TextIterator::advance): Don't call handleXXX functions or exitNode for
36640         nodes without renderers.
36641         (WebCore::shouldEmitNewlineAfterNode): Only consider rendered nodes when deciding
36642         if this is the last node in the document.
36644 2007-05-23  Anders Carlsson  <andersca@apple.com>
36646         Reviewed by Geoff.
36648         <rdar://problem/3663808> Resize large images to fit in the browser window
36649         
36650         * WebCore.exp:
36651         Add new settings method.
36652         
36653         * loader/ImageDocument.cpp:
36654         (WebCore::ImageEventListener::ImageEventListener):
36655         New class that handles resize events and click events and forwards them to the image document.
36656         
36657         (WebCore::ImageTokenizer::ImageTokenizer):
36658         (WebCore::ImageTokenizer::writeRawData):
36659         (WebCore::ImageTokenizer::finish):
36660         (WebCore::ImageDocument::ImageDocument):
36661         (WebCore::ImageDocument::createDocumentStructure):
36662         (WebCore::ImageDocument::cachedImage):
36663         Let the ImageDocument class keep track of its document structure.
36664         
36665         (WebCore::ImageDocument::scale):
36666         Returns the scale that should be used when resizing the image.
36667         
36668         (WebCore::ImageDocument::resizeImage):
36669         Update the image size.
36670         
36671         (WebCore::ImageDocument::imageClicked):
36672         Toggle between resized and not resized. When restoring the size, scroll the image so that the area under
36673         the mouse stays the same.
36674         
36675         (WebCore::ImageDocument::imageChanged):
36676         When the image size is known, resize the image if needed.
36677         
36678         (WebCore::ImageDocument::restoreImageSize):
36679         Restore the image size.
36680         
36681         (WebCore::ImageDocument::imageNeedsResizing):
36682         Return whether the image is too big for its window or not.
36683         
36684         (WebCore::ImageDocument::windowSizeChanged):
36685         Called when the window's size changes. Determine if the window fits or not and resize it if it doesn't fit.
36686         
36687         (WebCore::ImageEventListener::handleEvent):
36688         Forward events to the image document.
36689         
36690         * page/Settings.cpp:
36691         (WebCore::Settings::Settings):
36692         (WebCore::Settings::setEnableAutomaticImageResizing):
36693         * page/Settings.h:
36694         (WebCore::Settings::enableAutomaticImageResizing):
36695         Add new setting.
36696         
36697 2007-05-23  Anders Carlsson  <andersca@apple.com>
36699         Reviewed by Darin.
36701         Add -webkit-zoom-in and -webkit-zoom-out cursors.
36702         
36703         * Resources/zoomInCursor.png: Added.
36704         * Resources/zoomOutCursor.png: Added.
36705         * css/CSSComputedStyleDeclaration.cpp:
36706         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
36707         * css/CSSValueKeywords.in:
36708         * page/EventHandler.cpp:
36709         (WebCore::selectCursor):
36710         * platform/Cursor.h:
36711         * platform/mac/CursorMac.mm:
36712         (WebCore::zoomInCursor):
36713         (WebCore::zoomOutCursor):
36714         * rendering/RenderStyle.h:
36715         (WebCore::):
36717 2007-05-23  Sam Weinig  <sam@webkit.org>
36719         Reviewed by Darin.
36721         Part one of patch for http://bugs.webkit.org/show_bug.cgi?id=13830
36722         Auto-generate JS DOM bindings for HTMLDocument and most of the rest
36723         of HTMLElement
36725         - Just the HTMLElement part.
36727         * bindings/js/kjs_html.cpp:
36728         (KJS::JSHTMLElement::getValueProperty):
36729         (KJS::JSHTMLElement::putValueProperty):
36730         * bindings/js/kjs_html.h:
36731         (KJS::JSHTMLElement::):
36732         * html/HTMLElement.idl:
36734 2007-05-22  Kevin McCullough  <kmccullough@apple.com>
36736         Reviewed by Darin.
36738         - rdar://problem/5183523
36739         - We now check the document's URL to see if it can load a resource in the case of a URL click, instead of checking the referrer, which is blank for local files.
36741         * loader/FrameLoader.cpp:
36742         (WebCore::FrameLoader::load):
36743         (WebCore::FrameLoader::open):
36744         * platform/PlatformString.h:
36745         (WebCore::debugPrintString):
36747 2007-05-23  Sam Weinig  <sam@webkit.org>
36749         Reviewed by Darin.
36751         Part two of patch for http://bugs.webkit.org/show_bug.cgi?id=13830
36752         Auto-generate JS DOM bindings for HTMLDocument and most of the rest
36753         of HTMLElement
36755         - Just the HTMLDocument part.
36757         * WebCore.pro:
36758         * WebCore.xcodeproj/project.pbxproj:
36759         * bindings/js/JSHTMLDocumentCustom.cpp: Added.
36760         (WebCore::JSHTMLDocument::canGetItemsForName):
36761         (WebCore::JSHTMLDocument::nameGetter):
36762         (WebCore::JSHTMLDocument::all):
36763         (WebCore::JSHTMLDocument::setAll):
36764         (WebCore::JSHTMLDocument::location):
36765         (WebCore::JSHTMLDocument::setLocation):
36766         (WebCore::JSHTMLDocument::open):
36767         (WebCore::writeHelper):
36768         (WebCore::JSHTMLDocument::write):
36769         (WebCore::JSHTMLDocument::writeln):
36770         (WebCore::JSHTMLDocument::clear):
36771         * bindings/js/kjs_dom.cpp:
36772         (KJS::toJS):
36773         * bindings/js/kjs_dom.h:
36774         * bindings/js/kjs_html.cpp:
36775         * bindings/js/kjs_html.h:
36776         * bindings/objc/DOMPrivate.h:
36777         * bindings/scripts/CodeGeneratorJS.pm: Add [Deletable] property
36778         for Document.all and fix HasOverridingNameGetter to allow correct
36779         prototype chain
36780         * dom/Document.cpp:
36781         (WebCore::Document::plugins): adds alias to embeds() for bindings
36782         * dom/Document.h:
36783         * html/HTMLDocument.cpp:
36784         (WebCore::HTMLDocument::width):
36785         (WebCore::HTMLDocument::height):
36786         (WebCore::HTMLDocument::dir):
36787         (WebCore::HTMLDocument::setDir):
36788         (WebCore::HTMLDocument::designMode):
36789         (WebCore::HTMLDocument::setDesignMode):
36790         (WebCore::HTMLDocument::bgColor):
36791         (WebCore::HTMLDocument::setBgColor):
36792         (WebCore::HTMLDocument::fgColor):
36793         (WebCore::HTMLDocument::setFgColor):
36794         (WebCore::HTMLDocument::alinkColor):
36795         (WebCore::HTMLDocument::setAlinkColor):
36796         (WebCore::HTMLDocument::linkColor):
36797         (WebCore::HTMLDocument::setLinkColor):
36798         (WebCore::HTMLDocument::vlinkColor):
36799         (WebCore::HTMLDocument::setVlinkColor):
36800         (WebCore::HTMLDocument::captureEvents):
36801         (WebCore::HTMLDocument::releaseEvents):
36802         * html/HTMLDocument.h:
36803         * html/HTMLDocument.idl:
36805 2007-05-23  David Hyatt  <hyatt@apple.com>
36807         Fix for <rdar://problem/5221838> REGRESSION (r21581): no content in idisk
36808         window at mac.com.
36810         Back out the change to make self-closed <script/> into a Dashboard quirk
36811         only.
36813         Reviewed by aroben
36815         * html/HTMLTokenizer.cpp:
36816         (WebCore::HTMLTokenizer::parseTag):
36818 2007-05-23  Patti  <patti@apple.com>
36820         Reviewed by David Harrison.
36822         <rdar://problem/5078453> AXNext/PrevLineEndTextMarkerForTextMarker returns kAXErrorNoValue for attachment range
36823         
36824         Floating objects, such as aligned images, are not included as part of any line.  So when the given 
36825         text marker is on the floating object, the returned line edge cannot be found and asserts are fired.
36826         In addition, this paints an inconsistent text layout (in the accessibility sense) of where the floating 
36827         object resides.  Character/word methods report floating object at the beginning of the text line(s).  Yet
36828         line methods never present floating objects anywhere.  
36829         To fix this, the ax line methods will now do more checking to ensure floating object nodes are included
36830         when determining the line range/position. That way, assistive apps won't get stuck using the line methods 
36831         to read line-by-line
36833         * bridge/mac/WebCoreAXObject.mm:
36834         (updateAXLineStartForVisiblePosition):
36835         Added a helper method to adjust line start position to account for floating objects
36836         (-[WebCoreAXObject doAXLeftLineTextMarkerRangeForTextMarker:]):
36837         (-[WebCoreAXObject doAXRightLineTextMarkerRangeForTextMarker:]):
36838         (-[WebCoreAXObject doAXNextLineEndTextMarkerForTextMarker:]):
36839         (-[WebCoreAXObject doAXPreviousLineStartTextMarkerForTextMarker:]):
36840         Fixed up line routines to include floating object nodes in line position calculation.
36841         startOfLine/endOLine may return null for position next to a floating position.  So now there's extra checks to prevent
36842         returning null line position/ranges back to AX.
36845 2007-05-23  Simon Hausmann  <hausmann@kde.org>
36847         Reviewed by Zack, discussed also with Lars.
36849         Make it possible to have per-QWebPage network interface
36850         implementations.
36852         * platform/network/qt/ResourceHandleQt.cpp:
36853         (WebCore::ResourceHandle::start): Pass the page's network interface to
36854         the network manager.
36856 2007-05-23  Rob Buis  <buis@kde.org>
36858         Reviewed by Dave Hyatt.
36860         http://bugs.webkit.org/show_bug.cgi?id=13174
36861         line-height in font shorthand does not override a previously stated line-height property
36863         Make sure line-height is calculated against definite font-size and
36864         uses the last set line-height, ie. directly or through font shorthand.
36866         * css/cssstyleselector.cpp:
36867         (WebCore::CSSStyleSelector::styleForElement):
36868         (WebCore::CSSStyleSelector::pseudoStyleForElement):
36869         (WebCore::CSSStyleSelector::applyDeclarations):
36870         (WebCore::CSSStyleSelector::applyProperty):
36871         * css/cssstyleselector.h:
36873 2007-05-23  Lars Knoll <lars@trolltech.com>
36875         Reviewed by Zack and Valgrind
36877         Initialize variable.
36879         * platform/qt/PlatformMouseEventQt.cpp:
36880         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
36882 2007-05-23  Rob Buis  <buis@kde.org>
36884         Reviewed by Darin.
36886         http://bugs.webkit.org/show_bug.cgi?id=13784
36887         REGRESSION (r13744-13750): Crash with empty gradient when drawing to canvas
36889         Fix crash by testing for zero stops, and returning transparent black
36890         in this case.
36892         * html/CanvasGradient.cpp:
36893         (WebCore::CanvasGradient::getColor):
36895 2007-05-23  Rob Buis  <buis@kde.org>
36897         Reviewed by Darin.
36899         http://bugs.webkit.org/show_bug.cgi?id=13801
36900         Crash when loading nonexisting symbol
36902         Check for referenced element and when not found just return.
36904         * ksvg2/svg/SVGUseElement.cpp:
36905         (WebCore::SVGUseElement::buildPendingResource):
36907 2007-05-22  Sam Weinig  <sam@webkit.org>
36909         Rubber stamped by Adam.
36911         Fix license.
36913         * bindings/js/JSHTMLAnchorElementCustom.cpp:
36915 2007-05-22  Sam Weinig  <sam@webkit.org>
36917         Reviewed by Adam.
36919         Patch for http://bugs.webkit.org/show_bug.cgi?id=13833
36920         Add ObjC DOM binding for HTMLMarqeeElement
36922         - Also adds missing DOMHTMLFramePrivate.
36924         * DerivedSources.make:
36925         * WebCore.xcodeproj/project.pbxproj:
36926         * bindings/objc/DOM.mm:
36927         (WebCore::createElementClassMap):
36928         * bindings/objc/DOMHTML.h:
36929         * bindings/objc/DOMInternal.h:
36930         * bindings/objc/DOMPrivate.h:
36931         * bindings/objc/PublicDOMInterfaces.h:
36933 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
36935         Reviewed by darin, who found the fix independently.
36937         http://bugs.webkit.org/show_bug.cgi?id=13804
36938         REGRESSION(r21611): Several new layout test pixel failures (misspelling markers)
36939         
36940         r21611 exposed a bug in the way removeMarkers computes
36941         the end of the range to remove markers from.  It also
36942         introduced a bug: removeMarkers expects a startOffset
36943         and a length, not a startOffset and an endOffset (added 
36944         a layout test).
36946         * dom/Document.cpp:
36947         (WebCore::Document::removeMarkers): The other removeMarkers
36948         expects a startOffset and a length, not a startOffset and
36949         an endOffset.
36950         (WebCore::Document::removeMarkers): Fixed the endOffset
36951         from length and startOffset calculation.
36953 2007-05-22  David Hyatt  <hyatt@apple.com>
36955         Fix for bug 13802, background colors can't be reset to default
36956         color.  Fix the value cssText method to do the right thing for background
36957         and background-position values.
36959         Reviewed by beth
36961         fast/dom/background-shorthand-csstext.html
36963         * css/CSSInitialValue.h:
36964         (WebCore::CSSInitialValue:::m_implicit):
36965         (WebCore::CSSInitialValue::isImplicitInitialValue):
36966         * css/CSSMutableStyleDeclaration.cpp:
36967         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
36968         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
36969         * css/CSSMutableStyleDeclaration.h:
36970         * css/CSSValue.h:
36971         (WebCore::CSSValue::isImplicitInitialValue):
36972         * css/cssparser.cpp:
36973         (WebCore::CSSParser::parseValue):
36974         (WebCore::CSSParser::parseBackgroundShorthand):
36975         (WebCore::CSSParser::parseShorthand):
36977 2007-05-22  Darin Adler  <darin@apple.com>
36979         Reviewed by Geoff.
36981         - fix <rdar://problem/5215830> REGRESSION: ebay.com layout is wrong
36983         The code on ebay was looking for the "document" property on a iframe.
36984         We changed that to be the ownerDocument rather than the contentDocument,
36985         which was not what ebay was expecting. The best fix seems to be removing
36986         the document property altogether.
36988         Test: fast/dom/iframe-document.html
36990         * bindings/js/kjs_html.h: Remove ElementDocument.
36991         * bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::getValueProperty): Ditto.
36993 2007-05-22  Adele Peterson  <adele@apple.com>
36995         Reviewed by Darin.
36997         A little cleanup from my last checkin.
36999         * page/Chrome.h: Formatting change.
37000         * page/mac/ChromeMac.mm: Fixed copyright.
37002 2007-05-22  Adele Peterson  <adele@apple.com>
37004         Reviewed by Darin.
37006         Fix for http://bugs.webkit.org/show_bug.cgi?id=13796
37007         Crash in [NSInputContext currentInputContext] when you click on this map
37009         This is another case of <rdar://problem/5171145> Safari crashed closing tab in NSInputContext updateInputContexts
37011         Test: fast/frames/frame-display-none-focus.html
37013         * WebCore.xcodeproj/project.pbxproj: Added ChromeMac.mm
37014         * page/Chrome.h:
37015         * page/mac/ChromeMac.mm: Added.
37016         (WebCore::Chrome::focusNSView): Moved code from Widget::setFocus so it can be used whenever we need to make a view the first responder.
37017         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView): Calls focusNSView.
37018         * platform/mac/WidgetMac.mm: (WebCore::Widget::setFocus): Calls focusNSView.
37020 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
37022         Reviewed by darin
37023         
37024         <rdar://problem/4875189> 
37025         List is deleted when replacing contents with Chinese/Japanese characters
37027         * editing/htmlediting.cpp:
37028         (WebCore::isSpecialElement): Lists are no longer special.
37029         They can be removed by removing their content and then 
37030         then hitting delete inside of the empty list item that's 
37031         left over. Even when that list item is the first thing 
37032         in the editable region.
37034 2007-05-22  Darin Adler  <darin@apple.com>
37036         Reviewed by Tim Hatcher.
37038         - fix <rdar://problem/5206089> REGRESSION: hovering over amazon.com "product categories"
37039           tab makes page content disappear
37041         The contentWindow property was doing a cross-frame security check, but it shouldn't.
37042         Window objects are responsible for protecting themselves from cross-frame activity.
37043         Because contentWindow returned undefined, we then ended up setting visibility on the
37044         body of the main frame to "hidden".
37046         No layout test yet. When we make cross-domain tests, we should include this one.
37048         * html/HTMLFrameElement.idl: Removed CheckFrameSecurity attribute from contentWindow.
37049         * html/HTMLIFrameElement.idl: Ditto.
37051 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
37053         Reviewed by oliver
37055         <rdar://problem/5213963>
37056         REGRESSION(r21467): Active selection remains in text field after clicking on a button
37058         * page/EventHandler.cpp:
37059         (WebCore::EventHandler::dispatchMouseEvent): Call
37060         FocusController::setFocusedNode, because Document::setFocusedNode
37061         no longer clears the selection.
37062         Begin passing the new focused frame to 
37063         FocusController::setFocusedNode, because when the 
37064         new focus node is null, the selection should only be 
37065         cleared if the focused frame isn't changing.
37066         (WebCore::Element::focus): Begin passing the new focused
37067         frame.
37068         (WebCore::Element::blur): Ditto.
37069         * html/HTMLInputElement.cpp:
37070         (WebCore::HTMLInputElement::focus): Ditto.
37071         * html/HTMLTextAreaElement.cpp:
37072         (WebCore::HTMLTextAreaElement::focus): Ditto.
37073         * page/Frame.cpp:
37074         (WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
37075         * page/FocusController.cpp:
37076         (WebCore::clearSelectionIfNeeded): Take in the new
37077         focused frame.  If it's not changing, don't clear the
37078         selection.
37079         (WebCore::FocusController::setFocusedNode): Take
37080         in the new focused frame.
37081         * page/FocusController.h:
37083 2007-05-22  Marius Bugge Monsen  <mbm@trolltech.com>
37085         Reviewed by Zack.
37087         Implement some more functions in ClipboardQt.
37089         * platform/qt/ClipboardQt.cpp:
37090         (WebCore::ClipboardQt::ClipboardQt):
37091         (WebCore::ClipboardQt::getData):
37092         (WebCore::ClipboardQt::setData):
37093         (WebCore::ClipboardQt::types):
37095 2007-05-21  Oliver Hunt  <oliver@apple.com>
37097         Reviewed by Sam.
37098         
37099         Fix for http://bugs.webkit.org/show_bug.cgi?id=13789 
37100         -- SVGLocatable::getScreenCTM() faulty
37101         
37102         Needed to update SVGLength to handle the case where the SVGElement is
37103         not the root document element -- we do this by falling back on the 
37104         renderer for the context.
37105         
37106         For <svg> elements embedded as mixed content in xhtml we consider the
37107         absolutePosition of the parent to be the origin for the <svg> element.
37109         * ksvg2/svg/SVGLength.cpp:
37110         (WebCore::SVGLength::PercentageOfViewport):
37111         * ksvg2/svg/SVGSVGElement.cpp:
37112         (WebCore::SVGSVGElement::getScreenCTM):
37114 2007-05-21  Timothy Hatcher  <timothy@apple.com>
37116         Reviewed by Adam.
37118         <rdar://problem/5084400> -[DOMRange lineBoxRects] returns an empty array when the DOM nodes have just been created
37120         Do a updateLayoutIgnorePendingStylesheets before asking the Node or Range for it's box rects.
37122         * bindings/objc/DOM.mm:
37123         (-[DOMNode boundingBox]):
37124         (-[DOMNode lineBoxRects]):
37125         (-[DOMRange boundingBox]):
37126         (-[DOMRange lineBoxRects]):
37128 2007-05-21  Sam Weinig  <sam@webkit.org>
37130         Reviewed by George Staikos.
37132         Fix Qt build.
37134         * WebCore.pro: add missing IDL files.
37136 2007-05-21  Sam Weinig  <sam@webkit.org>
37138         Reviewed by Darin.
37140         Patch for http://bugs.webkit.org/show_bug.cgi?id=13803
37141         Autogenerate the JS bindings for the HTMLMarqueeElement.
37143         * DerivedSources.make:
37144         * WebCore.xcodeproj/project.pbxproj:
37145         * bindings/js/JSHTMLElementWrapperFactory.cpp:
37146         * bindings/js/kjs_css.cpp:
37147         (KJS::DOMCSSRule::getOwnPropertySlot): Fix possible null pointer issue.
37148         (KJS::DOMCSSRule::put): Fix possible null pointer issue.
37149         * bindings/js/kjs_html.cpp:
37150         (KJS::):
37151         (KJS::JSHTMLElement::classInfo):
37152         (KJS::JSHTMLElement::accessors):
37153         (KJS::JSHTMLElement::getOwnPropertySlot): Fix null pointer issue.
37154         (KJS::HTMLElementFunction::callAsFunction):
37155         (KJS::JSHTMLElement::put):
37156         * bindings/js/kjs_html.h:
37157         (KJS::JSHTMLElement::):
37158         * html/HTMLMarqueeElement.cpp:
37159         (WebCore::HTMLMarqueeElement::start):
37160         (WebCore::HTMLMarqueeElement::stop):
37161         * html/HTMLMarqueeElement.h: Add start() and stop() functions.
37162         * html/HTMLMarqueeElement.idl: Added.
37163         * page/DOMWindow.idl: Add marquee constructor.
37165 2007-05-21  Adele Peterson  <adele@apple.com>
37167         Fix by Darin, reviewed by me.
37169         Fix for <rdar://problem/5171145> Safari crashed closing tab in NSInputContext updateInputContexts
37171         * platform/mac/WidgetMac.mm:
37172         (WebCore::safeRemoveFromSuperview): Added. If the view is the window's first responder, then 
37173          set the window's first responder to nil so we don't leave the window pointing to a view that's no longer in it.
37174         (WebCore::Widget::setFocus): Don't attempt to focus the view if it has no window.
37175         (WebCore::Widget::removeFromSuperview): Call safeRemoveFromSuperview.
37176         (WebCore::Widget::afterMouseDown): ditto.
37178 2007-05-21  David Hyatt  <hyatt@apple.com>
37180         Make a line gutter backdrop so that tiny view source docs don't look
37181         bad.
37183         Reviewed by aroben
37185         * css/view-source.css:
37186         * html/HTMLViewSourceDocument.cpp:
37187         (WebCore::HTMLViewSourceDocument::createContainingTable):
37189 2007-05-21  David Hyatt  <hyatt@apple.com>
37191         Make sure to distinguish between links to internal resources and
37192         real links (anchors) in view source mode.
37194         Reviewed by aroben
37196         * css/view-source.css:
37197         * html/HTMLViewSourceDocument.cpp:
37198         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37199         (WebCore::HTMLViewSourceDocument::addLink):
37200         * html/HTMLViewSourceDocument.h:
37202 2007-05-21  Sam Weinig  <sam@webkit.org>
37204         Reviewed by Adam and Darin.
37206         Patch for http://bugs.webkit.org/show_bug.cgi?id=13791
37207         Autogenerate the JS bindings for the HTMLIFrameElement and HTMLFrameElement.
37209         * DerivedSources.make:
37210         * WebCore.xcodeproj/project.pbxproj:
37211         * bindings/js/JSHTMLAnchorElementCustom.cpp:
37212         * bindings/js/JSHTMLElementWrapperFactory.cpp:
37213         * bindings/js/kjs_html.cpp:
37214         (KJS::):
37215         (KJS::JSHTMLElement::classInfo):
37216         (KJS::JSHTMLElement::accessors):
37217         (KJS::HTMLElementFunction::callAsFunction):
37218         * bindings/js/kjs_html.h:
37219         (KJS::JSHTMLElement::):
37220         * bindings/scripts/CodeGeneratorJS.pm:
37221         * html/HTMLFrameElement.idl:
37222         * html/HTMLFrameElementBase.cpp:
37223         (WebCore::HTMLFrameElementBase::location):
37224         * html/HTMLFrameElementBase.h:
37225         * html/HTMLFrameOwnerElement.h:
37226         (WebCore::HTMLFrameOwnerElement::contentWindow):
37227         * html/HTMLIFrameElement.idl:
37228         * page/DOMWindow.idl:
37230 2007-05-21  Lars Knoll <lars@trolltech.com>
37232         Reviewed by Zack.
37234         Remove the ResourceHandleManager class, it is now part of 
37235         QWebNetworkInterface. Adapt ResourceHandle to the new way 
37236         of things.
37238         * WebCore.pro:
37239         * platform/network/ResourceHandleInternal.h:
37240         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
37241         * platform/network/qt/ResourceHandleManagerKDE.cpp: Removed.
37242         * platform/network/qt/ResourceHandleManagerKDE.h: Removed.
37243         * platform/network/qt/ResourceHandleManagerQt.cpp: Removed.
37244         * platform/network/qt/ResourceHandleManagerQt.h: Removed.
37245         * platform/network/qt/ResourceHandleQt.cpp:
37246         (WebCore::ResourceHandle::~ResourceHandle):
37247         (WebCore::ResourceHandle::start):
37248         (WebCore::ResourceHandle::cancel):
37250 2007-05-21  David Hyatt  <hyatt@apple.com>
37252         Second half of fix for 13793, make sure rules=groups works properly with
37253         spanning colgroups.
37255         Also make sure colgroups get an actual span of 1 (instead of incorrectly
37256         giving them a span of 0).
37258         Reviewed by mitz
37260         fast/table/colgroup-spanning-groups-rules.html
37262         * html/HTMLTableColElement.cpp:
37263         (WebCore::HTMLTableColElement::HTMLTableColElement):
37264         * rendering/RenderTable.cpp:
37265         (WebCore::RenderTable::colElement):
37266         * rendering/RenderTable.h:
37267         * rendering/RenderTableCell.cpp:
37268         (WebCore::RenderTableCell::collapsedLeftBorder):
37269         (WebCore::RenderTableCell::collapsedRightBorder):
37271 2007-05-20  David Hyatt  <hyatt@apple.com>
37273         Half of a fix for 13793, make sure rules=groups and border behave properly
37274         together.
37276         Reviewed by mitz
37278         No tests added, two Mozilla table tests now pass that failed before.
37280         * html/HTMLTableElement.cpp:
37281         (WebCore::HTMLTableElement::getSharedCellDecl):
37283 2007-05-20  Brady Eidson <beidson@apple.com>
37285         Reviewed by Geoose Garen
37287         <rdar://problem/4758919> - Incorrect favicon shown for URL after going back
37289         When restoring a cached page, we'd try to kick off the icon load for it, which ended up causing 
37290         shenanigans with the icon url -> page url mapping.  
37292         * loader/FrameLoader.cpp:
37293         (WebCore::FrameLoader::endIfNotLoading): Only try an icon load if we're not restoring from the page cache
37294         (WebCore::FrameLoader::startIconLoader): Added helpful logging that helped me track this down
37295         (WebCore::FrameLoader::commitIconURLToIconDatabase): Ditto (and fixed a comment typo)
37297         * loader/icon/IconLoader.cpp:
37298         (WebCore::IconLoader::stopLoading): Don't null out the ResourceLoader here, as clearLoadingState() does that
37299         (WebCore::IconLoader::finishLoading): Added helpful logging that helped me track this down
37302 2007-05-20  Darin Adler  <darin@apple.com>
37304         Reviewed by Oliver Hunt.
37306         - fix <rdar://problem/5193416> REGRESSION: Selection on large pages extremely slow
37308         * dom/Document.cpp: (WebCore::Document::removeMarkers): Added an early exit for the common
37309         case where there are no markers. Changed code to iterate over all the nodes in the range
37310         instead of using TextIterator, which is more efficient.
37311         
37312         * page/Frame.cpp: (WebCore::Frame::respondToChangedSelection): Added checks for editable,
37313         so we don't bother doing work related to spell checking and grammar checking when changing
37314         the selection in non-editable text. Also rearranged the code so we only compute the old
37315         word boundaries and sentence boundaries when actually needed, and don't do the sentence
37316         range checks unless grammar checking is enabled.
37318         * platform/TextBreakIteratorICU.cpp:
37319         (WebCore::setUpIterator): Don't take a locale parameter. Always pass in currentTextBreakLocaleID.
37320         (WebCore::characterBreakIterator): Removed local parameter.
37321         (WebCore::wordBreakIterator): Ditto.
37322         (WebCore::lineBreakIterator): Ditto.
37323         (WebCore::sentenceBreakIterator): Ditto.
37325         * platform/mac/TextBreakIteratorInternalICUMac.mm:
37326         (WebCore::getTextBreakLocale): Broke out the code to actually get the locale.
37327         (WebCore::currentTextBreakLocaleID): This function now handles only the caching and calls
37328         getTextBreakLocale to actually figure it out.
37330         * editing/visible_units.cpp: Added lots of FIXME comments, but no code change.
37332 2007-05-20  Adam Treat  <adam@staikos.net>
37334         Add -f to cp to deal with some obscure build environments.
37336         Reviewed by George Staikos.
37338         * move-js-headers.sh:
37340 2007-05-20  Adam Treat  <adam@staikos.net>
37342         Add missing include for auto_ptr
37344         Reviewed by George Staikos.
37346         * platform/graphics/ImageBuffer.h:
37348 2007-05-19  David Hyatt  <hyatt@apple.com>
37350         Fix for bug 13785, O(n^2) counter creation.
37352         Reviewed by darin
37354         * rendering/RenderCounter.cpp:
37355         (WebCore::findPlaceForCounter):
37356         (WebCore::RenderCounter::originalText):
37358 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37360         Reviewed by Dave Hyatt.
37362         - fix http://bugs.webkit.org/show_bug.cgi?id=12729
37363           box-shadow disappears when scrolling a div that it falls on/under
37365         Tests: fast/repaint/box-shadow-dynamic.html
37366                fast/repaint/box-shadow-h.html
37367                fast/repaint/box-shadow-v.html
37369         * rendering/InlineFlowBox.cpp:
37370         (WebCore::InlineFlowBox::placeBoxesHorizontally): Factor in box shadow.
37371         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
37372         (WebCore::InlineFlowBox::paint): Account for box shadow when checking if
37373         the damage rect intersects.
37374         * rendering/RenderBlock.cpp:
37375         (WebCore::RenderBlock::overflowHeight): For overflow areas, when asked
37376         for the "exterior" overflow, add box shadow overflow.
37377         (WebCore::RenderBlock::overflowWidth): Ditto.
37378         (WebCore::RenderBlock::overflowLeft): Ditto.
37379         (WebCore::RenderBlock::overflowTop): Ditto.
37380         (WebCore::RenderBlock::overflowRect): Ditto.
37381         (WebCore::RenderBlock::layoutBlock): Factor box shadow into visual overflow.
37382         * rendering/RenderFlexibleBox.cpp:
37383         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
37384         * rendering/RenderFlow.cpp:
37385         (WebCore::RenderFlow::lowestPosition): For overflow areas, when asked for
37386         the "exterior" extreme position, add box shadow.
37387         (WebCore::RenderFlow::rightmostPosition): Ditto.
37388         (WebCore::RenderFlow::leftmostPosition): Ditto.
37389         * rendering/RenderLayer.cpp:
37390         (WebCore::RenderLayer::calculateRects): Avoid clipping out box shadow.
37391         * rendering/RenderObject.cpp:
37392         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Make sure to paint
37393         the box shadow when an edge with a shadow moves.
37394         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Helper function
37395         that expands a given rectangle to encompass outline and box shadow.
37396         (WebCore::RenderObject::absoluteOutlineBox): Changed to include box shadow.
37397         * rendering/RenderObject.h:
37399 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37401         Reviewed by Dave Hyatt.
37403         - fix http://bugs.webkit.org/show_bug.cgi?id=13783
37404           REGRESSION (r21120): Frame resizers not repainted properly when dragged
37406         * rendering/RenderFrameSet.cpp:
37407         (WebCore::RenderFrameSet::layout):
37409 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37411         Reviewed by Darin.
37413         - fix http://bugs.webkit.org/show_bug.cgi?id=13774
37414           REGRESSION: Crash emailing blog entry using Google Reader
37416         Test: fast/table/stale-grid-crash.html
37418         * rendering/RenderTable.cpp:
37419         (WebCore::RenderTable::recalcSections): Made const and replaced
37420         setNeedsLayout(true) with an assertion that the table is already
37421         marked for layout.
37422         (WebCore::RenderTable::sectionAbove): Added call to recalcSectionsIfNeeded().
37423         (WebCore::RenderTable::sectionBelow): Ditto.
37424         (WebCore::RenderTable::cellAbove): Ditto.
37425         (WebCore::RenderTable::cellBelow): Ditto.
37426         (WebCore::RenderTable::cellBefore): Ditto.
37427         (WebCore::RenderTable::cellAfter): Ditto.
37428         * rendering/RenderTable.h:
37429         Made some private member variables which are used in section recalc mutable.
37430         (WebCore::RenderTable::setNeedsSectionRecalc): Moved the call to
37431         setNeedsLayout() from recalcSections() into here, because I made
37432         recalcSections() const.
37433         (WebCore::RenderTable::recalcSectionsIfNeeded): Made const.
37435 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37437         Reviewed by Darin.
37439         - http://bugs.webkit.org/show_bug.cgi?id=13320
37440           rounded corners with drop shadows are really slow
37442         Test for a rendering bug fixed by this patch:
37443             fast/box-shadow/border-radius-big.html
37445         No test for the performance ingredient.
37447         * platform/graphics/GraphicsContext.cpp:
37448         (WebCore::GraphicsContext::addRoundedRectClip): Made cross-platform.
37449         Changed to use a single clipping path. If all the radii cannot be
37450         accommodated, clips to a rect.
37451         (WebCore::GraphicsContext::clipOutRoundedRect): Changed to use a single
37452         clipping path. If all the radii cannot be accommodated, clips out a rect.
37453         * platform/graphics/GraphicsContext.h: Added clipOut(const Path&).
37454         * platform/graphics/Path.cpp:
37455         (WebCore::Path::createRoundedRectangle): Added. Returns a rounded rectangle
37456         with the specified radii. If all the radii cannot be accommodated, returns
37457         a rectangular path.
37458         * platform/graphics/Path.h:
37459         * platform/graphics/cairo/GraphicsContextCairo.cpp:
37460         (WebCore::GraphicsContext::clipOut): Added.
37461         * platform/graphics/cg/GraphicsContextCG.cpp:
37462         (WebCore::GraphicsContext::fillRoundedRect): Changed to use a single path.
37463         (WebCore::GraphicsContext::clipOut): Added.
37464         * platform/graphics/qt/GraphicsContextQt.cpp:
37465         (WebCore::GraphicsContext::clipOut): Added.
37467 2007-05-19  Anders Carlsson  <andersca@apple.com>
37469         Reviewed by Mitz.
37471         Test: fast/frames/inline-object-inside-frameset.html
37472         
37473         http://bugs.webkit.org/show_bug.cgi?id=13771
37474         Assertion failure ASSERT(m_layer) when running Hamachi fuzz tester
37476         Don't paint inline objects.
37477         
37478         * rendering/RenderFrameSet.cpp:
37479         (WebCore::RenderFrameSet::paint):
37481 2007-05-19  David Hyatt  <hyatt@apple.com>
37483         Add support for plain text MIME types (CSS/JS/TXT) to view source mode.
37484         CSS/JS will eventually tokenize via their own special tokenizers so that
37485         they can also be syntax-highlighted, but for now just treat them as
37486         plain text.
37488         Reviewed by aroben
37490         * dom/DOMImplementation.cpp:
37491         (WebCore::DOMImplementation::createDocument):
37492         * html/HTMLViewSourceDocument.cpp:
37493         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
37494         (WebCore::HTMLViewSourceDocument::createTokenizer):
37495         (WebCore::HTMLViewSourceDocument::createContainingTable):
37496         (WebCore::HTMLViewSourceDocument::addViewSourceText):
37497         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37498         * html/HTMLViewSourceDocument.h:
37499         * loader/TextDocument.cpp:
37500         (WebCore::TextTokenizer::TextTokenizer):
37501         (WebCore::TextTokenizer::write):
37502         * loader/TextDocument.h:
37503         (WebCore::TextTokenizer::checkBuffer):
37505 2007-05-18  David Hyatt  <hyatt@apple.com>
37507         Fix a glitch in view source mode attribute names.
37509         * html/HTMLViewSourceDocument.cpp:
37510         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37512 2007-05-18  David Hyatt  <hyatt@apple.com>
37514         "Linkify" view source mode links.
37516         Reviewed by andersca
37518         * css/view-source.css:
37519         * html/HTMLViewSourceDocument.cpp:
37520         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37521         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
37522         (WebCore::HTMLViewSourceDocument::addLink):
37523         * html/HTMLViewSourceDocument.h:
37525 2007-05-18  Oliver Hunt  <oliver@apple.com>
37527         Reviewed by Sam
37529         No longer need to pass HTMLImageElement and HTMLImageLoader on to WebKit
37530         Need to expose CachedResourceClient constructor
37532         * WebCore.exp:
37533         * WebCore.xcodeproj/project.pbxproj:
37535 2007-05-18  David Hyatt  <hyatt@apple.com>
37537         Fix for <rdar://problem/5214338> REGRESSION: / mishandled in 
37538         HTML tokenization (13780).
37540         Reviewed by ggaren
37542         * html/HTMLTokenizer.cpp:
37543         (WebCore::Token::addAttribute):
37544         (WebCore::HTMLTokenizer::parseTag):
37546 2007-05-18  Brady Eidson  <beidson@apple.com>
37548         Reviewed by Maciej
37550         http://bugs.webkit.org/show_bug.cgi?id=12681 and
37551         <rdar://problem/5166149> - window.open() causes server to be hit twice
37553         This regressed in http://trac.webkit.org/projects/webkit/changeset/14637
37554         That patch was to fix broken behavior when opening an already existant window.
37555         The unfortunate side effect was to cause the server to be hit twice.  
37556         Once during the call to frame->loader()->createWindow(), and again via a 
37557         scheduled redirection.
37559         I decided to restore the original de-facto behavior by making the new window
37560         open via a scheduled redirection - there is a FIXME that was already here that
37561         explains the reason why we have to do it this way for now.
37563         Additionally, there were two distinct places that had their own logic to open
37564         a new window - the logic for window.open() and the logic for 
37565         window.showModalDialog().  The logic was almost identical so I condensed them
37566         into one utility function that takes a flag to handle the slight difference.
37568         A layout test is not possible at this time since it would involve capturing 
37569         server logs (the 1st connection does not exist long enough to result in any
37570         delegate callbacks).  That task is documented in 
37571         http://bugs.webkit.org/show_bug.cgi?id=13769
37573         * bindings/js/kjs_window.cpp:
37574         (KJS::createWindow): Merged the two slightly different versions of "creating a window" 
37575           logic here.  For the modal dialog case the load is an immediate call to changeLocation(),
37576           which is triggered by the "immediate" flag, and the other cases load via scheduleLocationChange()
37577         (KJS::showModalDialog): Call createWindow()
37578         (KJS::WindowFunc::callAsFunction): Handle frame targets of _top or _parent immediately and call 
37579           createWindow() for all others
37581 2007-05-18  Sam Weinig  <sam@webkit.org>
37583         Reviewed by Geoff.
37585         Autogenerate the JS bindings for the HTMLTableElement, HTMLTableCaptionElement,
37586         HTMLTableCellElement, HTMLTableColElement, HTMLTableRowElement, HTMLTableSectionElement.
37588         * DerivedSources.make:
37589         * WebCore.pro:
37590         * WebCore.xcodeproj/project.pbxproj:
37591         * bindings/js/JSHTMLElementWrapperFactory.cpp:
37592         (WebCore::createJSHTMLWrapper):
37593         * bindings/js/kjs_html.cpp:
37594         (KJS::):
37595         (KJS::JSHTMLElement::classInfo):
37596         (KJS::JSHTMLElement::accessors):
37597         (KJS::HTMLElementFunction::callAsFunction):
37598         * bindings/js/kjs_html.h:
37599         (KJS::JSHTMLElement::):
37600         * html/HTMLTableCaptionElement.idl:
37601         * html/HTMLTableCellElement.idl:
37602         * html/HTMLTableColElement.idl:
37603         * html/HTMLTableElement.idl:
37604         * html/HTMLTableRowElement.idl:
37605         * html/HTMLTableSectionElement.idl:
37606         * page/DOMWindow.idl:
37608 2007-05-18  Oliver Hunt  <oliver@apple.com>
37610         Reviewed by Sam.
37612         Fix for <rdar://problem/5211122> DRT crash below
37613         SVGTimer::applyAnimations when page cache is enabled 
37614         (SVG animation timers do not properly cancel themselves)
37616         There were still a few paths in the SVG Animation code
37617         that could cause timers to be created and used.  This 
37618         patch inserts addition SVG_EXPERIMENTAL blocks to prevent
37619         these timers from being used.
37621         * ksvg2/misc/SVGDocumentExtensions.cpp:
37622         (WebCore::SVGDocumentExtensions::startAnimations):
37623         * ksvg2/misc/SVGTimer.cpp:
37624         (WebCore::SVGTimer::animationsByElement):
37625         (WebCore::SVGTimer::applyAnimations):
37626         (WebCore::SVGTimer::notifyAll):
37627         (WebCore::SVGTimer::addNotify):
37628         (WebCore::SVGTimer::removeNotify):
37629         * ksvg2/misc/TimeScheduler.cpp:
37630         (WebCore::TimeScheduler::addTimer):
37631         (WebCore::TimeScheduler::connectIntervalTimer):
37632         (WebCore::TimeScheduler::disconnectIntervalTimer):
37633         (WebCore::TimeScheduler::startAnimations):
37634         (WebCore::TimeScheduler::toggleAnimations):
37635         (WebCore::TimeScheduler::timerFired):
37636         * ksvg2/svg/SVGAnimationElement.h:
37638 2007-05-18  Marius Bugge Monsen <mbm@trolltech.com>
37640         Reviewed by Zack Rusin. 
37642         Return a valid pointer to a Clipboard object
37643         from newGeneralClipboard. 
37645         * editing/qt/EditorQt.cpp:
37646         (WebCore::Editor::newGeneralClipboard):
37648 2007-05-18  Mark Rowe  <mrowe@apple.com>
37650         Attempt to fix the Gdk build after r21562.
37652         * platform/gdk/TemporaryLinkStubs.cpp:
37653         (Widget::isEnabled):
37654         * platform/gdk/WidgetGdk.cpp:
37656 2007-05-18  Adam Treat <treat@kde.org>
37658         Reviewed by Lars
37660         Remove dead code.
37662         * platform/Widget.h:
37663         * platform/mac/WidgetMac.mm:
37664         * platform/qt/WidgetQt.cpp:
37666 2007-05-18  Holger Freyther  <zecke@selfish.org>
37668         Reviewed by Maciej.
37670         Return true to make loading of pages working again
37672         * loader/gdk/FrameLoaderClientGdk.cpp:
37673         (WebCore::FrameLoaderClientGdk::canHandleRequest):
37675 2007-05-18  Holger Freyther  <zecke@selfish.org>
37677         Reviewed by Maciej.
37679         Make WebCore::Widget use GtkWidget to fix focus handling.
37681         * WebCore.pro: Add PlatformScrollBar
37682         * platform/ScrollView.h: Gtk stuff
37683         * platform/Widget.h: Take a GtkWidget
37684         * platform/gdk/PlatformScrollBarGdk.cpp: Added.
37685         (PlatformScrollbar::PlatformScrollbar):
37686         (PlatformScrollbar::~PlatformScrollbar):
37687         (PlatformScrollbar::width):
37688         (PlatformScrollbar::height):
37689         (PlatformScrollbar::setEnabled):
37690         (PlatformScrollbar::paint):
37691         (PlatformScrollbar::updateThumbPosition):
37692         (PlatformScrollbar::updateThumbProportion):
37693         (PlatformScrollbar::setRect):
37694         * platform/gdk/ScreenGdk.cpp: Implement depth handling
37695         (WebCore::screenDepth):
37696         * platform/gdk/ScrollViewGdk.cpp: use setGtkWidget, not setDrawable
37697         (WebCore::ScrollView::setGtkWidget):
37698         * platform/gdk/TemporaryLinkStubs.cpp:
37699         * platform/gdk/WidgetGdk.cpp:
37700         (WebCore::Widget::Widget):
37701         (WebCore::Widget::gtkWidget):
37702         (WebCore::Widget::setGtkWidget):
37703         (WebCore::Widget::hasFocus):
37704         (WebCore::Widget::setFocus):
37706 2007-05-18  Lars Knoll  <lars@trolltech.com>
37708         Reviewed by Zack
37710         Correctly implement initialiseSupportedImageMIMETypes.
37712         * platform/MimeTypeRegistry.cpp:
37713         (WebCore::initialiseSupportedImageMIMETypes):
37714         * platform/qt/MimeTypeRegistryQt.cpp:
37715         (WebCore::):
37717 2007-05-18  Holger Hans Peter Freyther  <zecke@selfish.org>
37719         Reviewed by Maciej.
37721         Build fix for non-Qt and non-Mac ports.
37723         * html/HTMLCanvasElement.h:
37725 2007-05-18  Holger Hans Peter Freyther  <zecke@selfish.org>
37727         Reviewed by Mark Rowe.
37729         No test added as this is hard to time.
37731         * platform/gdk/FrameGdk.cpp: Use needsLayout() to decide if layout()
37732         is needed.
37734         (WebCore::FrameGdk::dumpRenderTree):
37735         (WebCore::FrameGdk::handleGdkEvent):
37737 2007-05-18  Simon Hausmann  <hausmann@kde.org>
37739         Reviewed by Lars.
37741         * WebCore.pro: Create a pkg-config file to make it easier to locate
37742         and use WebKitQt.
37744 2007-05-18  Lars Knoll <lars@trolltech.com>
37746         Reviewed by Hyatt.
37748         Remove unused handleMouseEvent methods in the Widget
37749         and derived classes.
37751         * page/EventHandler.cpp:
37752         (WebCore::EventHandler::handleMouseMoveEvent):
37753         * page/FrameView.cpp:
37754         * page/FrameView.h:
37755         * page/mac/EventHandlerMac.mm:
37756         (WebCore::EventHandler::mouseDragged):
37757         (WebCore::EventHandler::mouseMoved):
37758         * platform/ScrollBar.h:
37759         * platform/Widget.h:
37760         * platform/win/PlatformScrollBar.h:
37761         * platform/win/TemporaryLinkStubs.cpp:
37762         (WebCore::PlatformScrollbar::setRect):
37763         * platform/wx/PlatformScrollBar.h:
37765 2007-05-18  George Staikos  <staikos@kde.org>
37767         Reviewed by Lars.
37769         Use the proper clipping algorithm.  Might be a bit slow but we
37770         can optimize it later.
37772         * platform/graphics/qt/GraphicsContextQt.cpp:
37773         (WebCore::GraphicsContext::clip):
37775 2007-05-17  Sam Weinig  <sam@webkit.org>
37777         Reviewed by George Staikos.
37779         Fix Qt build after adding JSHTMLAnchorElementCustom.cpp. 
37781         * WebCore.pro:
37783 2007-05-17  George Staikos  <staikos@kde.org>
37785         Reviewed by hyatt.
37787         Fix preprocessor logic for CG/QT
37789         * html/HTMLCanvasElement.cpp:
37790         (WebCore::HTMLCanvasElement::reset):
37792 2007-05-17  David Hyatt  <hyatt@apple.com>
37794         Add a line gutter to view source mode.  The gutter uses counters, and this exposed the fact
37795         that pseudoStyleForElement was not walking all UA rules properly.
37797         Reviewed by aroben
37799         * css/cssstyleselector.cpp:
37800         (WebCore::CSSStyleSelector::pseudoStyleForElement):
37801         * css/view-source.css:
37802         * html/HTMLViewSourceDocument.cpp:
37803         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
37804         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37805         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
37806         (WebCore::HTMLViewSourceDocument::addLine):
37807         (WebCore::HTMLViewSourceDocument::addText):
37808         * html/HTMLViewSourceDocument.h:
37810 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
37812         Reviewed by ggaren
37814         <rdar://problem/5209984> REGRESSION: Crash on click after clearing Facebook status
37815         
37816         comparePositions() expects non-null positions.  It's 
37817         given a null position by contains() if the current 
37818         selection is a range selection but contains only invisible 
37819         content *and* visible positions cannot be created from its 
37820         end points.  This can happen when there is a range selection 
37821         inside shadow content (like that inside text fields) that 
37822         is made invisible.
37824         * editing/SelectionController.cpp:
37825         (WebCore::SelectionController::contains): Check for
37826         invisible end points.
37828 2007-05-17  Sam Weinig  <sam@webkit.org>
37830         Reviewed by Adam.
37832         Fix for <rdar://problem/5201423> REGRESSION: Links in 
37833         sidebar don't work on Honda website
37835         Anchor elements need to have the same behavior for implicit and 
37836         explicit toString() calls.
37838         Test: fast/dom/anchor-toString.html
37840         * WebCore.xcodeproj/project.pbxproj:
37841         * bindings/js/JSHTMLAnchorElementCustom.cpp: Added.
37842         (WebCore::JSHTMLAnchorElement::toString):
37843         * html/HTMLAnchorElement.idl:
37845 2007-05-17  Geoffrey Garen  <ggaren@apple.com>
37846         
37847         Build fix.
37849 2007-05-17  Adele Peterson  <adele@apple.com>
37851         Reviewed by Hyatt.
37853         Update RenderMenuList PopupClient methods to consider style of inner block.
37855         * rendering/RenderMenuList.cpp:
37856         (WebCore::RenderMenuList::itemStyle):
37857         (WebCore::RenderMenuList::clientStyle):
37859 2007-05-17  Maciej Stachowiak  <mjs@apple.com>
37861         Not reviewed, emergency test fix.
37863         - avoid crash on layout tests.
37864         
37865         Patched up my last change so that  widgets don't crash.
37867         * loader/FrameLoader.cpp:
37868         (WebCore::FrameLoader::mainReceivedCompleteError):
37870 2007-05-17  Antti Koivisto  <antti@apple.com>
37872         Reviewed by Darin.
37874         Fix for http://bugs.webkit.org/show_bug.cgi?id=13727
37875         REGRESSION: Reproducible hang setting the selection's extent offset to -1
37876         <rdar://problem/5206890>
37877         
37878         Rise INDEX_SIZE_ERR if used selection index is negative. This matches HTML5 for
37879         getRangeAt() and collapse() which are part of the spec (FF throws NS_ERROR_FAILURE). 
37880         
37881         Not throwing exceptions yet for too high offsets (except getRangeAt()) as it is
37882         unclear if WebCore's definition of offsets is the same as other browsers.
37884         * bindings/js/kjs_window.cpp:
37885         * WebCore/editing/SelectionController.cpp:
37886         * WebCore/editing/SelectionController.h:
37887         * WebCore/editing/VisiblePosition.cpp:
37888         
37889 2007-05-17  Adele Peterson  <adele@apple.com>
37891         Reviewed by Mitz.
37893         Fix for <rdar://problem/5096035> REGRESSION: rtl text should be left-aligned in <select>s
37895         Test: fast/text/international/bidi-menulist.html
37897         * rendering/RenderMenuList.cpp:
37898         (WebCore::RenderMenuList::adjustInnerStyle): Set the inner block style to direction: ltr, and text-align: left.  This means that
37899          we will ignore those settings in the button to match the way the text is displayed in the popup menu.
37900         (WebCore::RenderMenuList::createInnerBlock): Call adjustInnerStyle.
37901         (WebCore::RenderMenuList::setStyle): ditto.
37902         * rendering/RenderMenuList.h: Added adjustInnerStyle.
37904 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
37906         Reviewed by harrison
37908         <rdar://problem/4924441> List becomes nested when changing its type
37909         <rdar://problem/5210032> Content before a list is placed at the end of the list when its made into a list item
37910         <rdar://problem/5207369> Crash when removing ordering from a nested list
37912         * editing/InsertListCommand.cpp:
37913         (WebCore::InsertListCommand::doApply):
37914         The outermostEnclosingList of the position before the start isn't
37915         the previousList if it contains the start.
37916         Ditto for the position after the end and the nextList.
37917         If we're putting the newly created list item into the next list,
37918         insert it at the start of that list, not the end (don't append).
37919         Avoid nesting newly created lists inside list items.
37920         
37921 2007-05-17  Patti Hoa  <patti@apple.com>
37923         Reviewed by Darin.
37924         
37925         <rdar://problem/4775672> AXTextMarkerRangeForUnorderedTextMarkers returns incorrect order
37926         
37927         * bridge/mac/WebCoreAXObject.mm:
37928         (-[WebCoreAXObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
37929         A selection's m_start is not guranteed to equal m_base since m_start can actually be m_base's downstream().
37930         A more accurate way to determine the order from selection is to ask directly for isBaseFirst().
37931         In addition, if the two visible positions given are the same position but different affinity, we need to 
37932         handle it here rather than depend on the selection. This is because selection does not retain the
37933         affinity of both selection start/end visible positions as part of the selection validation. 
37935 2007-05-17  Mitz Pettel  <mitz@webkit.org>
37937         Reviewed by Brady
37939         - fix http://bugs.webkit.org/show_bug.cgi?id=13759
37940           REGRESSION (r20182-r20184): Incorrect rendering of multipart images
37942         Test: http/tests/multipart/invalid-image-data.html
37944         * loader/loader.cpp:
37945         (WebCore::Loader::didReceiveData): Make a copy of the current part's data
37946         instead of using the resource data, because the latter is going to be
37947         overwritten by the new part being received.
37949 2007-05-17  Oliver Hunt  <oliver@apple.com>
37951         Reviewed by Justin.
37953         Fix for <rdar://problem/4244861> Safari fails to create image file
37954         after releasing dragged image that has changed on source page
37956         Tell xcode to copy HTMLImageElement.h and HTMLImageLoader.h headers
37957         across to WebKit as private headers.
37959         * WebCore.xcodeproj/project.pbxproj:
37961 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
37963         Reviewed by harrison
37965         <rdar://problem/5190926> 
37966         Gmail Editor: Crash when removing list style from underlined, multi-item list
37967         
37968         The user underlined some text, then created a list.
37969         The list was placed inside the inline element carrying 
37970         the underline style, so, that element surrounded the 
37971         list instead of being at the lowest level (just above 
37972         text nodes). This kind of markup is more difficult to 
37973         edit. Filed 5192089 and added a workaround so that we 
37974         don't produce this kind of markup.
37976         * editing/InsertListCommand.cpp:
37977         (WebCore::InsertListCommand::doApply): Avoid inline
37978         elements when inserting the new list.
37980 2007-05-17  David Hyatt  <hyatt@apple.com>
37982         Allow redundant attributes with the same name in view source mode.
37984         Reviewed by aroben
37986         * dom/NamedAttrMap.h:
37987         (WebCore::NamedAttrMap::insertAttribute):
37988         * html/HTMLTokenizer.cpp:
37989         (WebCore::Token::addAttribute):
37991 2007-05-17  George Staikos  <staikos@kde.org>
37993         - Back out last patch based on discussion with Zack.
37995         * platform/qt/WidgetQt.cpp:
37996         (WebCore::Widget::paint):
37998 2007-05-16  Anders Carlsson  <andersca@apple.com>
38000         Reviewed by Darin.
38002         <rdar://problem/5207156> Hamachi test tool causes assertion in FormCompletionController in Safari
38004         This happens because the form delegate gets passed the wrong source frame during the second submit().
38005         If a frame with the given name is found, FrameLoader::load is called with the same parameters on the found frame.
38006         This causes the found frame to be used as the source frame, which is wrong.
38007         
38008         The fix is to create the form state object before checking what frame to load the new request in. 
38009         
38010         * WebCore.exp:
38011         * loader/FrameLoader.cpp:
38012         (WebCore::FrameLoader::load):
38013         (WebCore::FrameLoader::checkNavigationPolicy):
38014         (WebCore::FrameLoader::continueAfterNavigationPolicy):
38015         * loader/FrameLoader.h:
38016         * manual-tests/submit-form-with-target-twice.html: Added.
38018 2007-05-16  Maciej Stachowiak  <mjs@apple.com>
38020         Reviewed by Oliver.
38022         <rdar://problem/5205914> REGRESSION: PLT stops after loading first page due to r21479
38023         
38024         * loader/FrameLoader.cpp:
38025         (WebCore::FrameLoader::frameHasLoaded):
38027 2007-05-16  David Hyatt  <hyatt@apple.com>
38029         Improve the syntax-highlighted view source mode.  It now preserves all whitespace properly
38030         and highlights doctypes and comments (in addition to all the stuff it could highlight before).
38032         Reviewed by aroben
38034         * html/HTMLTokenizer.cpp:
38035         (WebCore::Token::addAttribute):
38036         (WebCore::HTMLTokenizer::parseTag):
38037         * html/HTMLTokenizer.h:
38038         (WebCore::Token::Token):
38039         (WebCore::Token::~Token):
38040         (WebCore::Token::reset):
38041         (WebCore::Token::addViewSourceChar):
38042         * html/HTMLViewSourceDocument.cpp:
38043         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
38044         * html/HTMLViewSourceDocument.h:
38046 2007-05-16  Maciej Stachowiak  <mjs@apple.com>
38048         Reviewed by Adam.
38050         <rdar://problem/5191024> Page never loads completely (emonome.vodpod.com)
38051         <rdar://problem/5205162> REGRESSION (r21367): In the Address URL field, typing a site name doesn't redirect to site after pressing return
38052         http://bugs.webkit.org/show_bug.cgi?id=13683
38053         <rdar://problem/5208951> REGRESSION: Progress bar never completes on link click that downloads (13694)
38054         http://bugs.webkit.org/show_bug.cgi?id=13694
38055         <rdar://problem/5201598> REGRESSION: After uploading file to iDisk at mac.com, "loading" status remains and file does not appear in the list
38056         
38057         * loader/FrameLoader.cpp:
38058         (WebCore::FrameLoader::mainReceivedCompleteError): Make sure to always check whether the overall
38059         load completed, even if we think the current frame load is already complete.
38061 2007-05-16  Beth Dakin  <bdakin@apple.com>
38063         Reviewed by Hyatt.
38065         Fix for <rdar://problem/5204107> REGRESSION: CSS web forum site 
38066         layout not displaying properly in latest WebKit
38068         Hyatt's http://trac.webkit.org/projects/webkit/changeset/21428 
38069         exposed this bug. We were not handling error cases with <caption> 
38070         correctly. This patch makes them do the same thing as colgroup.
38072         * html/HTMLParser.cpp:
38073         (WebCore::HTMLParser::handleError):
38074         * html/HTMLParserErrorCodes.cpp: No need any more for caption-
38075         specific errors.
38076         (WebCore::htmlParserErrorMessageTemplate):
38077         * html/HTMLParserErrorCodes.h:
38078         (WebCore::):
38080 2007-05-16  Kevin McCullough  <kmccullough@apple.com>
38082         Reviewed by Darin and Geoff.
38084         - rdar://problem/4981886
38085         - Now windows opened by the DOM can be closed by JS.
38087         * bindings/js/kjs_window.cpp:
38088         (KJS::createNewWindow):
38089         (KJS::WindowFunc::callAsFunction):
38090         * loader/FrameLoader.cpp:
38091         (WebCore::FrameLoader::FrameLoader):
38092         (WebCore::FrameLoader::openedByDOM):
38093         (WebCore::FrameLoader::setOpenedByDOM):
38094         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
38095         * loader/FrameLoader.h:
38097 2007-05-16  Darin Adler  <darin@apple.com>
38099         Reviewed by Hyatt.
38101         - fix <rdar://problem/4928671> Crash due to runaway recursion when fieldset has display: table-row (12066)
38103         Test: fast/css/fieldset-display-row.html
38105         * rendering/RenderContainer.cpp: (WebCore::RenderContainer::addChild):
38106         Change all decision making about special handling for new children to use
38107         the class of the render object instead of the style, except for the cases
38108         where the style is the only way to tell (TABLE_COLUMN_GROUP and TABLE_CAPTION).
38109         Thus a RenderFieldset with table-row style won't get handled as if it was
38110         a table row.
38112         * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): Same thing.
38113         Except that here the styles that we ahave to look at are TABLE_CAPTION,
38114         TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, and TABLE_ROW_GROUP.
38116 2007-05-16  Zack Rusin  <zrusin@trolltech.com>
38118         Reviewed by Lars.
38120         Implement bigger parts of the Canvas element in the
38121         Qt port. Gradients and patterns are missing.
38123         * WebCore/html/CanvasRenderingContext2D.cpp:
38124         * WebCore/html/CanvasStyle.cpp:
38125         * WebCore/html/HTMLCanvasElement.cpp:
38126         * WebCore/html/HTMLCanvasElement:
38128 2007-05-16  Zack Rusin  <zrusin@trolltech.com>
38130         Reviewed by Lars
38132         Fix shared timers, make them use miliseconds. Based
38133         on a patch from George.
38135         * WebCore/platform/qt/SharedTimerQt.cpp:
38136        (WebCore::setSharedTimerFireTime):
38138 2007-05-16  David Hyatt  <hyatt@apple.com>
38140         Add rudimentary error reporting to the HTML parser.  This is disabled
38141         for now until it gets beefed up a bit more (and until we work out how
38142         best to pass the messages up without hurting perf).
38144         Clean up and remove dead error handling code and incorrect error handling
38145         code as well.
38147         Reviewed by mjs
38149         * WebCore.xcodeproj/project.pbxproj:
38150         * html/HTMLParser.cpp:
38151         (WebCore::HTMLParser::HTMLParser):
38152         (WebCore::HTMLParser::handleError):
38153         (WebCore::HTMLParser::headCreateErrorCheck):
38154         (WebCore::HTMLParser::reportErrorToConsole):
38155         * html/HTMLParser.h:
38156         (WebCore::HTMLParser::reportError):
38157         * html/HTMLParserErrorCodes.cpp: Added.
38158         (WebCore::htmlParserErrorMessageTemplate):
38159         * html/HTMLParserErrorCodes.h: Added.
38160         (WebCore::):
38161         * html/HTMLTokenizer.h:
38162         (WebCore::HTMLTokenizer::tagStartLineNumber):
38164 2007-05-15  David Hyatt  <hyatt@apple.com>
38166         Make FrameLoader write "<html><body>" instead of just "<body>".
38168         Reviewed by aroben
38170         * loader/FrameLoader.cpp:
38171         (WebCore::FrameLoader::init):
38173 2007-05-15  George Staikos  <staikos@kde.org>
38175         Reviewed by Adam Roben.
38177         - Pass cookies through from the loader.
38179         * platform/network/qt/ResourceHandleManagerQt.cpp:
38180         (WebCore::ResourceHandleManager::receivedResponse):
38182 2007-05-15  Adam Treat  <adam@staikos.net>
38184         Reviewed by George Staikos.
38186         - Implement drawArc with proper units.
38188         * platform/graphics/qt/GraphicsContextQt.cpp:
38189         (WebCore::GraphicsContext::strokeArc):
38191 2007-05-15  Adam Treat  <adam@staikos.net>
38193         Reviewed by George Staikos.
38195         - Add missing paint for nested subframes.
38197         * platform/qt/WidgetQt.cpp:
38198         (WebCore::Widget::paint):
38200 2007-05-15  Sam Weinig  <sam@webkit.org>
38202         Reviewed by Oliver.
38204         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38205           Finish testing and fixing the setting of DOM attributes to JS null
38207           Convert JS null to null string for SVG attributes.
38209         Test: fast/dom/svg-element-attribute-js-null.xhtml
38211         * ksvg2/svg/SVGAngle.idl:
38212         * ksvg2/svg/SVGElement.idl:
38213         * ksvg2/svg/SVGLength.idl:
38214         * ksvg2/svg/SVGScriptElement.idl:
38216 2007-05-15  Sam Weinig  <sam@webkit.org>
38218         Reviewed by Oliver.
38220         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38221           Finish testing and fixing the setting of DOM attributes to JS null
38223           Convert JS null to null string for CanvasRenderingContext2D attributes.
38225         Test: fast/dom/canvasContext2d-element-attribute-js-null.html
38227         * html/CanvasRenderingContext2D.idl:
38229 2007-05-15  Oliver Hunt  <oliver@apple.com>
38231         Reviewed by Sam and Geoff.
38233         Removing dead code left behind from drag and drop refactoring.
38235         * page/mac/WebCoreFrameBridge.h:
38237 2007-05-15  Sam Weinig  <sam@webkit.org>
38239         Reviewed by Oliver.
38241         - Second Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38242           Finish testing and fixing the setting of DOM attributes to JS null
38244           Convert JS null to null string for remaining CSSOM attributes.
38246         Test: fast/dom/css-element-attribute-js-null.html
38248         * bindings/js/kjs_css.cpp:
38249         (KJS::DOMCSSStyleDeclaration::put):
38250         (KJS::DOMMediaList::put):
38251         (KJS::DOMCSSRule::putValueProperty):
38252         (KJS::DOMCSSValue::put):
38253         * css/CSSPageRule.idl:
38254         * css/CSSRule.idl:
38255         * css/CSSStyleDeclaration.idl:
38256         * css/CSSStyleRule.idl:
38257         * css/CSSValue.idl:
38258         * css/MediaList.idl:
38260 2007-05-15  Darin Adler  <darin@apple.com>
38262         Reviewed by Hyatt.
38264         * css/html4.css: Remove wbr style rule -- not needed any more.
38266 2007-05-15  Mitz Pettel  <mitz@webkit.org>
38268         Reviewed by Brady
38270         - fix http://bugs.webkit.org/show_bug.cgi?id=13360
38271           REGRESSION: Crash closing live web cam viewer page
38273         Test: http/tests/misc/multipart.html
38275         * loader/ResourceLoader.cpp:
38276         (WebCore::ResourceLoader::didFail): Avoid calling didFailToLoad() if
38277         didFinishLoad() has already been called (when the first part of a
38278         multipart resource arrived).
38279         (WebCore::ResourceLoader::didCancel): Ditto.
38281 2007-05-15  Sam Weinig  <sam@webkit.org>
38283         Reviewed by Darin.
38285         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38286           Finish testing and fixing the setting of DOM attributes to JS null
38288           Convert JS null to null string for remaining Core DOM attributes.
38290         Test: fast/dom/coreDOM-element-attribute-js-null.xhtml
38292         * dom/Attr.cpp:
38293         (WebCore::Attr::setValue): Don't throw an expection for null values as this
38294         is not in the spec and Firefox does not do it either.
38295         * dom/Attr.idl:
38296         * dom/CharacterData.idl:
38297         * dom/ProcessingInstruction.idl:
38299 2007-05-15  Mitz Pettel  <mitz@webkit.org>
38301         Reviewed by Hyatt.
38303         - fix http://bugs.webkit.org/show_bug.cgi?id=13718
38304           REGRESSION (r21093): editing/execCommand/5136770.html failing pixel test
38306         * rendering/RenderContainer.cpp:
38307         (WebCore::RenderContainer::removeChildNode): Moved the code that clears the
38308         selection when moving a selection border into the fast path.
38310 2007-05-15  Rob Buis  <buis@kde.org>
38312         Reviewed by Hyatt.
38314         http://bugs.webkit.org/show_bug.cgi?id=6487
38315         "Make Text Bigger/Smaller" affects SVGs when it probably shouldn't
38317         Ignore Make Text Bigger/Smaller for SVG text.
38319         * css/svg.css:
38321 2007-05-15  Anders Carlsson  <andersca@apple.com>
38323         Reviewed by Maciej.
38325         <rdar://problem/5183685>
38326         http://bugs.webkit.org/show_bug.cgi?id=13301
38327         ASSERT or null value when trying to use a getter defined on a window object
38329         Handle the case where the value returned is a getter/setter object.
38330         
38331         * bindings/js/kjs_window.cpp:
38332         (KJS::Window::getOverridePropertySlot):
38334 2007-05-14  Anders Carlsson  <andersca@apple.com>
38336         Reviewed by Geoff.
38338         <rdar://problem/5200816>
38339         REGRESSION: With Shiira 1.2.2 , I can't open embedded link in flash object by clicking (http:/www.adobe.com )
38340         
38341         Shiira under some circumstances passes nil as the request to -[WebFrame loadRequest:]. ToT WebKit doesn't call any policy
38342         delegate methods in this case, which means that the page is actually being loaded. 
38343         
38344         This patch makes ToT WebKit behave in the same way as Tiger WebKit when the request is nil.
38345         
38346         * loader/FrameLoader.cpp:
38347         (WebCore::FrameLoader::checkNavigationPolicy):
38348         Don't continue without calling the navigation policy method if the request is null.
38349         
38350         (WebCore::FrameLoader::continueAfterNavigationPolicy):
38351         If the request can't be handled, don't continue the load.
38352         
38353         * platform/network/mac/ResourceRequestMac.mm:
38354         (WebCore::ResourceRequest::doUpdatePlatformRequest):
38355         Don't create an NSURLRequest object if the request is null.
38357 2007-05-15  Maciej Stachowiak  <mjs@apple.com>
38359         Reviewed by Hyatt and Lars.
38361         - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
38363         * WebCore.exp: export new symbol
38364         * loader/FrameLoader.cpp:
38365         (WebCore::FrameLoader::begin): move marker that we committed a real doc load from here...
38366         (WebCore::FrameLoader::transitionToCommitted): ...to here
38367         (WebCore::FrameLoader::frameHasLoaded): check that we have at least started loading something
38368         besides the initial empty doc.
38369         * loader/FrameLoader.h:
38371 2007-05-14  Justin Garcia  <justin.garcia@apple.com>
38373         Reviewed by ggaren
38374         
38375         <http://bugs.webkit.org/show_bug.cgi?id=13716>
38376         REGRESSION: Three new layout test failures
38377         
38378         Two failures are correct.  Updated their expected results.
38379         
38380         In fast/events/frame-tab-focus.html, as we advance
38381         through focusable nodes, we descend into a subframe
38382         to focus a node and then ascend out of it into the
38383         main frame to focus the next.  When we focus the main 
38384         frame, the node in that frame that was previously 
38385         focused and contains an inactive selection is focused 
38386         momentarily because setCaretVisible tries to focus the 
38387         node containing the caret.
38389         * page/Frame.cpp:
38390         (WebCore::Frame::setCaretVisible): Don't focus the
38391         node containing the caret. FocusController will focus
38392         the previously focused node (which will contain the
38393         caret) if necessary when the frame gains focus.
38394         
38395 2007-05-14  Maciej Stachowiak  <mjs@apple.com>
38397         Reviewed by Brady.
38399         - fixed <rdar://problem/5203036> REGRESSION: Assertion failure in WebCore::FrameLoader::restoreScrollPositionAndViewState() going back from fark.com Photoshop contest (13684)
38401         Test: http/tests/navigation/back-to-slow-frame.html
38402         
38403         * loader/FrameLoader.cpp:
38404         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Add needed early return.
38406 2007-05-14  Mitz Pettel  <mitz@webkit.org>
38408         Reviewed by Dave Hyatt.
38410         - fix http://bugs.webkit.org/show_bug.cgi?id=13603
38411           style leaks in washingtonpost.com
38412           also known as http://bugs.webkit.org/show_bug.cgi?id=8750
38413           w3c.org: incorrect recovery from unclosed <a> elements
38414           also known as http://bugs.webkit.org/show_bug.cgi?id=12808
38415           Handling of misnested tags results in entire page appearing as link
38416           also known as http://bugs.webkit.org/show_bug.cgi?id=12861
38417           Post text renders as link
38419         Test: fast/parser/residual-style-close-across-n-blocks.html
38421         * html/HTMLParser.cpp:
38422         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Changed to
38423         deal with multiple block crossings instead of bailing out, by doing multiple
38424         reparenting passes, starting from the outermost block.
38426 2007-05-14  Mitz Pettel  <mitz@webkit.org>
38428         Reviewed by Darin.
38430         - fix http://bugs.webkit.org/show_bug.cgi?id=13711
38431           REGRESSION - Bookmark Bar text rendering changed
38433         No test possible since this patch affects only Safari chrome.
38435         * platform/Font.cpp:
38436         (WebCore::Font::Font): Initialize m_isPlatformFont according to whether
38437         the Font object is derived from a FontPlatformData or not.
38438         * platform/Font.h:
38439         (WebCore::Font::isPlatformFont): Added. Returns whether this Font was
38440         derived from a platform font.
38441         * platform/mac/FontCacheMac.mm:
38442         (WebCore::FontCache::getFontDataForCharacters): Changed to not enable
38443         synthetic bold and italic in the fallback fonts if the original font
38444         was derived from a platform font.
38446 2007-05-14  Sam Weinig  <sam@webkit.org>
38448         Reviewed by Alice!
38450         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13541
38451           REGRESSION: Setting a DOMString attribute to JS null in the 
38452           JS bindings should default to converting to the empty string
38454           Convert JS null to the empty string when passing it to an attribute that takes
38455           a DOMString.
38457         Test: fast/dom/document-attribute-js-null.html
38458         Test: fast/dom/element-attribute-js-null.html
38460         * bindings/js/kjs_dom.cpp:
38461         (KJS::DOMNode::putValueProperty):
38462         * bindings/js/kjs_html.cpp:
38463         (KJS::JSHTMLDocument::putValueProperty):
38464         (KJS::JSHTMLElement::objectSetter):
38465         (KJS::JSHTMLElement::embedSetter):
38466         (KJS::JSHTMLElement::tableSetter):
38467         (KJS::JSHTMLElement::tableCaptionSetter):
38468         (KJS::JSHTMLElement::tableColSetter):
38469         (KJS::JSHTMLElement::tableSectionSetter):
38470         (KJS::JSHTMLElement::tableRowSetter):
38471         (KJS::JSHTMLElement::tableCellSetter):
38472         (KJS::JSHTMLElement::frameSetSetter):
38473         (KJS::JSHTMLElement::frameSetter):
38474         (KJS::JSHTMLElement::iFrameSetter):
38475         (KJS::JSHTMLElement::marqueeSetter):
38476         (KJS::JSHTMLElement::putValueProperty):
38477         * bindings/js/kjs_html.h:
38478         * dom/Document.idl:
38479         * dom/Node.idl:
38480         * html/HTMLAnchorElement.idl:
38481         * html/HTMLAppletElement.idl:
38482         * html/HTMLAreaElement.idl:
38483         * html/HTMLBRElement.idl:
38484         * html/HTMLBaseElement.idl:
38485         * html/HTMLBaseFontElement.idl:
38486         * html/HTMLBlockquoteElement.idl:
38487         * html/HTMLBodyElement.idl:
38488         * html/HTMLButtonElement.idl:
38489         * html/HTMLDivElement.idl:
38490         * html/HTMLDocument.idl:
38491         * html/HTMLElement.idl:
38492         * html/HTMLEmbedElement.idl:
38493         * html/HTMLFontElement.idl:
38494         * html/HTMLFormElement.idl:
38495         * html/HTMLFrameElement.idl:
38496         * html/HTMLFrameSetElement.idl:
38497         * html/HTMLHRElement.idl:
38498         * html/HTMLHeadElement.idl:
38499         * html/HTMLHeadingElement.idl:
38500         * html/HTMLHtmlElement.idl:
38501         * html/HTMLIFrameElement.idl:
38502         * html/HTMLImageElement.idl:
38503         * html/HTMLInputElement.idl:
38504         * html/HTMLIsIndexElement.idl:
38505         * html/HTMLLIElement.idl:
38506         * html/HTMLLabelElement.idl:
38507         * html/HTMLLegendElement.idl:
38508         * html/HTMLLinkElement.idl:
38509         * html/HTMLMapElement.idl:
38510         * html/HTMLMetaElement.idl:
38511         * html/HTMLModElement.idl:
38512         * html/HTMLOListElement.idl:
38513         * html/HTMLObjectElement.idl:
38514         * html/HTMLOptGroupElement.idl:
38515         * html/HTMLOptionElement.idl:
38516         * html/HTMLParagraphElement.idl:
38517         * html/HTMLParamElement.idl:
38518         * html/HTMLQuoteElement.idl:
38519         * html/HTMLScriptElement.idl:
38520         * html/HTMLSelectElement.idl:
38521         * html/HTMLStyleElement.idl:
38522         * html/HTMLTableCaptionElement.idl:
38523         * html/HTMLTableCellElement.idl:
38524         * html/HTMLTableColElement.idl:
38525         * html/HTMLTableElement.idl:
38526         * html/HTMLTableRowElement.idl:
38527         * html/HTMLTableSectionElement.idl:
38528         * html/HTMLTextAreaElement.idl:
38529         * html/HTMLTitleElement.idl:
38530         * html/HTMLUListElement.idl:
38532 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
38534         Trying to fix the Qt build.
38536         * WebCore.pro:
38538 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
38540         Reviewed by Oliver Hunt.
38541         
38542         Some improvements on my last patch, suggested by Darin.
38544         * history/PageCache.cpp:
38545         (WebCore::PageCache::autoreleaseNow): Swap with an empty set instead of 
38546         building up an array and then calling clear(). This is slightly more 
38547         efficient and the code is cleaner.
38549 2007-05-14  Justin Garcia  <justin.garcia@apple.com>
38551         Reviewed by darin
38552         
38553         <rdar://problem/5136696> Selection is removed when focusing a node in another frame
38554         <rdar://problem/5192388> WordPress: Can't insert links/images
38555         
38556         Don't clear a selection when changing focus if the new
38557         focus node is in a different frame than the old selection.
38559         * dom/Document.cpp:
38560         (WebCore::Document::setFocusedNode): Moved code to clear 
38561         selections to the FocusController, since it is Page level 
38562         and will know about the frame/document that contained the 
38563         old selection. Moved code to call shouldEndEditing to the 
38564         FocusController because selections are now cleared before
38565         calling Document::setFocusedNode and shouldEndEditing must
38566         be called before selections are cleared.
38567         * dom/Element.cpp:
38568         (WebCore::Element::blur): Call FocusController::setFocusNode
38569         instead of Document::setFocusNode, if possible.
38570         * page/EventHandler.cpp:
38571         (WebCore::EventHandler::dispatchMouseEvent): Ditto.
38572         * page/FocusController.cpp:
38573         (WebCore::relinquishesEditingFocus): Moved from Document.cpp.
38574         (WebCore::clearSelectionIfNeeded): Ditto.  Don't clear if
38575         the old selection is in a frame that's different than the 
38576         one that contains the new focus node.
38577         (WebCore::FocusController::setFocusedNode): Moved code
38578         here from Document::setFocusedNode.
38579         * page/Frame.cpp:
38580         (WebCore::Frame::setFocusedNodeIfNeeded): Call
38581         FocusController::setFocusNode.
38583 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
38585         Reviewed by Darin Adler.
38586         
38587         Next step toward fixing <rdar://problem/5055182> The back cache has no 
38588         global cap.
38589         
38590         Created a PageCache singleton. Right now, it only handles the timer-based
38591         deallocation of cached pages. I plan to add HistoryItem->CachedPage tracking
38592         and eviction logic in later patches.
38594         Updated for renames and file changes:
38596         * WebCore.exp:
38597         * WebCore.xcodeproj/project.pbxproj:
38598         * history/BackForwardList.cpp:
38599         (WebCore::BackForwardList::setPageCacheSize):
38600         (WebCore::BackForwardList::clearPageCache):
38602         Removed global timed release code, moved into new PageCache class, since
38603         it's eventually going to be in charge of deciding when things are released:
38604         
38605         * history/HistoryItem.cpp:
38606         (WebCore::HistoryItem::setCachedPage):
38607         * history/HistoryItem.h:
38609         Folded into PageCache:
38610         
38611         * history/HistoryItemTimer.cpp: Removed.
38612         * history/HistoryItemTimer.h: Removed.
38614         New singleton. Right now, it just handles timed release of cached pages:
38615         
38616         * history/PageCache.cpp: Added.
38617         (WebCore::pageCache):
38618         (WebCore::PageCache::PageCache):
38619         (WebCore::PageCache::autoreleaseNowOrReschedule):
38620         (WebCore::PageCache::autoreleaseNow):
38621         (WebCore::PageCache::autorelease):
38622         * history/PageCache.h: Added.
38624 2007-05-14  Adele Peterson  <adele@apple.com>
38626         Reviewed by Darin.
38628         Fix for <rdar://problem/5200081> Repro crash in PopupMenu::show clicking popup menu button after reload
38630         * platform/mac/PopupMenuMac.mm: (WebCore::PopupMenu::show): Added call to dismissPopup so the cell gets unattached properly.
38632 2007-05-14  Adele Peterson  <adele@apple.com>
38634         Reviewed by Darin.
38636         Remove incorrect assertion.
38638         * page/FrameView.cpp: (WebCore::FrameView::setContentsPos):
38640 2007-05-14  Anders Carlsson  <andersca@apple.com>
38642         Reviewed by Geoff.
38644         <rdar://problem/5172056> Regression: cannot open txt file, get broken image
38646         Never let plug-ins override text/plain.
38647         
38648         * dom/DOMImplementation.cpp:
38649         (WebCore::DOMImplementation::createDocument):
38651 2007-05-14  Zack Rusin  <zrusin@trolltech.com>
38653         Reviewed by Simon.
38655         Do some magic to get better dependency tracking for header
38656         files in the qmake project files.
38658         * ChangeLog:
38660 2007-05-14  Lars Knoll <lars@trolltech.com>
38662         Reviewed by Zack
38664         Required updates after Maciej's frame change.
38666         * loader/FrameLoader.cpp:
38667         (WebCore::FrameLoader::mainReceivedCompleteError):
38668               Call checkLoadCompleted() at the end of the method. Without it
38669               we never get the loadDone() signal on the Qt port.
38670         * platform/network/qt/ResourceHandleManagerQt.cpp:
38671         (WebCore::ResourceHandleManager::receivedFinished):
38672               Don't pass a null error to didFail().
38674 2007-05-14  Darin Adler  <darin@apple.com>
38676         Reviewed by Antti.
38678         - fix <rdar://problem/3109180> VIP: after go back, page jumps after loading even if I scrolled while loading
38680         * history/CachedPage.cpp: (WebCore::CachedPage::clear): Call clearFrame rather than
38681         clearPart -- the "part" term was leftover prehistoric terminology.
38683         * loader/FrameLoader.cpp:
38684         (WebCore::FrameLoader::open): Call setWasScrolledByUser(false) on the page, so that we
38685         can detect any user scrolling that happens during the "go back" process.
38686         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Don't scroll if the view's
38687         wasScrolledByUser flag is set.
38688         (WebCore::FrameLoader::loadItem): Call setWasScrolledByUser(false) false when we do
38689         a new "load" (actually just a scroll) using the same frame. Also moved the line of code that
38690         sets m_currentHistoryItem to make this code path mroe similar to recursiveGoToItem.
38691         (WebCore::FrameLoader::recursiveGoToItem): Ditto.
38693         * page/Frame.cpp:
38694         (WebCore::Frame::~Frame): Call clearFrame rather than stting m_frame directly.
38695         (WebCore::Frame::sendScrollEvent): Call setWasScrolledByUser(true) on FrameView. The FrameView
38696         itself knows to ignore this if the scrolling is being done programmatically instead of by the user.
38698         * page/FrameView.h: Added wasScrolledByUser and setWasScrolledByUser. Also removed unneeded
38699         include and class forward declarations, renamed clearPart to clearFrame, removed uneeded function
38700         haveDelayedLayoutScheduled, and removed unneeded friend declarations.
38701         * page/FrameView.cpp:
38702         (WebCore::FrameViewPrivate::FrameViewPrivate): Added m_inProgrammaticScroll and m_wasScrolledByUser.
38703         (WebCore::FrameViewPrivate::reset): Set m_wasScrolledByUser to false.
38704         (WebCore::FrameView::clearFrame): Renamed from clearPart.
38705         (WebCore::FrameView::scrollRectIntoViewRecursively): Added code to set the m_inProgrammaticScroll flag.
38706         (WebCore::FrameView::setContentsPos): Ditto.
38707         (WebCore::FrameView::wasScrolledByUser): Added.
38708         (WebCore::FrameView::setWasScrolledByUser): Added. Does nothing if called when m_inProgrammaticScroll
38709         is true.
38711 2007-05-14  Darin Adler  <darin@apple.com>
38713         Reviewed by Antti.
38715         - <rdar://problem/4865655> REGRESSION: find function does not work for the character ß
38717         The trick was to fold case consistently in the CircularSearchBuffer class.
38719         The problem was that we were folding the search target string with full case folding and
38720         the characters of the text we were searching with simple case folding. We now use full
38721         case folding in both cases.
38723         * editing/TextIterator.cpp:
38724         (WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed the buffer to be a
38725         Vector<UChar>. Added a Vector<bool> to record which characters were starts of characters
38726         in the text we are searching. Changed the cursor to be an int rather than a pointer.
38727         (WebCore::CircularSearchBuffer::append): New function that knows how to append multiple
38728         characters when folding case turns one character into many -- uses the full foldCase
38729         rather than the simplified single-character foldCase. Also removed the append function
38730         that did multiple characters at once; that was part of an optimization we don't need.
38731         (WebCore::CircularSearchBuffer::isMatch): Instead of asserting that the buffer is full,
38732         changed this to return false if it's not full, which lets us fill up the buffer with
38733         the normal loop. Also return false if the start of the buffer is half-way through a
38734         case-folded character and updated this since m_cursor is now an integer.
38735         (WebCore::CircularSearchBuffer::length): This returns the length in non-case-folded
38736         characters of the characters that were appended, which may not be the same as the length
38737         of the original target string. To do that we have to total up the character start
38738         booleans for the current state of the circular buffer.
38739         (WebCore::findPlainText): Streamlined the logic in a few ways: 1) Moved more of the
38740         return value setup to the top of the function so it could be shared with the early
38741         error exit. 2) Removed the separate "fill the buffer" logic, which allowed me to
38742         remove some of the functions from CircularSearchBuffer and eliminated the need for
38743         two nested loops. 3) Replaced the CharacterIterator and bool that were used to record
38744         the location we found with integers matchStart and matchLength. 4) Got rid of the use
38745         of goto since we don't have two nested loops any more.
38747 2007-05-14  Andrew Wellington  <proton@wiretapped.net>
38749         Reviewed by Darin.
38751         Fix http://bugs.webkit.org/show_bug.cgi?id=13275
38752         Safari crashed when trying to login using the windows live contact control
38754         Check for cleared windowObj in JSAbstractEventListener::handleEvent
38756         * bindings/js/kjs_events.cpp:
38757         (KJS::JSAbstractEventListener::handleEvent):
38759 2007-05-13  Alexey Proskuryakov  <ap@webkit.org>
38761         Reviewed by Darin.
38763         http://bugs.webkit.org/show_bug.cgi?id=13690
38764         JavaScript Form Validation issue on Banco do Brasil site
38766         Test: fast/forms/input-setvalue-selection.html
38768         * html/HTMLInputElement.cpp:
38769         (WebCore::HTMLInputElement::setValue): In other browsers, changing textInput.value
38770         always moves the insertion point past the text. In 10.4.9 WebKit, this only worked
38771         for inactive controls, and it never worked in ToT.
38773 2007-05-13  Brady Eidson  <beidson@apple.com>
38775         Reviewed by Mitz
38777         http://bugs.webkit.org/show_bug.cgi?id=13701
38779         Since HTMLInputElements register themselves with their Document for special handling, if their document
38780         ever changes then bad things can happen.
38782         Unfortunately, with adoptNode, the document can change.  This has been a long standing crasher with all 
38783         input fields but was given recent high visibility by r21430
38785         The solution is to add functionality for a Node to react to its owner document changing via a pair of 
38786         virtual callbacks.  Then we can tap into those callbacks in HTMLInputElement.
38788         No layout test possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
38790         * dom/Node.cpp:
38791         (WebCore::Node::setDocument): Call willMoveToNewOwnerDocument and didMoveToNewOwnerDocument
38793         * dom/Node.h:
38794         (WebCore::Node::willMoveToNewOwnerDocument): Virtual callback to a node for before an owner document change
38795         (WebCore::Node::didMoveToNewOwnerDocument): Virtual callback to a node for after an owner document change
38797         * html/HTMLInputElement.cpp:
38798         (WebCore::HTMLInputElement::~HTMLInputElement): Unconditionally unregister both for both form state
38799           and the cache restoration callback
38800         (WebCore::HTMLInputElement::setInputType): Change registration with the document only if we're in one
38801         (WebCore::HTMLInputElement::attach): Don't bother registering for the callback here - that will be
38802           handled by setInputType() or by a change in owner document
38803         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Unregister with the old owner document
38804         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Register with the new owner document
38805         * html/HTMLInputElement.h:
38807 2007-05-13  Darin Adler  <darin@apple.com>
38809         * platform/mac/TextBreakIteratorInternalICUMac.mm: Fix comment typo.
38811 2007-05-13  Rob Buis  <buis@kde.org>
38813         Reviewed by Darin.
38815         http://bugs.webkit.org/show_bug.cgi?id=13529
38816         DOM3 keyIdentifier text is incorrect
38818         Use 4 digits for the Unicode based key identifiers.
38820         * html/HTMLButtonElement.cpp:
38821         (WebCore::HTMLButtonElement::defaultEventHandler):
38822         * html/HTMLInputElement.cpp:
38823         (WebCore::HTMLInputElement::defaultEventHandler):
38824         * html/HTMLSelectElement.cpp:
38825         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
38826         * page/EventHandler.cpp:
38827         (WebCore::EventHandler::defaultKeyboardEventHandler):
38828         * page/gdk/EventHandlerGdk.cpp:
38829         (WebCore::isKeyboardOptionTab):
38830         * page/mac/EventHandlerMac.mm:
38831         (WebCore::isKeyboardOptionTab):
38832         * page/qt/EventHandlerQt.cpp:
38833         (WebCore::isKeyboardOptionTab):
38834         * platform/gdk/KeyEventGdk.cpp:
38835         (WebCore::keyIdentifierForGdkKeyCode):
38836         * platform/mac/KeyEventMac.mm:
38837         (WebCore::keyIdentifierForKeyEvent):
38838         * platform/qt/PlatformKeyboardEventQt.cpp:
38839         (WebCore::keyIdentifierForQtKeyCode):
38840         * platform/win/KeyEventWin.cpp:
38841         (WebCore::keyIdentifierForWindowsKeyCode):
38842         * platform/wx/KeyEventWin.cpp:
38843         (WebCore::keyIdentifierForWindowsKeyCode):
38844         * platform/wx/KeyboardEventWx.cpp:
38845         (WebCore::keyIdentifierForWxKeyCode):
38847 2007-05-12  Darin Adler  <darin@apple.com>
38849         Reviewed by Antti.
38851         - fix <rdar://problem/5174903> Safari crashes opening the attached webarchive (made by OmniWeb)
38853         * loader/icon/IconLoader.cpp:
38854         (WebCore::IconLoader::didReceiveResponse): Check ResourceHandle for nil before calling url() on it.
38855         (WebCore::IconLoader::didFail): Ditto.
38856         (WebCore::IconLoader::didFinishLoading): Ditto.
38858 2007-05-12  Rob Buis  <buis@kde.org>
38860         Reviewed by Oliver.
38862         Cleanup, get rid of the SVGStyledElement::view() call.
38864         * ksvg2/svg/SVGClipPathElement.cpp:
38865         (WebCore::SVGClipPathElement::canvasResource):
38866         * ksvg2/svg/SVGFEFloodElement.cpp:
38867         (WebCore::SVGFEFloodElement::filterEffect):
38868         * ksvg2/svg/SVGGradientElement.cpp:
38869         (WebCore::SVGGradientElement::buildStops):
38870         * ksvg2/svg/SVGStyledElement.cpp:
38871         * ksvg2/svg/SVGStyledElement.h:
38873 2007-05-12  Mitz Pettel  <mitz@webkit.org>
38875         Reviewed by Hyatt.
38877         - fix http://bugs.webkit.org/show_bug.cgi?id=13680
38878           Incomplete repaint of focus ring around continuation
38880         Test: fast/repaint/continuation-after-outline.html
38882         * rendering/RenderFlow.cpp:
38883         (WebCore::RenderFlow::absoluteClippedOverflowRect):
38885 2007-05-12  Oliver Hunt  <oliver@apple.com>
38887         Reviewed by Hyatt.
38889         <rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
38890         
38891         This patch allows a file to be dropped on to a file input field.  There
38892         are a few changes for data handling and a  few to allow the data to be
38893         threaded to the appropriate places.
38895         * page/DragController.cpp:
38896         (WebCore::asFileInput):
38897            When dropping a file onto a file input we may mouse over either 
38898            the element itself, or the contained button element.  This method
38899            returns the base element for the file input in either of these
38900            cases.
38901         (WebCore::DragController::tryDocumentDrag):
38902            Don't try to set the drag caret to a file input.
38903         (WebCore::DragController::concludeDrag):
38904            Handle dropping onto a file input element.
38905         (WebCore::DragController::canProcessDrag):
38906            We can now process a file being dragged onto a file input element.
38907            
38908         * platform/DragData.h:
38909            New accessors
38910            
38911         * platform/gdk/DragDataGdk.cpp:
38912         (WebCore::DragData::containsFiles):
38913         (WebCore::DragData::asFilenames):
38914            Link stubs.
38915            
38916         * platform/mac/DragDataMac.mm:
38917         (WebCore::DragData::containsFiles):
38918         (WebCore::DragData::asFilenames):
38919            Implement new accessors
38920         (WebCore::DragData::containsCompatibleContent):
38921            Update containsCompatibleContent to allow standalone files.
38922           
38923         * platform/qt/DragDataQt.cpp:
38924         (WebCore::DragData::containsFiles):
38925         (WebCore::DragData::asFilenames):
38926            Link stubs
38927                       
38928         * rendering/RenderFileUploadControl.cpp:
38929         (WebCore::RenderFileUploadControl::receiveDroppedFile):
38930         * rendering/RenderFileUploadControl.h:
38931            For security reasons we don't have an api to allow us to set 
38932            a value directly on a file input -- attempts to do so are
38933            blocked.  By adding a method to set the target through the 
38934            render we bypass such restrictions, and ensure the renderer
38935            is updated correctly.
38937 2007-05-12  Mitz Pettel  <mitz@webkit.org>
38939         Reviewed by Hyatt.
38941         - fix http://bugs.webkit.org/show_bug.cgi?id=13695
38942           REGRESSION (r21387): Replaced elements' highlight rects are wrongly positioned
38944         Test: fast/replaced/selection-rect.html
38946         Also fixes the same problem with list markers, covered by existing test
38947         fast/lists/markers-in-selection.html.
38949         * rendering/RenderListMarker.cpp:
38950         (WebCore::RenderListMarker::selectionRect):
38951         * rendering/RenderReplaced.cpp:
38952         (WebCore::RenderReplaced::selectionRect):
38954 2007-05-12  Mitz Pettel  <mitz@webkit.org>
38956         Reviewed by Darin.
38958         - fix http://bugs.webkit.org/show_bug.cgi?id=13685
38959           REGRESSION (r21368-r21388): Highlighting text in scrolled textareas behaves oddly
38961         Test: fast/repaint/text-selection-rect-in-overflow.html
38963         * rendering/RenderText.cpp:
38964         (WebCore::RenderText::selectionRect):
38966 2007-05-12  Brady Eidson  <beidson@apple.com>
38968         Rubber stamped by Mitz
38970         * html/HTMLInputElement.cpp:
38971         (WebCore::HTMLInputElement::attach): unregister->register - I screwed this one up in last minute renaming
38972           before committing  :(
38974 2007-05-11  Brady Eidson  <beidson@apple.com>
38976         Reviewed by Darin and Geoff
38978         Fix for http://bugs.webkit.org/show_bug.cgi?id=13630
38979         and
38980         <rdar://problem/4873628>
38982         Back/Forward cache should work with pages with login fields.
38984         First change is to relocate the "useSecureKeyboardEntry" flag to the document.  This lets
38985         it persist through page cache transitions and it is truly a per-document concept more than
38986         per-frame anyways since its the document that has a password field, not the frame.
38988         Second change is to introduce the concept of an Element getting a "didRestoreFromCache()" callback.
38989         The idea is for elements to register with the document if they need work to be done when the
38990         page comes out of the back/forward cache.  Currently the only client of this service is 
38991         HTMLInputElements that are input type == PASSWORD.  Such an element's implementation for this
38992         method is to call reset()
38994         Finally, after a page is restored from the cache we have the document send the didRestoreFromCache()
38995         callback to its registered Elements.  The whole design is to clear the password fields after 
38996         restoring the page instead of when caching the page because we want to defer work for the common
38997         case - there shouldn't be extra work here just to navigate away from a page when the common case
38998         is that you'll never go back!
39000         No layout tests possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
39002         * dom/Document.cpp:
39003         (WebCore::Document::Document):
39004         (WebCore::Document::registerForDidRestoreFromCacheCallback): Add an Element to the special page-restoration callback list
39005         (WebCore::Document::unregisterForDidRestoreFromCacheCallback): Remove such an element
39006         (WebCore::Document::didRestoreFromCache): Called by FrameLoader - dispatch to all the registered elements
39007         (WebCore::Document::setUseSecureKeyboardEntryWhenActive): Set the local flag and call updateSecureKeyboardEntryIfActive
39008           on the Frame
39009         (WebCore::Document::useSecureKeyboardEntryWhenActive): Return the flag
39011         * dom/Document.h:
39012         (WebCore::Document::unregisterFormElementWithState): Renamed
39014         * dom/Element.h:
39015         (WebCore::Element::didRestoreFromCache): Added virtual base method
39017         * html/HTMLInputElement.cpp:
39018         (WebCore::HTMLInputElement::~HTMLInputElement): Deregister from the document if inputType == PASSWORD
39019         (WebCore::HTMLInputElement::dispatchFocusEvent): Set the flag on the document, not the frame
39020         (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto
39021         (WebCore::HTMLInputElement::setInputType): If changing to/from PASSWORD, register/deregister in the document accordingly
39022         (WebCore::HTMLInputElement::attach): Call registerForDidRestoreFromCacheCallback(this) instead of passwordFieldAdded()
39023         (WebCore::HTMLInputElement::didRestoreFromCache): Call reset();
39024         * html/HTMLInputElement.h:
39026         * html/HTMLSelectElement.cpp:
39027         (WebCore::HTMLSelectElement::~HTMLSelectElement): Renamed deregisterFormElementWithState to unregisterFormElementWithState
39028         * html/HTMLTextAreaElement.cpp:
39029         (WebCore::HTMLTextAreaElement::~HTMLTextAreaElement): Ditto
39031         * loader/FrameLoader.cpp:
39032         (WebCore::FrameLoader::canCachePage): Remove the check for password fields - they're allowed now!
39033         (WebCore::FrameLoader::opened): Tell the document to dispatch to the registered elements
39034         (WebCore::FrameLoader::saveDocumentState): Remove the check for password fields.  Turns out that when we grab a copy a the
39035           form state we're only copying the state of form elements that are registered with the Document - and that set 
39036           explicitly excludes Password elements
39038         * page/Frame.cpp:
39039         (WebCore::Frame::setDocument): If the frame is active, set the setUseSecureKeyboardEntry based on the setting contained
39040           in the new document
39041         (WebCore::Frame::updateSecureKeyboardEntryIfActive): Notification for the secure entry flag changing - if the Frame is
39042           active, then update to the new setting from the document
39043         (WebCore::Frame::setIsActive): Grab the useSecureKeyboardEntry flag from the document instead of FramePrivate
39044         (WebCore::FramePrivate::FramePrivate):
39045         * page/Frame.h:
39046         * page/FramePrivate.h:
39048 2007-05-12  David Hyatt  <hyatt@apple.com>
39050         FIx for 13696.  Rework residual style to be much more aggressive about reopening.  Added
39051         a comprehensive test case of HTML tags to guarantee we match Firefox.  We now have an exclusion
39052         set rather than an inclusion set, so unknown future tags will also participate in residual style.
39054         Reviewed by olliej
39056         fast/invalid/residual-style.html
39058 2007-05-12  David Hyatt  <hyatt@apple.com>
39060         Fix for bug 12740, bmw.com doesn't work.  We were missing a rule that is covered by the HTML5
39061         parsing spec.  A <table> encountered while inside stray table content should close up the
39062         table responsible for the stray content and start the new table as a sibling of the first.
39064         Reviewed by mjs
39066         fast/invalid/table-inside-stray-table-content.html
39068 2007-05-12  Eric Seidel  <eric@webkit.org>
39070         Reviewed by mjs.
39072         Crash starting Safari with JavaScript disabled.
39073         http://bugs.webkit.org/show_bug.cgi?id=13691
39074         
39075         Test: none possible.
39077         * page/mac/FrameMac.mm:
39078         (WebCore::Frame::cleanupPlatformScriptObjects): NULL check d->m_script
39080 2007-05-11  David Hyatt  <hyatt@apple.com>
39082         Fix for http://bugs.webkit.org/show_bug.cgi?id=13688, Colloquy is broken!
39084         Make sure to adjust the baseline of a percentage height table cell's row if the
39085         cell flexes (and lowers the baseline).
39087         Reviewed by olliej
39089         fast/tables/vertical-align-baseline-readjust.html
39091         (WebCore::RenderTableSection::calcRowHeight):
39092         (WebCore::RenderTableSection::layoutRows):
39093         * rendering/RenderTableSection.h:
39094         (WebCore::RenderTableSection::getBaseline):
39095         
39096 2007-05-11  David Hyatt  <hyatt@apple.com>
39098         Make sure focus rings are always using the exterior style, regardless
39099         of what the OS default is.
39101         Reviewed by beth
39103         * rendering/RenderThemeMac.mm:
39104         (WebCore::RenderThemeMac::checkbox):
39105         (WebCore::RenderThemeMac::radio):
39106         (WebCore::RenderThemeMac::popupButton):
39107         (WebCore::RenderThemeMac::search):
39108         (WebCore::RenderThemeMac::sliderThumbHorizontal):
39109         (WebCore::RenderThemeMac::sliderThumbVertical):
39111 2007-05-11  Oliver Hunt  <oliver@apple.com>
39113         Reviewed by Hyatt.
39114         
39115         <rdar://problem/5195473> REGRESSION: "Curly quote" fails to 
39116         be displayed correctly even when META tag specifies charset=x-mac-roman
39119         * platform/TextCodecICU.cpp:
39120         (WebCore::TextCodecICU::registerExtendedEncodingNames):
39121         Register the xmacroman encoding
39123 2007-05-11  Maciej Stachowiak  <mjs@apple.com>
39125         Reviewed by Hyatt.
39127         REGRESSION (r21367): Crash due to null document deref when closing bookmarks
39128         http://bugs.webkit.org/show_bug.cgi?id=13662
39130         * loader/FrameLoader.cpp:
39131         (WebCore::FrameLoader::provisionalLoadStarted): Remove some useless and now harmful
39132         code - there's no need to clear in this case.
39134 2007-05-11  Oliver Hunt  <oliver@apple.com>
39136         GDK Build fix
39138         * ChangeLog:
39139         * dom/Document.cpp:
39140         (WebCore::Document::importNode):
39142 2007-05-11  Maciej Stachowiak  <mjs@apple.com>
39144         Reviewed by Geoff.
39145         
39146         - fixed <rdar://problem/5197621> closing second window crashed webkit (13660)
39147         http://bugs.webkit.org/show_bug.cgi?id=13660
39149         No test case; not testable.
39151         * page/mac/FrameMac.mm:
39152         (WebCore::Frame::cleanupPlatformScriptObjects): Check if the interpreter is null;
39153         if so, we don't want to do work that may lazily create it while the Frame is being
39154         destroyed.
39156 2007-05-11  Oliver Hunt  <oliver@apple.com>
39158         Reviewed by Brady.
39159         
39160         <rdar://problem/5017375> WebKit should disable SVG in Dashboard
39161         
39162         Prevents an SVG document or element from being created when in
39163         dashboard compatibility mode.
39164         
39165         Manually parsing, or using XHR to created a document removes our 
39166         ability to detect Dashboard compatibility mode, so we also perform
39167         the check when importing nodes from one document into another.
39169         * dom/DOMImplementation.cpp:
39170         (WebCore::DOMImplementation::createDocument):
39171           Don't create an SVGDocument if we're in dashboard compatibility mode
39172           
39173         * dom/Document.cpp:
39174         (WebCore::Document::importNode):
39175           Don't import SVG nodes if we're in dashboard compatibility mode
39176           
39177         * ksvg2/scripts/make_names.pl:
39178           Don't create SVG elements for documents that are in dashboard
39179           compatibility mode
39181 2007-05-11  Holger Hans Peter Freyther  <zecke@selfish.org>
39183         Reviewed by Maciej.
39185         Bug 13676: [cairo/gdk] Provide implementation for ImageBufferCairo
39186         http://bugs.webkit.org/show_bug.cgi?id=13676
39188         There are no test cases that explicitly cover platform/graphics at present.
39190         * platform/graphics/ImageBuffer.h: Add cairo bits
39191         * platform/graphics/cairo/ImageBufferCairo.cpp: Untested implementation of the ImagerBuffer using the image_surface
39192         (WebCore::ImageBuffer::create): Create a reasonable sized surface
39193         (WebCore::ImageBuffer::ImageBuffer): Use a cairo_surface and create a GraphicsContext. GraphicsContext takes the cairo_t ownership
39194         (WebCore::ImageBuffer::~ImageBuffer): Unref the surface
39195         (WebCore::ImageBuffer::context): simply return the GraphicsContext, it should be possible to directly draw on it.
39197 2007-05-11  Mitz Pettel  <mitz@webkit.org>
39199         Release build fix.
39201         * platform/mac/ShapeArabic.c:
39202         (shapeArabic):
39204 2007-05-11  Geoffrey Garen  <ggaren@apple.com>
39206         Reviewed by Darin Adler.
39208         Removed +[WebScriptObject scriptObjectForJSObject:frame:] because the
39209         WebScriptObject API has some serious limitations that make it not ready
39210         to be used everywhere the C API is used. Hopefully we can add a good
39211         ObjC API in the future that doesn't suffer from this problem.
39212         
39213         Preliminary notes about these limitations are in <rdar://problem/4876466>.
39215         * bindings/objc/WebScriptObject.mm:
39216         * bindings/objc/WebScriptObjectPendingPublic.h:
39218 2007-05-11  Mitz Pettel  <mitz@webkit.org>
39220         Reviewed by Darin.
39222         - fix http://bugs.webkit.org/show_bug.cgi?id=13635
39223           REGRESSION: Cannot log in to webmail.co.za account
39225         Test: fast/dom/HTMLOptionElement/option-text.html
39227         Despite the specification that the 'text' attribute of HTMLOptionElement
39228         is "the text contained within the option element", other browsers return
39229         the text as displayed in the list box or popup, which is without leading,
39230         trailing and collapsible whitespace.
39232         * html/HTMLOptionElement.cpp:
39233         (WebCore::HTMLOptionElement::text): Moved the code to trim and collapse
39234         whitespace and replace backslashes with the currency symbol into this
39235         function.
39236         (WebCore::HTMLOptionElement::optionText): Left only the code that adds
39237         the leading spaces for grouped options. Removed code that, in quirks mode,
39238         displayed the label if the option element contained no text. That behavior
39239         did not match WinIE and the description of the expected behavior in
39240         fast/forms/HTMLOptionElement_label06.html.
39242 2007-05-11  Mitz Pettel  <mitz@webkit.org>
39244         Reviewed by Darin.
39246         - fix http://bugs.webkit.org/show_bug.cgi?id=13572
39247           Arabic characters are not correctly joined when using Arial
39249         No tests added because standard fonts do not use the character-based shaping
39250         code path.
39252         Added shapeArabic(), a private version of u_shapeArabic() from ICU,
39253         patched to shape Arabic characters used in Persian, Urdu, Sindhi, etc.
39254         (whose contextual forms belong to the Arabic Presentation Forms-A block).
39256         * WebCore.xcodeproj/project.pbxproj: Added ShapeArabic.{c,h}.
39257         * platform/mac/FontMac.mm:
39258         (WebCore::shapeArabic): Changed to call shapeArabic() instead of u_shapeArabic().
39259         * platform/mac/ShapeArabic.c: Added. Based on ushape.c from ICU, with
39260         additional shaping data and logic for Arabic Presentation Forms-A. Removed
39261         many options that are not used in WebKit and code that malloc()ed a temporary
39262         buffer and reversed the string.
39263         (changeLamAlef):
39264         (specialChar):
39265         (getLink):
39266         (isTashkeelChar):
39267         (shapeUnicode):
39268         (shapeArabic):
39269         * platform/mac/ShapeArabic.h: Added.
39271 2007-05-11  Darin Adler  <darin@apple.com>
39273         Reviewed by Mitz.
39275         - fix http://bugs.webkit.org/show_bug.cgi?id=7452
39276           <rdar://problem/3211749> line breaks ignored after <wbr> in <pre> block (affects livejournal.com)
39278         - fix http://bugs.webkit.org/show_bug.cgi?id=10657
39279           <rdar://problem/4274588> <wbr> tags are ignored
39281         - fix http://bugs.webkit.org/show_bug.cgi?id=12689
39282           <wbr> :before/:after content causes line break
39284         - fix <rdar://problem/5127366> DOM tree isn't correct when parsing with <wbr>
39286         Test: fast/text/wbr-pre.html
39287         Test: fast/text/wbr.html
39288         Test: fast/css-generated-content/wbr-with-before-content.html
39289         Test: fast/parser/parse-wbr.html
39291         * html/HTMLElement.h:
39292         * html/HTMLElement.cpp:
39293         (WebCore::HTMLElement::endTagRequirement): Use the same end tag requirement for a <wbr>
39294         element as for a <br> element, TagStatusForbidden.
39295         (WebCore::HTMLElement::tagPriority): Use the same priority for a <wbr> element as for a
39296         <br> element, 0.
39297         (WebCore::HTMLElement::createRenderer): Added. Create a RenderWordBreak to trigger the
39298         new rendering code paths.
39300         * rendering/RenderFlow.h: Add a virtual isWordBreak so we can detect RenderWordBreak.
39302         * rendering/RenderWordBreak.h: Added.
39303         * rendering/RenderWordBreak.cpp: Added.
39305         * WebCore.pro: Added new files.
39306         * WebCore.xcodeproj/project.pbxproj: Added new files.
39307         * WebCoreSources.bkl: Added new files.
39309         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::calcInlinePrefWidths): Reset the
39310         line when we hit a <wbr>.
39311         * rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): Add a line break when
39312         we hit a <wbr>.
39314         * dom/Node.cpp: (Node::createRendererIfNeeded): Fix a null check for the case where
39315         createRenderer returns 0 even though rendererIsNeeded returned true. I can't reproduce
39316         it on demand, but while running layout tests I hit this once. Since there was already
39317         a null check here, I rearranged it so it guards all the code that uses the renderer.
39318         Later we might want to figure out under exactly what circumstances rendererIsNeeded
39319         will return true but createRenderer return 0 and consider eliminating them.
39321 2007-05-11  David Hyatt  <hyatt@apple.com>
39323         Fix for bug 13675, focus rings don't repaint properly on editable
39324         continuations.
39326         Reviewed by olliej
39328         (WebCore::InlineFlowBox::paint):
39329         * rendering/RenderBlock.cpp:
39330         (WebCore::RenderBlock::paintObject):
39331         (WebCore::continuationOutlineTable):
39332         (WebCore::RenderBlock::addContinuationWithOutline):
39333         (WebCore::RenderBlock::paintContinuationOutlines):
39334         * rendering/RenderBlock.h:
39335         * rendering/RenderBox.cpp:
39336         (WebCore::RenderBox::absoluteClippedOverflowRect):
39337         * rendering/RenderObject.cpp:
39338         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
39339         (WebCore::RenderObject::absoluteOutlineBox):
39341 2007-05-11  Rob Buis  <buis@kde.org>
39343         Reviewed by Oliver.
39345         Cleanups mostly inspired by Coverage results.
39347         * ksvg2/css/SVGCSSParser.cpp:
39348         (WebCore::CSSParser::parseSVGValue):
39349         (WebCore::CSSParser::parseSVGStrokeDasharray):
39350         * ksvg2/css/SVGRenderStyleDefs.cpp:
39351         (StyleFillData::operator==):
39352         * ksvg2/svg/SVGColor.cpp:
39353         (WebCore::SVGColor::colorFromRGBColorString):
39355 2007-05-11  Holger Freyther <freyther@kde.org>
39357         Reviewed by Mark Rowe.
39359         Move libcurl configuration into WebKit.pri so it will be used by GdkLauncher.
39361         * WebCore.pro:
39363 2007-05-10  David Hyatt  <hyatt@apple.com>
39365         <rdar://problem/5015522> Bounds rectangle of unloaded images is 
39366         drawn briefly while loading
39367         
39368         When the image is null and has no size, don't draw the grey
39369         rectangles or alt text any more.  Wait for an actual error to
39370         occur with the image before we start showing alt text and borders.
39372         (Images with no source set at all will continue to show alt text and
39373         borders immediately.)
39375         Reviewed by bradee-oh
39377         * rendering/RenderImage.cpp:
39378         (WebCore::RenderImage::paint):
39380 2007-05-10  Mitz Pettel  <mitz@webkit.org>
39382         Reviewed by Darin.
39384         - fix http://bugs.webkit.org/show_bug.cgi?id=13655
39385           Incomplete repaint when text-shadow is used in a render layer with explicit height
39387         Test: fast/repaint/layer-full-repaint.html
39389         Removed custom repaint logic from RenderLayer. repaintAfterLayoutIfNeeded()
39390         knows how to do everything we need now. The only catch is that we cannot
39391         rely on its "do a full repaint if the object needs layout" behavior, since
39392         by the time we call it, the needs layout flag has been reset. The solution
39393         is to cache the need for a full repaint in the layer.
39395         * page/FrameView.cpp:
39396         (WebCore::FrameView::layout): Removed call to checkForRepaintOnResize().
39397         * rendering/RenderLayer.cpp:
39398         (WebCore::RenderLayer::checkForRepaintOnResize): Removed.
39399         (WebCore::RenderLayer::RenderLayer): Replaced the m_repaintOverflowOnResize
39400         flag with a m_needsFullRepaint flag, which indicates that the layer needs
39401         to do a full repaint in the next call to updateLayerPositions().
39402         (WebCore::RenderLayer::updateLayerPositions): Simplified the repaint logic.
39403         Either call repaintAfterLayoutIfNeeded() or do a full repaint, depending on
39404         m_needsFullRepaint.
39405         * rendering/RenderLayer.h:
39406         (WebCore::RenderLayer::setNeedsFullRepaint):
39407         * rendering/RenderObject.cpp:
39408         (WebCore::RenderObject::setNeedsLayout): Mark the layer for full repaint.
39410 2007-05-10  Justin Garcia  <justin.garcia@apple.com>
39412         Reviewed by ggaren
39414         <rdar://problem/5195166> Incorrect proposedRange DOMRange passed to WebViewEditing delegate
39415         
39416         In setModifyBias, we must cache the start and the end 
39417         because the calls to setBase and setExtent can modify 
39418         them (added a testcase).
39419         The temporary SelectionController that we use in modify() to
39420         produce the proposed range that will be passed to 
39421         shouldChangeSelectedDOMRange must have the same m_modifyBias
39422         as the original SelectionController, or else when the 
39423         modification is performed, setModifyBias can swap the base 
39424         and the extent incorrectly (added a testcase).
39425         Renamed m_modifyBias to m_lastChangeWasHorizontalExtension.
39426         Renamed setModifyBias to willBeModified.
39428         * editing/SelectionController.cpp:
39429         (WebCore::SelectionController::SelectionController):
39430         (WebCore::SelectionController::setSelection):
39431         (WebCore::SelectionController::willBeModified):
39432         (WebCore::SelectionController::modify):
39433         * editing/SelectionController.h:
39434         (WebCore::SelectionController::setLastChangeWasHorizontalExtension):
39435         * page/EventHandler.cpp:
39436         (WebCore::EventHandler::handleMousePressEventSingleClick):
39437         (WebCore::EventHandler::updateSelectionForMouseDragOverPosition):
39439 2007-05-10  Geoffrey Garen  <ggaren@apple.com>
39441         Reviewed by Darin Adler.
39443         "IconDatabase::sharedIconDatabase()" => "iconDatabase()" for terseness,
39444         in the style of WebCore::cache().
39446         * WebCore.exp:
39447         * history/HistoryItem.cpp: Removed retainIconInDatabase because calling
39448         "retain" in order to release something is really confusing and, now that
39449         iconDatabase() is more terse, we don't need this helper to shorten the
39450         syntax. (The isEmpty() check is also done by the database, so we don't 
39451         need it either.)
39453         (WebCore::IconDatabase::~IconDatabase): ASSERT that our destructor isn't
39454         called. We're a singleton, so it's confusing to have tear-down code.
39456 2007-05-10  Adele Peterson  <adele@apple.com>
39458         Reviewed by Hyatt.
39460         WebCore part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
39462         Test: fast/overflow/scroll-nested-positioned-layer-in-overflow.html
39464         Merged visibleSelectionRect into selectionRect.  selectionRect() now takes an argument to determine
39465         whether or not to return a rect that clips to the visible content.  This change makes all of the implementations of selectionRect
39466         consistent by having them all consider the repaint rect when clipping to visible content.
39468         * page/Frame.cpp:
39469         (WebCore::Frame::revealSelection): Call selectionRect with clipToVisibleContent = false, so we can get a rect that's not visible to reveal.
39470         (WebCore::Frame::selectionRect): Added clipToVisibleContent argument, and merged visibleSelectionRect into this method.
39471         (WebCore::Frame::setIsActive): Use selectionRect instead of visibleSelectionRect.
39472         * page/Frame.h:
39473         * page/mac/FrameMac.mm: (WebCore::Frame::selectionImage): Update layout before creating the image.  Use selectionRect instead of visibleSelectionRect.
39474         * page/DragController.cpp: (WebCore::dragLocForSelectionDrag): Use selectionRect instead of visibleSelectionRect.
39476         * rendering/RenderBR.h: (WebCore::RenderBR::selectionRect): Updated argument.
39477         * rendering/RenderBlock.h: (WebCore::RenderBlock::selectionRect): ditto.
39478         * rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::selectionRect): ditto.
39479         * rendering/RenderSVGInlineText.h: ditto.
39480         * rendering/RenderObject.h: 
39481         (WebCore::RenderObject::selectionRect): ditto.
39482         (WebCore::RenderObject::SelectionInfo::SelectionInfo): ditto.
39483         * rendering/RenderView.cpp:
39484         (WebCore::RenderView::selectionRect): ditto.
39485         (WebCore::RenderView::setSelection): ditto.
39486         * rendering/RenderView.h:
39488         * rendering/RenderText.h:
39489         * rendering/RenderText.cpp: (WebCore::RenderText::selectionRect): Only call computeAbsoluteRepaintRect when clipping to visible content.
39490         Otherwise, just adjust the rect to the correct position.
39491         * rendering/RenderListMarker.h:
39492         * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::selectionRect):
39493           To match what we do in RenderText, if we're trying to clip to visible content, just call computeAbsoluteRepaintRect.
39494         * rendering/RenderReplaced.h:
39495         * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::selectionRect): ditto.
39497         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): Check for a parent layer at the beginning, so we can try to scroll all of our parent layers 
39498           first, before trying to scroll the top level view.  Also, don't try to scroll overflow layers that have -webkit-line-clamp restricting the height.
39499           This will prevent us from revealing text hidden by the slider in Safari RSS.
39501         * WebCore.exp: Update symbols for WebKit.
39503 2007-05-10  David Hyatt  <hyatt@apple.com>
39505         Fix for:
39507         <rdar://problem/5195272> REGRESSION: broke outline rings for continuations 
39508         with empty inline containers
39509         
39510         http://bugs.webkit.org/show_bug.cgi?id=13667
39512         Make sure to only include collapsed top/bottom margins of the block portion
39513         of the continuation if we know for sure that we have inline line boxes before
39514         and after that would prevent the collapse from going further.
39516         In plain English: the focus rings were too tall. :)
39518         Reviewed by beth
39520         * rendering/RenderFlow.cpp:
39521         (WebCore::RenderFlow::addFocusRingRects):
39523 2007-05-10  David Hyatt  <hyatt@apple.com>
39525         Fix for:
39527         <rdar://problem/5067235> REGRESSION: Excessively wide table, impossible to resize
39529         The table used white-space: pre-wrap, which is supported only by WebKit.  There
39530         was a bug with the computation of min pref width for pre-wrap text.
39532         Reviewed by mitzpettel
39534         fast/text/white-space/pre-wrap-line-test.html
39536         * rendering/RenderText.cpp:
39537         (WebCore::RenderText::calcPrefWidths):
39539 2007-05-10  Brady Eidson  <beidson@apple.com>
39541         Reviewed by Oliver
39543         Cleanup from my earlier Java Applet patch.  We should keep a central location to query if 
39544         a mime type counts as a Java Applet
39546         * html/HTMLObjectElement.cpp:
39547         (WebCore::HTMLObjectElement::containsJavaApplet): Query MimeTypeRegistry on the type
39549         * platform/MimeTypeRegistry.cpp:
39550         (WebCore::MimeTypeRegistry::isSupportedImageMIMEType): Update style
39551         (WebCore::MimeTypeRegistry::isSupportedImageResourceMIMEType): Ditto
39552         (WebCore::MimeTypeRegistry::isSupportedNonImageMIMEType): Ditto
39553         (WebCore::MimeTypeRegistry::isJavaAppletMIMEType): Perform the Java Applet check
39554         * platform/MimeTypeRegistry.h:
39556         * rendering/RenderPartObject.cpp:
39557         (WebCore::RenderPartObject::updateWidget): Query MimeTypeRegistry on the type
39559 2007-05-10  Patti Hoa  <patti@apple.com>
39561         Reviewed by Darin.
39562         
39563         <rdar://problem/4720109> Sentence textMarker methods do not work well with empty lines
39564         
39565         * bridge/mac/WebCoreAXObject.mm:
39566         (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
39567         (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
39568         When a marker position is given, the sentence ax methods automatically shift position by one to make sure
39569         not to ask for the current sentence again.  This is generally fine except when the position
39570         shift over an empty line break, which is should be considered a separate sentence. In this case, 
39571         if we used the shifted position to ask for sentence boundary, ICU parser is not given the text data
39572         containing the newline to correctly determine the sentence boundary.  Since the ax sentence method is 
39573         explicitly shifting the position to ask for sentence boundary, it should make sure not to skip over important
39574         character that can be a standalone sentence.
39575         * editing/visible_units.cpp:
39576         (WebCore::nextBoundary):
39577         When determining boundary, don't stop on a collapsed range, such as newline.  
39578         Just pick the next valid position to use as boundary.
39580 2007-05-10  Maciej Stachowiak  <mjs@apple.com>
39582         Reviewed by Oliver.
39584         - WebCore part of fix for:
39585         <rdar://problem/5063277> blank screen after login to Citibank Online (accessing document before frame starts loading cancels load)
39586         <rdar://problem/5159541> REGRESSION (r20972): Wall Street Journal pages replaced by advertisements (13465)
39588         The basic approach is to have Frames start out containing an empty document instead of absolutely nothing,
39589         so there is no need to initialize them on demand. Various side effects of that cause both of these bugs.
39590         
39591         However, this caused many regressions so I had to fix the fallout.
39592         
39593         * WebCore.exp: fix symbol exports
39594         * bindings/js/kjs_window.cpp:
39595         (KJS::createNewWindow): useless "created" bool (we don't need it here)
39596         (KJS::WindowFunc::callAsFunction): detect if we created a new frame, because if so,
39597         we need to initialize the domain (can't count on it not having a document), also
39598         don't try to make a new document for it.
39599         Also, stop properly.
39600         * css/cssstyleselector.cpp:
39601         (WebCore::CSSStyleSelector::CSSStyleSelector): don't count on document having a view here
39602         * html/HTMLObjectElement.cpp:
39603         (WebCore::HTMLObjectElement::isImageType): Ask client, to match how other <object> renderer
39604         decisions are made.
39605         * loader/FrameLoader.cpp:
39606         (WebCore::FrameLoader::FrameLoader): Initialize new data members
39607         (WebCore::FrameLoader::init): Do the slightly tricky sequence of steps to properly make
39608         an empty document with everything hooked up.
39609         (WebCore::FrameLoader::createWindow): Added "created" bool.
39610         (WebCore::FrameLoader::stopLoading): (whitespace change)
39611         (WebCore::FrameLoader::begin): Don't try to create an empty document.
39612         (WebCore::FrameLoader::finishedParsing): If creating an initial empty document, don't
39613         do any of this work.
39614         (WebCore::FrameLoader::checkCompleted): Do checkLoadComplete() as well.
39615         (WebCore::FrameLoader::baseURL): don't check for null document
39616         (WebCore::FrameLoader::baseTarget): ditto
39617         (WebCore::FrameLoader::completeURL): ditto
39618         (WebCore::FrameLoader::didTellBridgeAboutLoad): ditto
39619         (WebCore::FrameLoader::scheduleLocationChange): determine duringLoad differently; doc won't
39620         be null.
39621         (WebCore::FrameLoader::gotoAnchor): don't check for null document
39622         (WebCore::FrameLoader::canTarget): don't check for null document
39623         (WebCore::FrameLoader::stopForUserCancel): new method for explicit stops like window.stop().
39624         (WebCore::FrameLoader::transitionToCommitted): check for pre-loaded state properly
39625         (WebCore::FrameLoader::createEmptyDocument): removed
39626         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): don't send delegate callbacks when making initial
39627         doc.
39628         (WebCore::FrameLoader::tokenizerProcessedData): Assume document; just checkCompleted now that it
39629         does checkLoadComplete.
39630         (WebCore::FrameLoader::receivedMainResourceError): assume document
39631         (WebCore::FrameLoader::saveDocumentState): Assume there's a document except during initial load
39632         (WebCore::FrameLoader::mainReceivedCompleteError): do checkCompleted, not checkLoadComplete
39633         (WebCore::FrameLoader::continueLoadWithData): assume document
39634         * loader/FrameLoader.h:
39635         * loader/MainResourceLoader.cpp:
39636         (WebCore::MainResourceLoader::receivedError): Add more ref protection and do things in a slightly
39637         different order.
39638         * page/DOMWindow.cpp:
39639         (WebCore::DOMWindow::document): don't force document creation, just assert there is one.
39640         * page/Frame.cpp:
39641         (WebCore::Frame::init): Added init method.
39642         (WebCore::Frame::pageDestroyed): when a frame is removed, make sure to check if the parent is
39643         done loading.
39644         * page/Frame.h:
39645         * page/mac/WebCoreFrameBridge.mm:
39646         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): No need to force
39647         document.
39648         (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]): ditto
39649         * platform/graphics/svg/SVGImage.cpp:
39650         (WebCore::SVGImage::dataChanged): init the frame
39651         * rendering/RenderPart.cpp:
39652         (WebCore::RenderPart::updateWidgetPosition): If a subframe needs layout, then lay it out even
39653         if the bounds did not change; the content size might be wrong.
39654         * rendering/RenderTreeAsText.cpp:
39655         (WebCore::externalRepresentation): Don't crash if the frame lacks a view.
39657 2007-05-10  David Hyatt  <hyatt@apple.com>
39659         Fix for:
39661         <rdar://problem/5146757> REGRESSION: div that wrapped to screen width in 
39662         tiger no longer wraps
39663         
39664         http://bugs.webkit.org/show_bug.cgi?id=13654
39666         Reviewed by mitz
39668         fast/text/whitespace/normal-after-nowrap-breaking.html
39670         * rendering/RenderBlock.cpp:
39671         (WebCore::RenderBlock::calcInlinePrefWidths):
39673 2007-05-10  David Hyatt  <hyatt@apple.com>
39675         Fix for:
39677         <rdar://problem/4778099> Links with nested continuations fail to 
39678         paint their outlines (11255)
39679         
39680         http://bugs.webkit.org/show_bug.cgi?id=11255
39682         Fix multiple bugs with outline painting of continuations to ensure that
39683         all combos work (empty/full inline - block with/without margins - 
39684         empty/full inline).
39686         Reviewed by mitz
39688         fast/inline/continuation-outlines.html
39690         * rendering/RenderBlock.cpp:
39691         (WebCore::RenderBlock::paintObject):
39692         * rendering/RenderFlow.cpp:
39693         (WebCore::RenderFlow::addFocusRingRects):
39695 2007-05-10  David Hyatt  <hyatt@apple.com>
39697         Fix for:
39699         <rdar://problem/5193529> REGRESSION: RTL Overflows scrollbar not showing 
39700         when they should be
39701         
39702         Fallout from fix for bug 11926.  Make sure to restrict the fix to the
39703         RenderView for now, since the full-blown overflow case is pretty involved.
39705         Reviewed by mitzpettel
39707         fast/overflow/unreachable-content-bug-rtl.html
39709         * rendering/RenderBlock.cpp:
39710         (WebCore::RenderBlock::lowestPosition):
39711         (WebCore::RenderBlock::rightmostPosition):
39712         (WebCore::RenderBlock::leftmostPosition):
39714 2007-05-10  Brady Eidson <beidson@apple.com>
39716         Reviewed by Oliver
39718         Fix for http://bugs.webkit.org/show_bug.cgi?id=13636 and <rdar://problem/5190816>
39720         When creating the applets collection, be sure to only count Objects if they contain
39721         a java applet
39723         * html/HTMLCollection.cpp:
39724         (WebCore::HTMLCollection::traverseNextItem): Add the qualifier for Objects that 
39725           containsJavaApplet() must be true
39727         * html/HTMLObjectElement.cpp:
39728         (WebCore::HTMLObjectElement::containsJavaApplet): Check this Object element and inner
39729           nodes for any Java applets
39730         * html/HTMLObjectElement.h: 
39732 2007-05-10  David Hyatt  <hyatt@apple.com>
39734         Fix for:
39736         <rdar://problem/4694859> SAP: HTML tags with overflow:hidden consume
39737         space on page, do not consume space in Firefox (11926)
39739         http://bugs.webkit.org/show_bug.cgi?id=11926
39741         Make sure that unreachable objects along one axis (e.g., top/left) do not
39742         contribute to the scrollable area in the opposite axis (e.g., right/bottom).
39744         Reviewed by olliej
39746         fast/overflow/unreachable-content-test.html
39748         * rendering/RenderBlock.cpp:
39749         (WebCore::RenderBlock::lowestPosition):
39750         (WebCore::RenderBlock::rightmostPosition):
39751         (WebCore::RenderBlock::leftmostPosition):
39753 2007-05-10  David Hyatt  <hyatt@apple.com>
39755         Fix for:
39757         <rdar://problem/4656825> REGRESSION: Japanese TV time table widget:
39758         part of the number in background has been cut off.
39760         Now that opacity uses a tight bounding box to clip, we need to make sure
39761         to factor spillout caused by negative letter spacing into our right
39762         overflow.  Latch on to the code that does this already for text-stroke
39763         and text-shadow.
39765         Reviewed by olliej
39767         fast/text/letter-spacing-negative-opacity.html
39769        * rendering/InlineFlowBox.cpp:
39770         (WebCore::InlineFlowBox::placeBoxesHorizontally):
39772 2007-05-10  Geoffrey Garen  <ggaren@apple.com>
39774         Reviewed by Maciej Stachowiak.
39775         
39776         More fix-ups to the WebScriptObject/WebScripting APIs, related to
39777         <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
39778         or WebFrame
39780         * bindings/objc/WebScriptObject.h: Fully specified the surprising rules for
39781         type conversion between JavaScript and ObjC.
39782         * bindings/objc/WebScriptObject.mm: Added up-call accessor to WebFrame.
39783         This is kind of stinky, but I'm OK with it because eventually all of this
39784         code should move up into WebKit.
39785         (+[WebScriptObject scriptObjectForJSObject:frame:]):
39786         (-[WebScriptObject valueForKey:]):
39787         (-[WebScriptObject JSObject]): 
39788             - Added _rootObject check because if _rootObject returns NULL it means 
39789             that _imp is no longer GC protected, so it's not safe to use. 
39790             - Added _isSafeScript check because that's what WebScriptObject methods
39791             typically do, even though the value of doing so isn't clear to me.
39792         * bindings/objc/WebScriptObjectPendingPublic.h: Added WebFrame* parameter
39793         to -scriptObjectForJSObject:. This is required to wrap JS objects that
39794         are not already in the wrapper cache. It would be nice to remove this
39795         limitation of WebScriptObject some day.
39796         * page/mac/FrameMac.mm:
39797         (WebCore::Frame::cleanupPlatformScriptObjects): Force removal of m_windowScriptObject
39798         from the cache, to avoid retrieving the m_windowScriptObject from the previous
39799         page on a new page load. (It would be non-functional in that case.)
39801 2007-05-10  David Hyatt  <hyatt@apple.com>
39803         Fix for <rdar://problem/5183697>.
39805         http://bugs.webkit.org/show_bug.cgi?id=13576
39807         Make sure verticalPositionHint is not called on an inline-block from
39808         content inside the inline-block (like text).
39810         Reviewed by olliej
39812         fast/inline-block/inline-block-vertical-align.html
39814         * rendering/RenderObject.cpp:
39815         (WebCore::RenderObject::verticalPositionHint):
39816         * rendering/RenderText.cpp:
39817         (WebCore::RenderText::verticalPositionHint):
39818         * rendering/RenderThemeMac.mm:
39819         (WebCore::RenderThemeMac::setFontFromControlSize):
39821 2007-05-09  Holger Freyther <zecke@selfish.org>
39823         Reviewed by Mark Rowe.
39825         Gdk build fix with SVG enabled.  Stub out ImageBufferCairo.
39827         * WebCore.pro: Build ImageBufferCairo.cpp
39828         * platform/graphics/cairo/ImageBufferCairo.cpp: Added.
39829         (WebCore::ImageBuffer::create):
39830         (WebCore::ImageBuffer::~ImageBuffer):
39831         (WebCore::ImageBuffer::context):
39833 2007-05-08  Justin Garcia  <justin.garcia@apple.com>
39835         Reviewed by darin
39836         
39837         <rdar://problem/5017613> Style changes don't effect fully selected ToDo content
39839         * editing/ApplyStyleCommand.cpp:
39840         (WebCore::ApplyStyleCommand::applyInlineStyle):
39841         Use a for loop instead of while(1).
39842         Simplify loop termination using Range::pastEndNode.
39843         Don't handle the start.node() == end.node() case 
39844         specially, it's unnecessary.
39845         Apply the style change to fully selected plaintext-only
39846         regions, not with wrapper spans inside the region, but 
39847         by changing the element's inline style declaration.
39848         Don't descend into nodes whose children we should ignore.
39850 2007-05-09  Adele Peterson  <adele@apple.com>
39852         Reviewed by Hyatt.
39854         Fix for <rdar://problem/5113578> REGRESSION: textfields that set the height but not the font 
39855         look different from IE & FF because the font is small
39857         For plain text fields, don't stretch the inner text box.  Center it vertically in the field.
39859         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::layout):
39861 2007-05-09  Atul Mehrotra  <atul.mehrotra@celunite.com>
39863         Gdk build fix.
39865         * platform/gdk/TemporaryLinkStubs.cpp:
39866         (Editor::newGeneralClipboard):
39868 2007-05-09  Mitz Pettel  <mitz@webkit.org>
39870         Reviewed by Dave Hyatt.
39872         - fix http://bugs.webkit.org/show_bug.cgi?id=13037
39873           REGRESSION: Copy-on-scroll not reset properly after back/forward navigation
39875         * page/FrameView.cpp:
39876         (WebCore::FrameViewPrivate::FrameViewPrivate): Moved initialization of
39877         m_slowRepaintObjectCount here.
39878         (WebCore::FrameViewPrivate::reset): Do not reset the slow repaint object
39879         count here.
39880         (WebCore::FrameView::useSlowRepaints):
39881         (WebCore::FrameView::addSlowRepaintObject):
39882         (WebCore::FrameView::removeSlowRepaintObject): Added an assertion that the
39883         object count is positive.
39884         * rendering/RenderObject.cpp:
39885         (WebCore::RenderObject::setStyle): Corrected a mix up between old and new
39886         style, which caused the object count to be decremented when it was supposed
39887         to be incremented and vice versa.
39889 2007-05-09  Peter Müller <pm@one.com>
39891         Reviewed by Dave Hyatt.
39893         Changed the hardcoded colors that are used for CSS 2.1 system colors.
39894         Previous colors had numerous conflicts in semantic pairs, which
39895         made text invisible in highlight, info and menu colored areas.
39896         The new hardcoded colors are inspired by Aqua.
39898         Ideally these colors should be fetched through AppKit instead,
39899         though I am not sure if it is possible to make a 1:1 mapping
39900         between CSS2.1 system colors and Mac OS X.
39902         * css/cssstyleselector.cpp:
39903         (WebCore::):
39905 2007-05-09  Lars Knoll <lars@trolltech.com>
39907         Fix the Qt build.
39909         * editing/qt/EditorQt.cpp:
39911 2007-05-08  Geoffrey Garen  <ggaren@apple.com>
39913         Reviewed by Darin Adler.
39914         
39915         More fix-ups to the WebScriptObject/WebScripting APIs, related to
39916         <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
39917         or WebFrame
39918         
39919         1. Added -scriptObjectForJSObject: SPI so you can bridge back from JavaScriptCore
39920         to WebScriptObject.
39921         
39922         2. Fixed WebScriptObject bridging so that you always get the same WebScriptObject
39923         for a JSObject (like in the DOM). This makes -scriptObjectForJSObject: a
39924         lot more coherent as an API.
39926         * bindings/objc/DOMInternal.mm: Renamed wrapperCache to DOMWrapperCache
39927         to distinguish from the JSWrapperCache. Added typedef for readability.
39928         (WebCore::getDOMWrapper):
39929         (WebCore::addDOMWrapper):
39930         (WebCore::removeDOMWrapper):
39931         * bindings/objc/WebScriptObject.mm: Added JSWrapperCache, which works just
39932         like the DOMWrapperCache.
39933         (WebCore::getJSWrapper):
39934         (WebCore::addJSWrapper):
39935         (WebCore::removeJSWrapper):
39936         (WebCore::createJSWrapper):
39937         (+[WebScriptObject scriptObjectForJSObject:]): This is the new API. It attempts
39938         to return a specific DOM wrapper object, or, barring that, it returns a 
39939         generic WebScriptObject.
39940         (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
39941         Added this method to support our old WebScriptObject security and leak 
39942         checking model, even though it doesn't work very well. 
39943         (-[WebScriptObject _setImp:originRootObject:rootObject:]):
39944         (-[WebScriptObject dealloc]):
39945         (-[WebScriptObject finalize]):
39946         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
39947         * bindings/objc/WebScriptObjectPendingPublic.h:
39948         * bindings/objc/WebScriptObjectPrivate.h:
39949         * page/mac/FrameMac.mm:
39950         (WebCore::Frame::windowScriptObject): Changed to use the new API. This
39951         fixes a bug where the object sent to -windowScriptObjectAvailable: and returned
39952         from -windowScriptObject could not be round-tripped.
39954 2007-05-09  Mark Rowe  <mrowe@apple.com>
39956         Build fix.
39958         * editing/Editor.cpp:
39959         (WebCore::findFirstGrammarDetailInRange): Use unsigned rather than int.
39960         (WebCore::findFirstBadGrammarInRange): Cast to unsigned in assertion.
39961         (WebCore::isRangeUngrammatical): Remove unused variables.
39963 2007-05-08  Oliver Hunt  <oliver@apple.com>
39965         Reviewed by Darin.
39966         
39967         Fix <rdar://problem/5188938> arc method on Canvas causes hang or crash
39968         
39969         Workaround bad behaviour of CGPathAddArc when passed inf as start or
39970         end angles.
39972         * platform/graphics/cg/PathCG.cpp:
39973         (WebCore::Path::addArc):
39975 2007-05-08  Darin Adler  <darin@apple.com>
39977         Reviewed by Hyatt and Hatcher.
39979         - fix auto-activation code path so Tiger and Leopard aren't different
39981         * platform/mac/WebFontCache.mm: (+[WebFontCache fontWithFamily:traits:size:]):
39982         Do the auto-activation dance first before doing anything else, and ignore the
39983         font that it returns.
39985 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
39987         Reviewed by Darin.
39989         Moved most spelling/grammar logic to C++.  Now calls through to
39990         WebKit to actually invoke NSSpellChecker.
39992         * editing/Editor.cpp:
39993         (WebCore::Editor::ignoreSpelling): Added (ported from EditorMac).
39994         (WebCore::Editor::learnSpelling): Added (ported from EditorMac).
39995         (WebCore::findFirstMisspellingInRange): Added (ported from EditorMac).
39996         (WebCore::paragraphAlignedRangeForRange): Added (ported from EditorMac).
39997         (WebCore::findFirstGrammarDetailInRange): Added (ported from EditorMac).
39998         (WebCore::findFirstBadGrammarInRange): Added (ported from EditorMac).
39999         (WebCore::Editor::advanceToNextMisspelling): Added (ported from EditorMac).
40000         (WebCore::Editor::isSelectionMisspelled): Added (ported from EditorMac).
40001         (WebCore::isRangeUngrammatical): Added (ported from EditorMac).
40002         (WebCore::Editor::isSelectionUngrammatical): Added (ported from EditorMac).
40003         (WebCore::Editor::guessesForUngrammaticalSelection): Added (ported from EditorMac).
40004         (WebCore::Editor::guessesForMisspelledSelection): Added (ported from EditorMac).
40005         (WebCore::Editor::showSpellingGuessPanel): Added (ported from EditorMac).
40006         (WebCore::Editor::spellingPanelIsShowing): Added (ported from EditorMac).
40007         (WebCore::Editor::markMisspellingsAfterTypingToPosition): Added (ported from EditorMac).
40008         (WebCore::markAllMisspellingsInRange): Added (ported from EditorMac).
40009         (WebCore::markAllBadGrammarInRange): Added (ported from EditorMac).
40010         (WebCore::markMisspellingsOrBadGrammar): Added (ported from EditorMac).
40011         (WebCore::Editor::markMisspellings): Added (ported from EditorMac).
40012         (WebCore::Editor::markBadGrammar): Added (ported from EditorMac).
40013         * editing/mac/EditorMac.mm: Removed Objective C version of spelling/grammar calls.
40015 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
40017         Reviewed by Ada.
40019         Slight modification to last editor method fix.
40021         * bridge/EditorClient.h:
40022         * platform/gdk/EditorClientGdk.cpp:
40023         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
40024         * platform/gdk/EditorClientGdk.h:
40025         * platform/graphics/svg/SVGImageEmptyClients.h:
40026         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
40028 2007-05-08  Alexey Proskuryakov  <ap@webkit.org>
40030         Reviewed by Hyatt.
40032         http://bugs.webkit.org/show_bug.cgi?id=13480
40033         window.Attr is undefined
40035         Test: fast/dom/Window/attr-constructor.html
40037         * dom/Attr.idl:
40038         * dom/CDATASection.idl:
40039         * dom/CharacterData.idl:
40040         * dom/Comment.idl:
40041         * dom/DOMImplementation.idl:
40042         * dom/DocumentType.idl:
40043         * dom/Entity.idl:
40044         * dom/EntityReference.idl:
40045         * dom/Notation.idl:
40046         * dom/ProcessingInstruction.idl:
40047         * dom/Text.idl:
40048         Added GenerateConstructor.
40050         * page/DOMWindow.idl: Added constructor properties for DOM interfaces.
40052 2007-05-07  Geoffrey Garen  <ggaren@apple.com>
40054         Reviewed by Maciej Stachowiak.
40056         Fixed <rdar://problem/5140447> API for fetching JSGlobalContextRef from 
40057         WebView or WebFrame
40058         
40059         Added support for new -[WebScriptObject JSObject] and -[WebFrame globalContext]
40060         APIs.
40061         
40062         Also fixed some more cases of <rdar://problem/4395622> API: 
40063         WebScriptObject.h incorrectly reports that -isSelectorExcludedFromWebScript 
40064         returns NO by default, and generally cleaned up that documentation.
40066         * WebCore.exp: A lot of the diff here is from sorting.
40067         * WebCore.xcodeproj/project.pbxproj:
40068         * bindings/objc/WebScriptObject.h:
40069         * bindings/objc/WebScriptObject.mm:
40070         (-[WebScriptObject JSObject]):
40071         * bindings/objc/WebScriptObjectPendingPublic.h: Added.
40073 2007-05-08  Lars Knoll <lars@trolltech.com>
40075         Reviewed by Hyatt.
40077         Fix valgrind reported uninitialized memory read.
40079         * rendering/RenderText.cpp:
40080         (WebCore::RenderText::RenderText):
40082 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
40084         Reviewed by oliver
40086         <rdar://problem/4895428> Can't drag selected ToDo
40087         
40088         The user tries to drag a selection by mousing down
40089         on the editable part of a ToDo, which is focusable,
40090         since it is an editable node within non-editable 
40091         content.  But we focus focusable elements on mouse 
40092         down, and focusing the editable piece blows away 
40093         the selection and prevents the drag. This is how 
40094         IE behaves, but content seems generally difficult 
40095         to drag in IE, so this doesn't make it any worse.
40096         
40097         Since focus doesn't appear to be cancelable, either
40098         with a DOM event or an editing delegate, I fixed this
40099         by delaying the focus of focusable nodes that are 
40100         selected and inside an already focused node.  The 
40101         node will be focused if the user mouses up without 
40102         doing any dragging because the mouse up sets a
40103         selection, which calls setFocusNodeIfNeeded.
40105         * page/EventHandler.cpp:
40106         (WebCore::EventHandler::dispatchMouseEvent):
40108 2007-05-07  Atul Mehrotra <atul.mehrotra@celunite.com>
40110         Reviewed by Maciej.
40112         GDK Build fix
40114         * platform/gdk/TemporaryLinkStubs.cpp:
40116 2007-05-07  Oliver Hunt  <oliver@apple.com>
40118         Reviewed by Maciej.
40120         Correcting comparisons to handle NaN in the same manner
40121         as other Canvas methods.
40123         * html/CanvasRenderingContext2D.cpp:
40124         (WebCore::CanvasRenderingContext2D::arcTo):
40125         (WebCore::CanvasRenderingContext2D::arc):
40126           Correcting arc/arcTo to match the WHAT WG draft.
40127         (WebCore::CanvasRenderingContext2D::rect):
40128         (WebCore::CanvasRenderingContext2D::clearRect):
40129         (WebCore::CanvasRenderingContext2D::fillRect):
40130         (WebCore::CanvasRenderingContext2D::strokeRect):
40132 2007-05-07  David Hyatt  <hyatt@apple.com>
40134         Add some comments to the glyph/font code (patch from Brett Wilson, tweaked by
40135         me to correct a few bits and to make it forward-compatible with the work
40136         going on in 3315.
40138         Reviewed by me
40140         * ChangeLog:
40141         * platform/Font.cpp:
40142         (WebCore::Font::glyphDataForCharacter):
40143         * platform/GlyphPageTreeNode.cpp:
40144         (WebCore::GlyphPageTreeNode::initializePage):
40145         * platform/GlyphPageTreeNode.h:
40147 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
40149         Fix layout test failures.
40151         * editing/SelectionController.cpp:
40152         (WebCore::SelectionController::contains): Use comparePositions
40153         instead of Range::comparePoint, because comparePositions can
40154         handle positions inside shadow trees.
40156 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
40158         Reviewed by darin
40159         
40160         <rdar://problem/4895428> Can't drag selected To Do if it is not showing a due date
40161         
40162         The code in SelectionController::contains returned false 
40163         incorrectly if the selection end just after a table 
40164         and the position was inside that table.
40166         * editing/SelectionController.cpp:
40167         (WebCore::SelectionController::contains): Compare the position with the
40168         ends of the selection and then use Range::comparePoint.
40170 2007-05-07  Darin Adler  <darin@apple.com>
40172         - rolling out setInnerHTML optimization until I can figure out why tests are failing
40174 2007-05-07  Darin Adler  <darin@apple.com>
40176         Reviewed by Hyatt.
40178         - fix http://bugs.webkit.org/show_bug.cgi?id=13602
40179           Amazon product pages keep repainting over and over again
40181         Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
40182         if they don't need to.
40184         Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
40186         * html/HTMLElement.cpp:
40187         (WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
40188         attribute maps.
40189         (WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
40190         arbitrary nodes.
40191         (WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
40192         setInnerText. Optimizes the cases where all the nodes are the same, where both the current
40193         and the new content are single text nodes, and where the current content is a single node
40194         that can be replaced with replaceChild.
40195         (WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
40196         the case where the current content is a single text node or a single node that can be
40197         replaced with replaceChild.
40198         (WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
40199         (WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
40200         exactly matches the current node.
40201         (WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
40202         cases instead of doing removeChildren/appendChild. Changed code that was using
40203         DeprecatedString to instead use String. Changed general case to use a document fragment
40204         and replaceChildrenWithFragment.
40206         * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
40207         Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
40208         was registered for the DOMCharacterDataModified event. Caused trouble in the test.
40210 2007-05-06  Darin Adler  <darin@apple.com>
40212         - blind try at fixing the Qt build
40214         * platform/qt/TextBreakIteratorQt.cpp: (WebCore::sentenceBreakIterator):
40215         Added a placeholder.
40217 2007-05-06  Darin Adler  <darin@apple.com>
40219         Reviewed by Hyatt.
40221         - fix http://bugs.webkit.org/show_bug.cgi?id=13537
40222           Canvex example starts rendering strangely after a while
40224         * html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
40225         Don't raise an exception if the source or destination rectangle is empty.
40227 2007-05-06  Darin Adler  <darin@apple.com>
40229         Reviewed by Hyatt.
40231         - fix <rdar://problem/4585593> REGRESSION: Some 2-byte characters in printed page
40232           header are drawn with too-large font and clipped
40234         Doesn't affect text within web pages, so no layout test.
40236         * platform/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters):
40237         Base the substitute font on the FontPlatformData rather than the FontDescription.
40238         Before, it was a mix of both. This works properly for fonts where we have no
40239         FontDescription and is also more internally consistent.
40241 2007-05-06  Darin Adler  <darin@apple.com>
40243         Reviewed by Hyatt.
40245         - http://bugs.webkit.org/show_bug.cgi?id=13606
40246           some functions are virtual that don't need to be
40248         * dom/Node.h: Made first/lastChild be inline functions that call virtual functions.
40249         This lets us hide the functions with another inline function in a derived class,
40250         yet still override the behavior here in the base class by overriding the virtual
40251         functions too.
40252         * dom/Node.cpp:
40253         (WebCore::Node::virtualFirstChild): Renamed virtual functions. There are now
40254         non-virtual inline functions that call these virtual functions.
40255         (WebCore::Node::virtualLastChild): Ditto.
40257         * dom/ContainerNode.h: Added non-virtual first/lastChild functions that hide the ones
40258         inherited from the Node class; these also replace the fastFirst/LastChild functions,
40259         and transparently give callers the faster form if they have a pointer of the right
40260         type. But still override the virtual functions named virtualFirst/LastChild, because
40261         those can still be called through a Node*. Removed the "fast" from the names of
40262         fastSetFirst/LastChild.
40263         * dom/ContainerNode.cpp:
40264         (WebCore::ContainerNode::virtualFirstChild): Renamed virtual functions. There are now
40265         also non-virtual inline versions.
40266         (WebCore::ContainerNode::virtualLastChild): Ditto.
40268         * dom/CharacterData.cpp: Removed implementations of data and length functons.
40269         * dom/CharacterData.h: Made data, setData, length, substringData, appendData,
40270         insertData, deleteData, and replaceData all non-virtual, and made data and length
40271         both be inline.
40273         * dom/NamedAttrMap.h: (WebCore::NamedAttrMap::attributeItem): Removed a null check
40274         from this function. If the length of the map is known to be greater than 0, then
40275         the null check isn't needed. But if the length of the map hasn't been checked at all,
40276         then it's unsafe to call this function since it doesn't range check the array
40277         index. Thus the null check is never needed. I also looked at all callers.
40279         * dom/Attr.cpp: (WebCore::Attr::createTextChild):
40280         * dom/Document.cpp: (WebCore::Document::recalcStyle):
40281         * dom/Element.cpp: (WebCore::Element::recalcStyle):
40282         * ksvg2/svg/SVGElement.cpp:
40283         (WebCore::SVGElement::haveLoadedRequiredResources):
40284         Removed "fast" prefix from calls to fastFirst/LastChild and fastSetFirst/LastChlld.
40285         It's not needed any more -- you still get fast behavior if the pointer has a type
40286         that's ContainerNode or derived from it.
40288 2007-05-06  Mitz Pettel  <mitz@webkit.org>
40290         Reviewed by Hyatt.
40292         - fix http://bugs.webkit.org/show_bug.cgi?id=13557
40293           Crash when dragging selection over absolutely positioned generated content on block element
40295         Test: fast/css-generated-content/positioned-background-hit-test-crash.html
40297         * rendering/RenderLayer.cpp:
40298         (WebCore::RenderLayer::enclosingElement): Added. Factored out of hitTestLayer().
40299         (WebCore::RenderLayer::hitTestLayer): Implemented the fix for <rdar://problem/3552346>
40300         from r6106 to the self hit test as well, namely: return the enclosing element
40301         for generated positioned content.
40302         * rendering/RenderLayer.h:
40304 2007-05-06  Alexey Proskuryakov  <ap@webkit.org>
40306         Reviewed by Darin.
40308         http://bugs.webkit.org/show_bug.cgi?id=13584
40309         <script> code wrongly assumes requests can't fail
40311         Test: fast/loader/unloadable-script.html
40313         * html/HTMLScriptElement.cpp:
40314         (WebCore::HTMLScriptElement::parseMappedAttribute):
40315         (WebCore::HTMLScriptElement::insertedIntoDocument):
40316         Check the return value of requestScript().
40318 2007-05-06  Alexey Proskuryakov  <ap@webkit.org>
40320         Reviewed by Darin.
40322         http://bugs.webkit.org/show_bug.cgi?id=13304
40323         REGRESSION(14784): WebKit doesn't dynamically reflect changes to the highlight color in System Preferences
40325         Implemented a notification observer that invalidates cached system colors.
40327         No automated test possible.
40329         * rendering/RenderTheme.cpp:
40330         (WebCore::RenderTheme::activeSelectionBackgroundColor):
40331         (WebCore::RenderTheme::inactiveSelectionBackgroundColor):
40332         (WebCore::RenderTheme::platformColorsDidChange):
40333         * rendering/RenderTheme.h:
40334         * rendering/RenderThemeMac.h:
40335         * rendering/RenderThemeMac.mm:
40336         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
40337         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
40338         (WebCore::theme):
40339         (WebCore::RenderThemeMac::RenderThemeMac):
40340         (WebCore::RenderThemeMac::~RenderThemeMac):
40341         (WebCore::RenderThemeMac::checkbox):
40342         (WebCore::RenderThemeMac::radio):
40343         (WebCore::RenderThemeMac::button):
40344         (WebCore::RenderThemeMac::popupButton):
40345         (WebCore::RenderThemeMac::search):
40346         (WebCore::RenderThemeMac::sliderThumbHorizontal):
40347         (WebCore::RenderThemeMac::sliderThumbVertical):
40349 2007-05-05  Rob Buis  <buis@kde.org>
40351         Reviewed by Oliver.
40353         http://bugs.webkit.org/show_bug.cgi?id=13592
40354         parseMappedAttribute inconsistency
40356         Do not use local vars in parseMappedAttribute for attr name and value.
40358         * ksvg2/svg/SVGAnimateMotionElement.cpp:
40359         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
40360         * ksvg2/svg/SVGAnimateTransformElement.cpp:
40361         (WebCore::SVGAnimateTransformElement::parseMappedAttribute):
40362         * ksvg2/svg/SVGAnimationElement.cpp:
40363         (WebCore::SVGAnimationElement::parseMappedAttribute):
40364         * ksvg2/svg/SVGCircleElement.cpp:
40365         (WebCore::SVGCircleElement::parseMappedAttribute):
40366         * ksvg2/svg/SVGClipPathElement.cpp:
40367         (WebCore::SVGClipPathElement::parseMappedAttribute):
40368         * ksvg2/svg/SVGCursorElement.cpp:
40369         (WebCore::SVGCursorElement::parseMappedAttribute):
40370         * ksvg2/svg/SVGEllipseElement.cpp:
40371         (WebCore::SVGEllipseElement::parseMappedAttribute):
40372         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
40373         (WebCore::SVGExternalResourcesRequired::parseMappedAttribute):
40374         * ksvg2/svg/SVGGradientElement.cpp:
40375         (WebCore::SVGGradientElement::parseMappedAttribute):
40376         * ksvg2/svg/SVGImageElement.cpp:
40377         (WebCore::SVGImageElement::parseMappedAttribute):
40378         * ksvg2/svg/SVGLineElement.cpp:
40379         (WebCore::SVGLineElement::parseMappedAttribute):
40380         * ksvg2/svg/SVGLinearGradientElement.cpp:
40381         (WebCore::SVGLinearGradientElement::parseMappedAttribute):
40382         * ksvg2/svg/SVGMarkerElement.cpp:
40383         (WebCore::SVGMarkerElement::parseMappedAttribute):
40384         * ksvg2/svg/SVGMaskElement.cpp:
40385         (WebCore::SVGMaskElement::parseMappedAttribute):
40386         * ksvg2/svg/SVGPathElement.cpp:
40387         (WebCore::SVGPathElement::parseMappedAttribute):
40388         * ksvg2/svg/SVGPatternElement.cpp:
40389         (WebCore::SVGPatternElement::parseMappedAttribute):
40390         * ksvg2/svg/SVGRadialGradientElement.cpp:
40391         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
40392         * ksvg2/svg/SVGRectElement.cpp:
40393         (WebCore::SVGRectElement::parseMappedAttribute):
40394         * ksvg2/svg/SVGSVGElement.cpp:
40395         (WebCore::SVGSVGElement::parseMappedAttribute):
40396         * ksvg2/svg/SVGScriptElement.cpp:
40397         (WebCore::SVGScriptElement::parseMappedAttribute):
40398         * ksvg2/svg/SVGStopElement.cpp:
40399         (WebCore::SVGStopElement::parseMappedAttribute):
40400         * ksvg2/svg/SVGTests.cpp:
40401         (WebCore::SVGTests::parseMappedAttribute):
40402         * ksvg2/svg/SVGTextContentElement.cpp:
40403         (WebCore::SVGTextContentElement::parseMappedAttribute):
40404         * ksvg2/svg/SVGTextPositioningElement.cpp:
40405         (WebCore::SVGTextPositioningElement::parseMappedAttribute):
40406         * ksvg2/svg/SVGUseElement.cpp:
40407         (WebCore::SVGUseElement::parseMappedAttribute):
40408         * ksvg2/svg/SVGViewElement.cpp:
40409         (WebCore::SVGViewElement::parseMappedAttribute):
40410         * ksvg2/svg/SVGZoomAndPan.cpp:
40411         (WebCore::SVGZoomAndPan::parseMappedAttribute):
40413 2007-05-05  Oliver Hunt  <oliver@apple.com>
40415         Reviewed by Hyatt.
40417         Initialise default fill with Color::black rather than parsing
40418         the string "black"
40420         * ksvg2/svg/SVGPaint.cpp:
40421         (WebCore::SVGPaint::defaultFill):
40423 2007-05-04  Steve Falkenburg  <sfalken@apple.com>
40425         Reviewed by Oliver.
40427         Use TextBreakIterator for sentence breaking instead of TextBoundaries.
40429         * WebCore.xcodeproj/project.pbxproj: Added TextBreakIeratorInternalICUMac.mm
40430         * editing/visible_units.cpp:
40431         (WebCore::startSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
40432         (WebCore::endSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
40433         (WebCore::previousSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
40434         (WebCore::nextSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
40435         * platform/TextBoundaries.h: Removed findSentenceBoundary, findNextSentenceFromIndex.
40436         * platform/TextBreakIterator.h: Added sentenceBreakIterator.
40437         * platform/TextBreakIteratorICU.cpp:
40438         (WebCore::setUpIterator): Add locale parameter (needed to maintain functionality that TextBoundaries code had).
40439         (WebCore::characterBreakIterator): Pass en_us for locale (same as old code).
40440         (WebCore::wordBreakIterator): Pass en_us for locale (same as old code).
40441         (WebCore::lineBreakIterator): Pass en_us for locale (same as old code).
40442         (WebCore::sentenceBreakIterator): Added.
40443         * platform/TextBreakIteratorInternalICU.h: Added.
40444         * platform/gdk/TemporaryLinkStubs.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
40445         (WebCore::currentTextBreakLocaleID): Added stub.
40446         * platform/mac/TextBoundaries.mm: Removed currentTextBreakLocaleID, findSentenceBoundary, findNextSentenceFromIndex.
40447         * platform/mac/TextBreakIteratorInternalICUMac.mm: Added.
40448         (WebCore::currentTextBreakLocaleID): Moved from TextBoundaries.mm
40449         * platform/qt/TextBoundaries.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
40451 2007-05-04  Adele Peterson  <adele@apple.com>
40453         Reviewed by Hyatt.
40455         Fix for <rdar://problem/5116871> REGRESSION: Can't select options in widget's listbox
40457         Don't use user-select to determine whether or not options can be selected in listboxes.
40458         This will match Firefox behavior for -moz-user-select.
40460         * html/HTMLSelectElement.cpp:
40461         (WebCore::HTMLSelectElement::canSelectAll):
40462         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
40464 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
40466         Reviewed by Tim Hatcher.
40468         First step in fixing <rdar://problem/5055182> The back cache has no global cap
40470         Stop giving SnapBack infinite cache-ability. Instead, make SnapBack rely
40471         on the underlying back cache.
40473         * WebCore.exp:
40474         * history/HistoryItem.cpp:
40475         (WebCore::HistoryItem::HistoryItem):
40476         * history/HistoryItem.h:
40477         * loader/FrameLoader.cpp:
40478         (WebCore::FrameLoader::purgePageCache):
40480 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
40482         Reviewed by Brady Eidson.
40483         
40484         Removed export of clearPageCache(), since it was unused externally. I plan
40485         to remove its use from WebCore eventually, too.
40487         Removed usesPageCache(), since it was unused and it duplicated pageCacheSize().
40489         * WebCore.exp:
40490         * history/BackForwardList.cpp:
40491         * history/BackForwardList.h: Moved statics to the top of the class definition.
40492         * loader/FrameLoader.cpp:
40493         (WebCore::FrameLoader::canCachePage):
40495 2007-05-04  Anders Carlsson  <andersca@apple.com>
40497         Reviewed by Antti.
40499         <rdar://problem/5179977> Use the correct URLs when dispatching delegate methods for data loads.
40501         Restore behavior to matching release WebKit by adding a response URL to SubstituteData. If a nil base URL is
40502         passed, set the _request_ URL to "about:blank", but the response URL to a generated "applewebdata" URL.
40504         * loader/FrameLoader.cpp:
40505         (WebCore::FrameLoader::commitProvisionalLoad):
40506         First, check for the SubstituteData's response URL.
40508         (WebCore::FrameLoader::continueAfterNavigationPolicy):
40509         No need to special case applewebdata URLs here, they're only used in the response.
40511         * loader/MainResourceLoader.cpp:
40512         (WebCore::MainResourceLoader::handleDataLoadNow):
40513         If the substitute data has a response URL, use it.
40515         (WebCore::MainResourceLoader::loadNow):
40516         Only load "about:blank" as an empty document if there's no substitute data.
40518         * loader/SubstituteData.h:
40519         (WebCore::SubstituteData::SubstituteData):
40520         (WebCore::SubstituteData::responseURL):
40521         Add responseURL member to SubstituteData.
40523 2007-05-03  Steve Falkenburg  <sfalken@apple.com>
40525         Reviewed by Oliver.
40527         Add missing user description parameter to spelling-related editor client method.
40529         * bridge/EditorClient.h:
40530         * platform/gdk/EditorClientGdk.cpp:
40531         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
40532         * platform/gdk/EditorClientGdk.h:
40533         * platform/graphics/svg/SVGImageEmptyClients.h:
40534         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
40536 2007-05-03  Brady Eidson  <beidson@apple.com>
40538         Reviewed by Oliver
40540         Resolve an outstanding FIXME in Loader::numRequests()
40542         Before, numRequests() would iterate through the list of requests pending load and the list of currently
40543         loading requests and tally up a count matching the current DocLoader.
40545         I noticed while studying and cleaning up the loader code that numRequests() is potentially very hot!
40546         Indeed load a complex site with many resources and multiple frames, and this method gets called very often,
40547         tallying up this number every time.
40549         The FIXME was to keep a collection of Requests mapped to each DocLoader.  In reality, since this map would
40550         simply be used for retrieving a count, that was overkill.  Keeping a request count in the DocLoader itself
40551         along with maintaining that count in Loader as requests come and go is a much better way to do this.
40553         * loader/DocLoader.cpp:
40554         (WebCore::DocLoader::DocLoader):
40555         (WebCore::DocLoader::incrementRequestCount):
40556         (WebCore::DocLoader::decrementRequestCount):
40557         (WebCore::DocLoader::requestCount): Emulate the defunct Loader::numRequests()
40558         * loader/DocLoader.h:
40560         * loader/FrameLoader.cpp:
40561         (WebCore::numRequests): Call DocLoader::requestCount() directly
40562         (WebCore::FrameLoader::checkCompleted): Use numRequests()
40564         * loader/loader.cpp:
40565         (WebCore::Loader::load): Increment the DocLoader's request count
40566         (WebCore::Loader::servePendingRequests): If the SubresourceLoader failed to create, decrement the count
40567         (WebCore::Loader::didFinishLoading): If the Request is not Multipart, decrement the count
40568         (WebCore::Loader::didFail): If the Request is not Multipart, decrement the count
40569         (WebCore::Loader::didReceiveResponse): If the Request becomes Multipart, decrement the count
40570         (WebCore::Loader::cancelRequests): Decrement the count for the pending requests being tossed, and ASSERT the
40571           count is zero after all requests have been cancelled
40572         * loader/loader.h:
40574 2007-05-03  Geoffrey Garen  <ggaren@apple.com>
40576         Reviewed by Brady Eidson.
40577         
40578         Some cleanup in preparation for fixing <rdar://problem/5055182> The 
40579         back/forward cache has no global cap
40581         * loader/FrameLoader.cpp:
40582         (WebCore::FrameLoader::provisionalLoadStarted): Moved "Can I cache this
40583         page?" logic to canCachePage(). Moved "I am caching this page" logic to
40584         cachePageToHistoryItem().
40585         (WebCore::FrameLoader::canCachePage): Moved above logic here.
40586         (WebCore::FrameLoader::cachePageToHistoryItem): Removed bogus NULL check
40587         and failure return value. Moved above logic here. Don't call setCachedPage()
40588         until the CachedPage is fully constructed.
40589         (WebCore::FrameLoader::purgePageCache): Removed comment that duplicated
40590         the function name.
40591         * loader/FrameLoader.h:
40593 2007-05-03  Justin Garcia  <justin.garcia@apple.com>
40595         Reviewed by harrison.
40597         <rdar://problem/5120281> CrashTracer: [USER] 1 crash in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties() const
40599         Problem is that checkAncestor and lastClosed can be nil when createMarkup is called unrendered nodes, and that was not checked for.
40600         
40601         * editing/markup.cpp:
40602         (WebCore::createMarkup):
40603         Nil-check checkAncestor and lastClosed.
40605 2007-05-03  Timothy Hatcher  <timothy@apple.com>
40607         Reviewed by Kevin.
40609         <rdar://problem/5016318> Contextual menu item for opening links is missing in compose windows but present in viewer
40611         Add the Open Link, Open Link in New Window, Download Linked File and Copy Link menu
40612         items to the content editable context menu.
40614         * platform/ContextMenu.cpp:
40615         (WebCore::ContextMenu::populate):
40617 2007-05-03  Holger Freyther <freyther@kde.org>
40619         Reviewed by Zack, landed by Simon.
40620         This is bugzilla bug 13499.
40622         * WebCore.pro: Place the Qt port into the qt-port scope, add the Gdk port
40624 2007-05-03  Adele Peterson  <adele@apple.com>
40626         Use BUILDING_ON_TIGER.
40628         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
40630 2007-05-03  Brady Eidson  <beidson@apple.com>
40632         Reviewed by Darin
40634         Some more minor cleanup that resolves a FIXME and ditches another pointless method
40636         No change in functionality == no layout test
40638         * loader/FrameLoader.cpp:
40639         (WebCore::FrameLoader::commitProvisionalLoad):  Updated a comment
40640         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Folded startLoading() into this method
40641         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): continueAfterWillSubmitForm becomes continueLoadAfterWillSubmitForm
40642         * loader/FrameLoader.h: Removed startLoading()
40644 2007-05-03  Adele Peterson  <adele@apple.com>
40646         Reviewed by Tim Hatcher.
40648         Fix for <rdar://problem/4727607> REGRESSION: KeyScript is deprecated, need a new solution for forcing Roman input for password fields on Leopard
40650         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
40651         Use TSMSetDocumentProperty and TSMRemoveDocumentProperty on Leopard disable and enable non-ascii input sources.
40653 2007-05-03  Brady Eidson  <beidson@apple.com>
40655         Reviewed by Anders
40657         commitProvisionalLoad() was the name of two methods.
40658         One of them was private and only called from one other private place.
40659         This was driving me crazy.  I had to change that.
40661         No change in functionality == no layout test
40663         * loader/FrameLoader.cpp:
40664         (WebCore::FrameLoader::transitionToCommitted): roll commitProvisionalLoad() into this method
40665         * loader/FrameLoader.h: Removed commitProvisionalLoad()
40667 2007-05-03  Darin Adler  <darin@apple.com>
40669         Reviewed by Anders.
40671         - make ICU initialization lazy to speed up application start-up time
40672           (when it includes an initial webpage load)
40674         * platform/TextCodecICU.h: Replaced registerEncodingNames and
40675         registerCodecs with registerBaseEncodingNames, registerBaseCodecs,
40676         registerExtendedEncodingNames, and registerExtendedCodecs.
40677         * platform/TextCodecICU.cpp:
40678         (WebCore::newTextCodecICU): Moved up to the top of the file.
40679         (WebCore::TextCodecICU::registerBaseEncodingNames): Added. Registers
40680         just UTF-8.
40681         (WebCore::TextCodecICU::registerBaseCodecs): Ditto.
40682         (WebCore::TextCodecICU::registerExtendedEncodingNames): Renamed.
40683         (WebCore::TextCodecICU::registerExtendedCodecs): Ditto.
40684         (WebCore::TextCodecICU::createICUConverter): Compare with the name
40685         "GBK" in a way that does not require extending the maps.
40687         * platform/TextEncoding.cpp:
40688         (WebCore::TextEncoding::usesVisualOrdering): Added code so this will
40689         just return false if we haven't used any extended encoding names yet.
40690         The result will be correct, and we won't ask for an encoding name that
40691         will require registering the extended encoding names.
40692         (WebCore::TextEncoding::isJapanese): Ditto.
40693         (WebCore::TextEncoding::backslashAsCurrencySymbol): Ditto, but return
40694         a backslash instead of false.
40696         * platform/TextEncodingRegistry.h: Added a new function named
40697          noExtendedTextEncodingNameUsed.
40698         * platform/TextEncodingRegistry.cpp:
40699         (WebCore::buildBaseTextCodecMaps): Added. Registers the base encodings,
40700         including Latin-1 because it's the default, and the UTF encodings.
40701         (WebCore::extendTextCodecMaps): Added. Registers all the other encodings.
40702         (WebCore::newTextCodec): Removed the all to buildTextCodecMap because
40703         we always build the map when making the canonical encoding name.
40704         (WebCore::atomicCanonicalTextEncodingName): Changed code to build only
40705         the base maps at first, then extend the maps the first time we run into
40706         a name we don't know.
40707         (WebCore::noExtendedTextEncodingNameUsed): Added.
40709 2007-05-03  Mark Rowe  <mrowe@apple.com>
40711         Qt build fix.  In r21185 the Qt version of WebCore::scaleDragImage was
40712         updated to have the incorrect signature.
40714         * platform/qt/DragImageQt.cpp:
40715         (WebCore::scaleDragImage):
40717 2007-05-02  Beth Dakin  <bdakin@apple.com>
40719         * dom/Node.h: Just fixing a variable name because it's driving me 
40720         mad.
40722 2007-05-02  Beth Dakin  <bdakin@apple.com>
40724         Reviewed by Hyatt.
40726         Fix for <rdar://problem/4513966> Never-ending identical repaint @ 
40727         orbitz.com (Safari eating 85% CPU)
40729         We need to be a little bit more savvy about when we do a FULL style 
40730         recalc since it can be unnecessary and expensive.
40732         * css/CSSMutableStyleDeclaration.cpp:
40733         (WebCore::CSSMutableStyleDeclaration::setChanged): Now takes a 
40734         StyleChangeType as a parameter.
40735         (WebCore::CSSMutableStyleDeclaration::setProperty): Send 
40736         InlineStyleChange as the paramter. This is the optimization!
40737         * css/CSSMutableStyleDeclaration.h: setChanged takes a 
40738         StyleChangeType as a parameter.
40739         * dom/Document.cpp: setChanged now takes a StyleChangeType instead 
40740         of a bool.
40741         (WebCore::Document::recalcStyle): Same.
40742         * dom/Element.cpp: 
40743         (WebCore::Element::recalcStyle): This is the fix!! Only set change 
40744         to Force is we use descendant rules AND it's a FullStyleChange.
40745         * dom/Node.cpp: m_hasStyle was an unused bit on Node, so this patch 
40746         gets rid of it and uses that extra bit for m_changed to be a 
40747         StyleChangeType instead of a bool.
40748         (WebCore::Node::Node):
40749         (WebCore::Node::setChanged):
40750         (WebCore::Node::dump):
40751         * dom/Node.h: Same.
40752         (WebCore::): Define the StyleChangeType enum.
40753         (WebCore::Node::hasClass):
40754         (WebCore::Node::changed):
40755         (WebCore::Node::styleChangeType):
40756         (WebCore::Node::setHasClass):
40757         * dom/StyledElement.cpp:
40758         (WebCore::StyledElement::parseMappedAttribute): Don't bother 
40759         calling setHasStyle() since m_hasStyle is gone now. It was never 
40760         used, and this was the only place it was set.
40761         * dom/Text.cpp:
40762         (WebCore::Text::recalcStyle): setChanged now takes a 
40763         StyleChangeType instead of a bool.
40764         * html/HTMLFrameSetElement.cpp:
40765         (WebCore::HTMLFrameSetElement::recalcStyle): Same.
40766         * html/HTMLSelectElement.cpp:
40767         (WebCore::HTMLSelectElement::restoreState): Same.
40768         (WebCore::HTMLSelectElement::reset): Same.
40769         * html/HTMLTextAreaElement.cpp:
40770         (WebCore::HTMLTextAreaElement::setValue): Same.
40771         * ksvg2/misc/SVGTimer.cpp:
40772         (WebCore::SVGTimer::applyAnimations): Same.
40773         * ksvg2/svg/SVGUseElement.cpp:
40774         (WebCore::SVGUseElement::recalcStyle): Same.
40775         * platform/graphics/svg/SVGResource.cpp:
40776         (WebCore::SVGResource::repaintClients): Same.
40778 2007-05-02  David Harrison  <harrison@apple.com>
40780         Reviewed by Antti.
40782         <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, and shouldn't show markers for current sentence
40784         Restore the remainder of the original fix now that blocking bug rdar://5174862 is addressed.
40786         John made the original patch on 2007-04-10, but this fell prey to rdar://5157329.
40787         Justin backed out the whole patch on 2007-04-30 to avoid the crash.
40788         Justin then restored most of the original patch, but used word granularity instead, to keep the build working.
40789         I just addressed the root cause of rdar://5157329 in rdar://5174862.
40790         This patch switches the temp uses of word granularity back to sentence granularity.
40791         
40792         * editing/mac/EditorMac.mm:
40793         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
40794         * page/Frame.cpp:
40795         (WebCore::Frame::respondToChangedSelection):
40797 2007-05-02  David Harrison  <harrison@apple.com>
40799         Reviewed by Antti.
40801         <rdar://problem/5174862> Crash resulting from DeprecatedString::insert()
40802         
40803         Test added: editing/selection/move-by-sentence-001.html
40805         * editing/visible_units.cpp:
40806         (WebCore::previousBoundary):
40807         (WebCore::nextBoundary):
40808         Use a UChar Vector instead of DeprecatedString.
40809         Avoid creating an extra string for secure bullet replacement unless it is actually needed.
40810         
40811         * platform/DeprecatedString.cpp:
40812         (WebCore::DeprecatedString::insert):
40813         Call forceUnicode() before setLength(), so that only the unicode buffer is resized.
40815        (WebCore::DeprecatedString::setLength):
40816         Adjust the unicode buffer even if the ascii buffer is valid.
40817         
40818 2007-05-02  Mitz Pettel  <mitz@webkit.org>
40820         Reviewed by Brady.
40822         - http://bugs.webkit.org/show_bug.cgi?id=13564
40823           Remove friend class FrameLoader from Frame
40825         No test added since there is no change in functionality.
40827         * loader/FrameLoader.cpp:
40828         (WebCore::FrameLoader::didOpenURL):
40829         (WebCore::FrameLoader::begin):
40830         (WebCore::FrameLoader::open):
40831         * loader/FrameLoader.h: Made clear() private.
40832         * page/Frame.cpp:
40833         (WebCore::Frame::setDocument): Changed the argument into a PassRefPtr.
40834         * page/Frame.h:
40835         * xml/XSLTProcessor.cpp:
40836         (WebCore::XSLTProcessor::createDocumentFromSource):
40838 2007-05-02  Mitz Pettel  <mitz@webkit.org>
40840         Reviewed by Dave Hyatt.
40842         - fix http://bugs.webkit.org/show_bug.cgi?id=9276
40843           Quirksmode: Image swap resize bug
40845         Test: fast/replaced/image-resize-width.html
40847         * rendering/RenderImage.cpp:
40848         (WebCore::RenderImage::imageChanged): Moved the call to dirtyPrefWidths()
40849         before the call to calcWidth().
40851 2007-05-02  David Hyatt  <hyatt@apple.com>
40853         Fix for bug 13566, broken Dashboard widgets.  setPrefWidthsDirty did
40854         the wrong thing for text children of a positioned element.
40856         Reviewed by mitz
40858         fast/block/positioning/pref-width-change.html
40860         * rendering/RenderObject.cpp:
40861         (WebCore::RenderObject::setPrefWidthsDirty):
40863 2007-05-01  Darin Adler  <darin@apple.com>
40865         * rendering/RenderReplaced.cpp: Fix typo in a comment.
40867 2007-05-01  David Hyatt  <hyatt@apple.com>
40869         Fix for 13558, crash when using absolutely positioned generated content
40870         inside an inline.
40872         Reviewed by darin
40874         fast/css-generated-content/absolute-position-inside-inline.html
40876         * rendering/RenderContainer.cpp:
40877         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
40879 2007-05-01  Justin Garcia  <justin.garcia@apple.com>
40881         Reviewed by darin
40883         <rdar://problem/5002441> 
40884         Pressing space key does nothing above quoted content or a signature
40885         
40886         Inserting a space under these circumstances inserts a single 
40887         text node containing a regular space and then does a layout. 
40888         That space isn't rendered (which is correct).  Whitespace 
40889         rebalancing is supposed to correct it but failed.  It replaces 
40890         the space with a non-breaking space, but that change doesn't 
40891         dirty line boxes (9441) and so the space isn't rendered.
40892         
40893         This workaround turns all incoming spaces into non-breaking 
40894         spaces before they're inserted (they're rebalanced after 
40895         insertion and turned back into regular spaces if possible).
40897         * editing/InsertTextCommand.cpp:
40898         (WebCore::InsertTextCommand::prepareForTextInsertion): Removed
40899         an old irrelevant FIXME.
40900         (WebCore::InsertTextCommand::input): Turn incoming spaces into
40901         non breaking spaces before inserting them.
40902         
40903 2007-05-01  Darin Adler  <darin@apple.com>
40905         Reviewed by Hyatt.
40907         - fix http://bugs.webkit.org/show_bug.cgi?id=13559
40908           REGRESSION: Canvas aspect ratio is incorrect
40910         - remove intrinsicWidth/Height functions from RenderObject
40912         Test: fast/canvas/canvas-size-change-after-layout.html
40914         * html/HTMLCanvasElement.cpp:
40915         (WebCore::HTMLCanvasElement::createRenderer): Removed code to set
40916         the intrinsic size, because the renderer now takes care of this
40917         in its constructor.
40918         (WebCore::HTMLCanvasElement::reset): Instead of calling the
40919         setIntrinsicWidth/Height functions, call canvasSizeChanged, which
40920         takes care of layout, but only if the size actually changed. Also
40921         call repaint if the contents of the canvas changed.
40923         * rendering/RenderApplet.h:
40924         * rendering/RenderApplet.cpp: (WebCore::RenderApplet::intrinsicSize):
40925         Override the new intrinsicSize function. This override still doesn't
40926         make sense, so left a FIXME in here.
40928         * rendering/RenderBox.h: Added an intrinsicSize function here to replace
40929         the intrinsicWidth/Height functions removed from RenderObject.
40930         * rendering/RenderBox.cpp:
40931         (WebCore::RenderBox::calcReplacedWidthUsing): Use intrinsicSize instead
40932         of intrinsicWidth.
40933         (WebCore::RenderBox::calcReplacedHeightUsing): Ditto, but for height.
40935         * rendering/RenderHTMLCanvas.h: Changed the constructor parameter to be
40936         an HTMLCanvasElement* instead of Node*. Also added a canvasSizeChanged
40937         function.
40938         * rendering/RenderHTMLCanvas.cpp:
40939         (WebCore::RenderHTMLCanvas::RenderHTMLCanvas): Pass an initial intrinsic
40940         size based on the current size of the canvas element. This is now the
40941         responsibility of the renderer and the DOM element calls the canvasSizeChanged
40942         function when the size changes.
40943         (WebCore::RenderHTMLCanvas::paint): Removed checks of the type of the element,
40944         and used the node() function because we don't have to worry about the anonymous
40945         case in this class.
40946         (WebCore::RenderHTMLCanvas::canvasSizeChanged): Added. Changes the size and
40947         then calls setNeedsLayout and setPrefWidthsDirty as needed. I based the logic
40948         here on careful reading of RenderImage::imageChanged.
40950         * rendering/RenderImage.cpp:
40951         (WebCore::RenderImage::RenderImage): Pass a default intrinsic size of 0,0
40952         instead of calling setIntrinsicWidth/Height.
40953         (WebCore::RenderImage::setImageSizeForAltText): Call the new intrinsic size
40954         functions instead of the width/height ones. Simplifies the logic since we
40955         handle both dimensions at once.
40956         (WebCore::RenderImage::imageChanged): Ditto.
40957         (WebCore::RenderImage::layout): Ditto.
40958         (WebCore::RenderImage::calcAspectRatioWidth): Ditto.
40959         (WebCore::RenderImage::calcAspectRatioHeight): Ditto.
40961         * rendering/RenderObject.h: Removed intrinsicWidth/Height virtual functions.
40963         * rendering/RenderReplaced.h: Replaced intrinsicWidth, intrinsicHeight,
40964         setIntrinsicWidth, setIntrinsicHeight, m_intrinsicWidth, and m_intrinsicHeight
40965         with intrinsicSize, setIntrinsicSize, and m_intrinsicSize.
40966         * rendering/RenderReplaced.cpp:
40967         (WebCore::RenderReplaced::RenderReplaced): Added a second contructor that takes
40968         an intrinsic size parameter. Also updated constructor since the intrinsic size
40969         is now an IntSize instead of two integers.
40970         (WebCore::RenderReplaced::intrinsicSize): Added. No point in making this inline
40971         because it's a virtual function.
40972         (WebCore::RenderReplaced::setIntrinsicSize): Added. Didn't make this inline,
40973         partly because in the future we might want this to be more than just a simple
40974         setter function, factoring in common code used in both RenderImage and
40975         RenderHTMLCanvas.
40977         * rendering/RenderWidget.h: Removed a stray using declaration that wasn't needed.
40979 2007-05-01  David Hyatt  <hyatt@apple.com>
40981         Fix for hang when incorrectly trying to add before/after content to
40982         a <select>.  Disallow generated content in all selects and also turn it
40983         off for <input> buttons.
40985         Reviewed by aroben
40987         * rendering/RenderBlock.cpp:
40988         (WebCore::RenderBlock::setStyle):
40989         * rendering/RenderButton.cpp:
40990         (WebCore::RenderButton::canHaveChildren):
40991         * rendering/RenderButton.h:
40993 2007-05-01  Darin Adler  <darin@apple.com>
40995         Reviewed by Hyatt.
40997         - removed the m_implicit bit from Node, freeing up a bit
40999         - fixed <rdar://problem/5172607> XML parser is creating implicit tbody elements
41000         - fixed <rdar://problem/5172596> HTML-parser-created tbody elements are being
41001           ignored when processing CSS child rules
41003         Test: fast/css/child-selector-implicit-tbody.html
41005         * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::checkSelector):
41006         Removed code that used to look at implicitNode(), which no longer exists.
41008         * css/html4.css: Added a style rule to handle cases where we have a tr
41009         inside a table with no intervening table section.
41011         * dom/Node.h: Removed the bit.
41012         * dom/Node.cpp:
41013         (WebCore::Node::Node): Don't initialize the bit.
41014         (WebCore::Node::dump): Don't dump the bit.
41016         * dom/XMLTokenizer.cpp:
41017         (WebCore::XMLTokenizer::startElementNs): Remove the code that made a
41018         table body element. This is handled in the render tree, the DOM tree
41019         should not be mangled.
41020         (WebCore::XMLTokenizer::endElementNs): Removed code that used to look at
41021         implicitNode(), which no longer exists.
41023         * html/HTMLElementFactory.cpp: (WebCore::tableSectionConstructor):
41024         Removed boolean parameter that was passed to the HTMLTableSectionElement
41025         constructor.
41026         * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Ditto.
41027         * html/HTMLTableElement.cpp:
41028         (WebCore::HTMLTableElement::createTHead): Ditto.
41029         (WebCore::HTMLTableElement::createTFoot): Ditto.
41030         (WebCore::HTMLTableElement::insertRow): Changed to return a PassRefPtr,
41031         because it's possible the row could be removed from the table by JavaScript
41032         code responding to DOM mutation events before the function returns. Just
41033         something I noticed by code inspection.
41035         * html/HTMLTableSectionElement.cpp:
41036         (WebCore::HTMLTableSectionElement::HTMLTableSectionElement): Removed
41037         boolean "implicit" parameter to the constructor.
41038         (WebCore::HTMLTableSectionElement::insertRow): Changed to return a
41039         PassRefPtr for the same reason cited above.
41041         * html/HTMLTableElement.h: Changed the return value of insertRow to be
41042         a PassRefPtr.
41043         * html/HTMLTableSectionElement.h: Ditto.
41045 2007-04-30  David Hyatt  <hyatt@apple.com>
41047         Fix for bug 12691, generated content and display: table-cell duplicates
41048         content on a size change.  Make sure that the code to update before/after
41049         content is smart enough to drill into anonymous containers to find the
41050         old child.
41052         Reviewed by olliej
41054         Added fast/css-generated-content/table-cell-before-content.html
41056         * rendering/RenderBlock.cpp:
41057         (WebCore::RenderBlock::setStyle):
41058         * rendering/RenderButton.cpp:
41059         (WebCore::RenderButton::updateBeforeAfterContent):
41060         * rendering/RenderButton.h:
41061         * rendering/RenderContainer.cpp:
41062         (WebCore::RenderContainer::beforeAfterContainer):
41063         (WebCore::RenderContainer::updateBeforeAfterContent):
41064         (WebCore::RenderContainer::updateBeforeAfterContentForObject):
41065         * rendering/RenderContainer.h:
41066         * rendering/RenderInline.cpp:
41067         (WebCore::RenderInline::setStyle):
41068         (WebCore::RenderInline::addChildToFlow):
41069         (WebCore::RenderInline::splitInlines):
41071 2007-04-30  Jungshik Shin <jungshik.shin@gmail.com>
41073         Reviewed by justin
41074         
41075         <http://bugs.webkit.org/show_bug.cgi?id=13552>
41076         comment to Range::comparePoint in dom/Range.cpp has 
41077         '0xD0' in place of '-': leading to a compiler warning
41079         * dom/Range.cpp:
41080         (WebCore::Range::comparePoint):
41082 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41084         Reviewed by darin
41086         <rdar://problem/4875189> List gets deleted when replacing contents
41088         * editing/ReplaceSelectionCommand.cpp:
41089         (WebCore::ReplaceSelectionCommand::doApply): Don't expand
41090         to include elements, like lists, when deleting a selection 
41091         to replace it.
41093 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41095         Reviewed by ggaren
41096         
41097         Buildfix.  Leave in grammar checking machinery to 
41098         keep WebKit building on other platforms but don't
41099         operate on sentence sized chunks so that we don't
41100         re-introduce 5157329.
41102         * editing/Editor.h:
41103         * editing/mac/EditorMac.mm:
41104         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
41105         (WebCore::markMisspellingsOrBadGrammar):
41106         (WebCore::Editor::markMisspellings):
41107         (WebCore::Editor::markBadGrammar):
41108         * page/Frame.cpp:
41109         (WebCore::Frame::respondToChangedSelection):
41111 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41113         Reviewed by darin
41115         <rdar://problem/5168598> 
41116         Crash when deleting a link inside an input field
41117         
41118         Deletion code tries to update one of its positions to keep 
41119         it valid and nullifies it.  Later in mergeParagraphs we try 
41120         to find out if it's valid by checking to see if it's still in 
41121         the document and crash.
41122         
41123         The fix is just to not bother keeping the position, 
41124         m_upstreamStart, valid, since after the point in the code 
41125         under examination, it doesn't need to be valid anymore.  
41126         Besides, code to update DeleteSelectionCommand's positions 
41127         should go in the functions that handle the content removal 
41128         that might invalid them (there are already FIXMEs about this).
41129         
41130         Also, users shouldn't be able to insert links (or any rich content)
41131         into plaintext-only regions like text fields, even if those
41132         text fields are inside richly editable regions.  This is a 
41133         separate bug and is filed as 5171552.
41135         * editing/DeleteSelectionCommand.cpp:
41136         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Don't
41137         bother updating m_upstreamStart.
41139 2007-04-30  Patti Hoa  <patti@apple.com>
41141         Reviewed by Dave Hyatt.
41142         
41143         <rdar://problem/5108546> REGRESSION: Zoom follows keyboard focus does not work
41145         * WebCore.xcodeproj/project.pbxproj:
41146         Add new file SelectionControllerMac.mm
41147         * dom/Document.cpp:
41148         (WebCore::Document::updateSelection):
41149         Move the code to fire off AXSelectedTextChanged notification to a new method notifyAccessibilityForSelectionChange in SelectionControllerMac.mm
41150         * editing/SelectionController.cpp:
41151         (WebCore::SelectionController::setSelection):
41152         call notifyAccessibilityForSelectionChange to handle firing of accessibility notification and zoomFocusChange
41153         * editing/SelectionController.h:
41154         Add notifyAccessibilityForSelectionChange method for Mac platform
41155         * platform/Widget.h:
41156         * platform/mac/WidgetMac.mm:
41157         (WebCore::Widget::convertToScreenCoordinate):
41158         Add a helper routine that takes IntPoint in local coordinate and convert that to screen coordinate
41160 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41162         Reviewed by harrison
41164         <rdar://problem/5157329> 
41165         REGRESSION: Crash at WTF::fastFree() when arrowing or deleting backward through editable text (13493)
41166         
41167         Backing out the changes for 4859132.
41169         * editing/Editor.h:
41170         * editing/mac/EditorMac.mm:
41171         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
41172         (WebCore::Editor::markMisspellings):
41173         * page/Frame.cpp:
41174         (WebCore::Frame::respondToChangedSelection):
41176 2007-04-29  Antti Koivisto  <antti@apple.com>
41178         Reviewed by Oliver.
41180         Fix <rdar://problem/5169261>
41181         REGRESSION: Google Maps zooming too sensitive when using two fingers on trackpad
41182         
41183         Use line based delta values when generating DOM wheel events, use pixel deltas
41184         for scrolling only.
41185         
41186         No test case, requires user interaction and specific hardware.
41188         * page/EventHandler.cpp:
41189         (WebCore::EventHandler::handleWheelEvent):
41190         * platform/PlatformWheelEvent.h:
41191         (WebCore::PlatformWheelEvent::continuousDeltaX):
41192         (WebCore::PlatformWheelEvent::continuousDeltaY):
41193         * platform/mac/WheelEventMac.mm:
41194         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
41196 2007-04-29  Oliver Hunt  <oliver@apple.com>
41198         Reviewed by Brady.
41200         Build fix for experimental features build
41202         * rendering/RenderForeignObject.cpp:
41204 2007-04-29  Mitz Pettel  <mitz@webkit.org>
41206         Reviewed by Dave Hyatt.
41208         - fix http://bugs.webkit.org/show_bug.cgi?id=13544
41209           REGRESSION (r21120): Member profile frame not erased at Yahoo! Answers
41211         Test: fast/repaint/layer-hide-when-needs-layout.html
41213         * rendering/RenderObject.cpp:
41214         (WebCore::RenderObject::setStyle): If we get a layout hint, we count on
41215         layout() or updateLayerPositions() to repaint. In the case of a layer
41216         going invisible, however, we need to repaint here since neither of the
41217         above will do it.
41219 2007-04-29  Oliver Hunt  <oliver@apple.com>
41221         Reviewed by Steve.
41223         Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
41225         Added logic to ensure that when we create the drag image
41226         we're looking at the rendered image size.
41228         * page/DragController.cpp:
41229         (WebCore::DragController::doImageDrag):
41230           Pass the rendered image size to fitDragImageToMaxSize
41232         * platform/DragImage.cpp:
41233         (WebCore::fitDragImageToMaxSize):
41234            Need to do scaling relative to rendered image size
41236         * platform/DragImage.h:
41237            scaleDragImage needs x and y scales to allow for them to be
41238            scaled seperately on a page
41240         * platform/gdk/DragImageGdk.cpp:
41241         (WebCore::scaleDragImage):
41242            Prevent build bustage
41244         * platform/mac/DragImageMac.mm:
41245         (WebCore::scaleDragImage):
41246            scale width and height independently
41248         * platform/qt/DragImageQt.cpp:
41249         (WebCore::scaleDragImage):
41250            Prevent build bustage
41252 2007-04-29  Darin Adler  <darin@apple.com>
41254         Reviewed by Adele.
41256         - fix the Gmail part of http://bugs.webkit.org/show_bug.cgi?id=12798
41257           and <rdar://problem/4118559>
41259         This patch changes things so that resizing can make things larger than their
41260         initial size, but not smaller. I believe this resolves the problem for Gmail,
41261         but you can still get strange behavior if you have a small right-aligned <textarea>.
41263         * rendering/RenderLayer.cpp:
41264         (WebCore::RenderLayer::resize): Rewrote to use more IntPoint and IntSize and add
41265         in a new minimum-size algorithm. This function now has the side effect of storing
41266         a new minimumSizeForResizing in the element being resized, and respects any existing
41267         minimum as well.
41268         (WebCore::RenderLayer::offsetFromResizeCorner): Reversed this so it converts the
41269         point into coordinates relative to the resize corner, hence negative numbers mean
41270         the point is above and to the left. This is used only in the algorithm above.
41272         * dom/Element.h: Removed unneeded include of Attr.h, and added forward declarations
41273         as needed. Removed all friend declarations; there was no need for any of them.
41274         Tweaked formatting of various declarations and removed unneeded parameter names.
41275         Made as much as possible private, and a couple things public to avoid the need for
41276         friend classes. Added minimumSizeForResizing, setMinimumSizeForResizing, rareData,
41277         and createRareData functions.
41279         * dom/Element.cpp:
41280         (WebCore::rareDataMap): Added. Function to return the single global map.
41281         (WebCore::rareDataFromMap): Added. For use by inlined functions to get the
41282         data from the map in the case where it's present.
41283         (WebCore::ElementRareData::ElementRareData): Added.
41284         (WebCore::Element::~Element): Added code to delete the element from the rare
41285         data map when appropriate.
41286         (WebCore::Element::rareData): Added.
41287         (WebCore::Element::createRareData): Added.
41288         (WebCore::Element::setAttributeNodeNS): Got rid of the old inline version of this,
41289         since it was the sole reason we had to include Attr.h in Element.h.
41290         (WebCore::Element::minimumSizeForResizing): Added. Accesses rare data.
41291         (WebCore::Element::setMinimumSizeForResizing): Ditto.
41293         * dom/Node.h: Renamed the m_specified bit since it's now used for two purposes.
41294         Its new long name is m_attrWasSpecifiedOrElementHasRareData.
41296         * dom/Attr.cpp: (WebCore::Attr::Attr): Updated for bit name change.
41297         * dom/Attr.h:
41298         (WebCore::Attr::specified): Ditto.
41299         (WebCore::Attr::setSpecified): Added, since setting the bit directly is pretty ugly now.
41300         * dom/Document.cpp: (WebCore::Document::adoptNode): Updated for bit name change.
41301         * dom/Node.cpp:
41302         (WebCore::Node::Node): Ditto.
41303         (WebCore::Node::dump): Ditto.
41305         * dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::isReadOnlyNode): Moved out of line,
41306         since this was the sole reason we had to include Element.h in NamedAttrMap.h.
41308         * html/HTMLElement.cpp:
41309         (WebCore::HTMLElement::nodeName): Changed to use tagQName() since that's a public
41310         way to do something that's now private.
41311         (WebCore::HTMLElement::cloneNode): Ditto.
41313         * dom/Attribute.cpp:
41314         * dom/NamedAttrMap.h:
41315         * dom/NamedMappedAttrMap.cpp:
41316         * dom/StyledElement.h:
41317         * html/HTMLTokenizer.h:
41318         * xml/XPathFunctions.cpp:
41319         * xml/XPathStep.cpp:
41320         Updated includes, and other administrivia.
41322 2007-04-29  Mitz Pettel  <mitz@webkit.org>
41324         Reviewed by Darin and Hyatt.
41326         - http://bugs.webkit.org/show_bug.cgi?id=13487
41327           Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
41329         Test for a bug fixed by this patch: fast/repaint/intermediate-layout-position-clip.html
41331         By keeping track of the total translation and clip during layout, absolutePosition and
41332         computeAbsoluteRepaintRect become O(1).
41334         * WebCore.pro: Added LayoutState.cpp
41335         * WebCore.vcproj/WebCore/WebCore.vcproj: Added LayoutState.{cpp,h}
41336         * WebCore.xcodeproj/project.pbxproj: Added LayoutState.{cpp,h}
41337         * WebCoreSources.bkl: Added LayoutState.cpp
41338         * page/FrameView.cpp:
41339         (WebCore::FrameView::layout): When doing subtree layout, push an initial layout state for the
41340         layout root.
41341         * rendering/LayoutState.cpp: Added. A LayoutState corresponding to a box consists of the origin of
41342         its coordinate system in view coordinates and possibly the clip rect, in view coordinates, which
41343         applies to its children.
41344         (WebCore::LayoutState::LayoutState):
41345         (WebCore::LayoutState::destroy):
41346         (WebCore::throw):
41347         (WebCore::LayoutState::operator delete):
41348         * rendering/LayoutState.h: Added.
41349         (WebCore::LayoutState::LayoutState):
41350         * rendering/RenderBlock.cpp:
41351         (WebCore::RenderBlock::layoutBlock): Factored out the "only positioned objects" case into
41352         layoutOnlyPositionedObjects(). Added code to push/pop LayoutState, unless we have columns, in
41353         which case we disable/enable LayoutState. Removed the translation by the layout delta
41354         of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41355         absoluteOutlineBox().
41356         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Added this helper function that checks for
41357         and handles the case where only positioned objects need layout. Returns true in that case.
41358         (WebCore::RenderBlock::repaintOverhangingFloats): Disabled LayoutState when repainting floats, since
41359         they may belong to other containers.
41360         (WebCore::RenderBlock::updateFirstLetter): Disabled LayoutState when adding and removing from the
41361         first letter container, since it may be different than ourselves.
41362         * rendering/RenderBlock.h:
41363         * rendering/RenderBox.cpp:
41364         (WebCore::RenderBox::setStyle): Minor cleanup: changed element()->document() to the equivalent document().
41365         (WebCore::RenderBox::offsetForPositionedInContainer): Added. Factored out common code from
41366         absolutePosition, computeAbsoluteRepaintRect and RenderLayer::updateLayerPosition into this function.
41367         (WebCore::RenderBox::absolutePosition): Added an O(1) code path when this function is called during
41368         layout (and LayoutState has not been disabled). Factored out some code into
41369         offsetForPositionedInContainer.
41370         (WebCore::RenderBox::absoluteClippedOverflowRect): Added the layout delta here, so callers don't need
41371         to.
41372         (WebCore::RenderBox::computeAbsoluteRepaintRect): Added an O(1) code path when this function is called
41373         during layout (and LayoutState has not been disabled). Factored out some code into
41374         offsetForPositionedInContainer.
41375         * rendering/RenderContainer.cpp:
41376         (WebCore::RenderContainer::layout): Added LayoutState push/pop.
41377         * rendering/RenderFlexibleBox.cpp:
41378         (WebCore::RenderFlexibleBox::layoutBlock): Factored out the "only positioned objects" case into
41379         layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
41380         of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41381         absoluteOutlineBox().
41382         * rendering/RenderFlow.cpp:
41383         (WebCore::RenderFlow::absoluteClippedOverflowRect): Added an ASSERT.
41384         * rendering/RenderForeignObject.cpp:
41385         (WebCore::RenderForeignObject::layout): Disabled LayoutState because it is incompatible with arbitrary
41386         affine transforms.
41387         * rendering/RenderHTMLCanvas.cpp:
41388         (WebCore::RenderHTMLCanvas::layout): Removed the translation by the layout delta of the old absolute
41389         rects, since that is now integral to absoluteClippedOverflowRect() and absoluteOutlineBox().
41390         * rendering/RenderImage.cpp:
41391         (WebCore::RenderImage::layout): Ditto.
41392         * rendering/RenderLayer.cpp:
41393         (WebCore::RenderLayer::updateLayerPositions): Added ASSERTs. Factored out some code into
41394         RenderBox::offsetForPositionedInContainer.
41395         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Disabled LayoutState around the call to
41396         scrollToOffset.
41397         * rendering/RenderListItem.cpp:
41398         (WebCore::RenderListItem::updateMarkerLocation): Disabled LayoutState when moving the list marker, since
41399         it can trigger repainting in other containers.
41400         * rendering/RenderObject.cpp:
41401         (WebCore::RenderObject::isRoot): Minor cleanup: changed element()->document() to the equivalent
41402         document().
41403         (WebCore::RenderObject::computeAbsoluteRepaintRect): Removed 'return' at the end of the function.
41404         (WebCore::RenderObject::container): Reordered to avoid calling isText() twice.
41405         (WebCore::RenderObject::absoluteOutlineBox): Added the layout delta here, so callers don't need to.
41406         * rendering/RenderSVGContainer.cpp:
41407         (WebCore::RenderSVGContainer::layout): Disabled LayoutState because it is incompatible with arbitrary
41408         affine transforms.
41409         * rendering/RenderTable.cpp:
41410         (WebCore::RenderTable::layout):  Factored out the "only positioned objects" case into
41411         layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
41412         of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41413         absoluteOutlineBox().
41414         * rendering/RenderTableCell.cpp:
41415         (WebCore::RenderTableCell::absoluteClippedOverflowRect): Added the layout delta here, so callers
41416         don't need to.
41417         (WebCore::RenderTableCell::computeAbsoluteRepaintRect): For the O(1) code path, skipped the correction
41418         for the parent row, because RenderTableRow doesn't push a translation into LayoutState.
41419         (WebCore::RenderTableCell::absolutePosition): Ditto.
41420         * rendering/RenderTableRow.cpp:
41421         (WebCore::RenderTableRow::layout): Added LayoutState push/pop.
41422         * rendering/RenderTableSection.cpp:
41423         (WebCore::RenderTableSection::setCellWidths): Added LayoutState push/pop if cells are repainted or
41424         receive layout.
41425         (WebCore::RenderTableSection::calcRowHeight): Ditto.
41426         (WebCore::RenderTableSection::layoutRows): Added LayoutState push/pop.
41427         * rendering/RenderView.cpp:
41428         (WebCore::RenderView::RenderView):
41429         (WebCore::RenderView::layout): Added initial LayoutState setup for the layout.
41430         (WebCore::RenderView::paintBoxDecorations): Minor cleanup: changed element()->document() to the
41431         equivalent document().
41432         (WebCore::RenderView::repaintViewRectangle): Ditto.
41433         (WebCore::RenderView::pushLayoutState): Added. Pushes initial layout state for subtree layout.
41434         * rendering/RenderView.h:
41435         (WebCore::RenderView::pushLayoutState):
41436         (WebCore::RenderView::popLayoutState):
41437         (WebCore::RenderView::layoutState):
41438         (WebCore::RenderView::disableLayoutState):
41439         (WebCore::RenderView::enableLayoutState):
41441 2007-04-29  David Hyatt  <hyatt@apple.com>
41443         Fix for bugzilla 13535, regression from positioning cleanup a while
41444         back.  Some code got added to compute available width for a relpositioned
41445         inline, only the code meant to be used for inline flows and not inline blocks.
41447         Reviewed by mjs
41449         fast/block/positioning/inline-block-relposition.html
41451         * rendering/RenderBox.cpp:
41452         (WebCore::RenderBox::containingBlockWidthForPositioned):
41454 2007-04-29  Oliver Hunt  <oliver@apple.com>
41456         Reviewed by Zack.
41458         Implement basic drag and drop support for qt
41459         this allows content and link dragging but does not
41460         provide the DOM data access methods.
41462         * platform/DragData.h:
41463         * platform/qt/ClipboardQt.cpp:
41464         (WebCore::ClipboardQt::ClipboardQt):
41465         (WebCore::ClipboardQt::~ClipboardQt):
41466         (WebCore::ClipboardQt::clearData):
41467         (WebCore::ClipboardQt::clearAllData):
41468         (WebCore::ClipboardQt::setData):
41469         (WebCore::ClipboardQt::declareAndWriteDragImage):
41470         (WebCore::ClipboardQt::writeURL):
41471         (WebCore::ClipboardQt::writeRange):
41472         (WebCore::ClipboardQt::hasData):
41473         * platform/qt/ClipboardQt.h:
41474         (WebCore::ClipboardQt::clipboardData):
41475         (WebCore::ClipboardQt::invalidateWritableData):
41476         * platform/qt/DragDataQt.cpp:
41477         (WebCore::DragData::canSmartReplace):
41478         (WebCore::DragData::containsPlainText):
41479         (WebCore::DragData::asPlainText):
41480         (WebCore::DragData::createClipboard):
41481         (WebCore::DragData::containsCompatibleContent):
41482         (WebCore::DragData::containsURL):
41483         (WebCore::DragData::asURL):
41484         (WebCore::DragData::asFragment):
41486 2007-04-28  Maciej Stachowiak  <mjs@apple.com>
41488         Reviewed by Darin and Oliver.
41490         - change Document to hold onto Frame* instead of FrameView*
41491         
41492         This is an architectural cleanup and a prerequisite to fixing citibank login
41493         in an architecturally sound way.
41495         Some fixups for the page cache:
41496         
41497         * history/CachedPage.cpp:
41498         (WebCore::CachedPage::restore): Add an assert that the document's view
41499         matches the cached page's view - this needs to be true by the time this
41500         function is called.
41501         (WebCore::CachedPage::clear): Change assert to require frame matching, not
41502         view matching.
41503         * history/CachedPage.h:
41504         (WebCore::CachedPage::view): Add a way to get the view out.
41505         * loader/FrameLoader.cpp:
41506         (WebCore::FrameLoader::begin): pass Frame, not FrameView, when creating document
41507         (WebCore::FrameLoader::open): restore view based on CachedPage, not Document. 
41509         Remaining changes are just straightforward updates based on which
41510         pointer is held or passed:
41511         
41512         * dom/DOMImplementation.cpp:
41513         (WebCore::DOMImplementation::createDocument):
41514         (WebCore::DOMImplementation::createHTMLDocument):
41515         * dom/DOMImplementation.h:
41516         * dom/Document.cpp:
41517         (WebCore::Document::Document):
41518         (WebCore::Document::view):
41519         (WebCore::Document::frame):
41520         (WebCore::Document::recalcStyle):
41521         (WebCore::Document::updateLayout):
41522         (WebCore::Document::attach):
41523         (WebCore::Document::detach):
41524         (WebCore::Document::createTokenizer):
41525         (WebCore::Document::recalcStyleSelector):
41526         (WebCore::Document::setInPageCache):
41527         (WebCore::Document::applyXSLTransform):
41528         * dom/Document.h:
41529         * html/HTMLDocument.cpp:
41530         (WebCore::HTMLDocument::HTMLDocument):
41531         * html/HTMLDocument.h:
41532         * html/HTMLViewSourceDocument.cpp:
41533         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
41534         * html/HTMLViewSourceDocument.h:
41535         * ksvg2/svg/SVGDocument.cpp:
41536         (WebCore::SVGDocument::SVGDocument):
41537         * ksvg2/svg/SVGDocument.h:
41538         * loader/ImageDocument.cpp:
41539         (WebCore::ImageDocument::ImageDocument):
41540         * loader/ImageDocument.h:
41541         * loader/PluginDocument.cpp:
41542         (WebCore::PluginDocument::PluginDocument):
41543         * loader/PluginDocument.h:
41544         * loader/TextDocument.cpp:
41545         (WebCore::TextDocument::TextDocument):
41546         * loader/TextDocument.h:
41547         * xml/XSLTProcessor.cpp:
41548         (WebCore::XSLTProcessor::createDocumentFromSource):
41549         (WebCore::XSLTProcessor::transformToDocument):
41550         * xml/XSLTProcessor.h:
41552 2007-04-28  Adele Peterson  <adele@apple.com>
41554         RS by Darin.
41556         Update to fix for <rdar://problem/5152299>
41558         Test: fast/events/no-blur-on-enter-button.html
41560         * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler):
41561         Don't blur the button when handling the enter key.  This matches our new behavior for input elements.
41563 2007-04-28  Adele Peterson  <adele@apple.com>
41565         Fix by Darin, reviewed by me.
41567         Fix for <rdar://problem/5152299> REGRESSION: <button> elements do not respond to space and return key as similar <input> elements do
41569         Tests:
41570         fast/forms/button-spacebar-click.html
41571         fast/forms/button-enter-click.html
41573         * html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::): Made type enum private.
41574         Removed unnecessary m_value and m_currValue, and unused m_dirty.
41575         * html/HTMLButtonElement.cpp:
41576         (WebCore::HTMLButtonElement::HTMLButtonElement): Removed initialization of m_dirty.
41577         (WebCore::HTMLButtonElement::parseMappedAttribute): Removed case to parse value and accesskey attributes, which don't do anything.
41578         (WebCore::HTMLButtonElement::defaultEventHandler): Removed unnecessary check for button type.
41579          Added cases to handle spacebar and enter keys in the same way that they're handled for <input type=button/reset/submit> buttons.
41580         (WebCore::HTMLButtonElement::isSuccessfulSubmitButton): Shortened comment.
41581         (WebCore::HTMLButtonElement::appendFormData): Use value() instead of m_currValue.  Renamed encoding argument to formData.
41583 2007-04-28  Mitz Pettel  <mitz@webkit.org>
41585         Reviewed by Darin.
41587         - fix http://bugs.webkit.org/show_bug.cgi?id=13501
41588           REGRESSION (r21093): Pasting into text field fails and makes the caret disappear
41590         Test: fast/dynamic/anonymous-block-layer-lost.html
41592         * rendering/RenderBlock.cpp:
41593         (WebCore::RenderBlock::removeChild): Avoid cutting off layers when removing
41594         the anonymous block.
41596 2007-04-28  Mitz Pettel  <mitz@webkit.org>
41598         Reviewed by Darin.
41600         - fix http://bugs.webkit.org/show_bug.cgi?id=13471
41601           REGRESSION (r21045): Secure keyboard entry mode remains in effect after leaving a password field by submitting
41603         * loader/FrameLoader.cpp:
41604         (WebCore::FrameLoader::clear): Replaced direct access to Frame's d->m_doc
41605         with a call to Frame::setDocument.
41606         (WebCore::FrameLoader::begin): Ditto.
41607         (WebCore::FrameLoader::open): Ditto.
41608         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Ditto.
41609         (WebCore::FrameLoader::canCachePage): Added a comment.
41610         * manual-tests/secure-keyboard-enabled-after-submit.html: Added.
41611         * page/Frame.cpp:
41612         (WebCore::Frame::setDocument): Reset secure keyboard entry, in case the
41613         old document's focused node has set it.
41615 2007-04-28  Mitz Pettel  <mitz@webkit.org>
41617         Reviewed by Adele.
41619         - fix http://bugs.webkit.org/show_bug.cgi?id=13379
41620           REGRESSION: Cannot add an option to a selected popup
41622         * manual-tests/update-empty-popup.html: Added.
41623         * platform/mac/PopupMenuMac.mm:
41624         (WebCore::PopupMenu::show): Added a call to the client's hidePopup()
41625         callback before returning in the case that the menu is empty. Otherwise
41626         the client thinks that the menu stayed open.
41628 2007-04-28  Adele Peterson  <adele@apple.com>
41630         Reviewed by Darin.
41632         Fix for <rdar://problem/4806988> REGRESSION: history.go(0) doesn't reload page (affects buttons at facebook.com)
41634         Test: fast/history/history_reload.html
41636         * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
41637         We avoid doing a redirection when going to the same url in a history navigation, but we have to still
41638         schedule a redirection when the number of steps is zero so we can force a reload.
41640 2007-04-28  Alexey Proskuryakov  <ap@webkit.org>
41642         Reviewed by Darin.
41644         http://bugs.webkit.org/show_bug.cgi?id=13514
41645         REGRESSION (r20997-21003): Crash in WebCore::Node::document
41647         Test: fast/dom/NodeList/childNodes-reset-cache.html
41649         * dom/Node.cpp:
41650         (WebCore::Node::notifyLocalNodeListsChildrenChanged): Reset the common caches for child node
41651         lists. We cannot rely on notifications, since there may be no list objects left around.
41653         * dom/ChildNodeList.cpp:
41654         (WebCore::ChildNodeList::rootNodeChildrenChanged):
41655         * dom/ChildNodeList.h:
41656         Override rootNodeChildrenChanged() with an empty implementation, now that caches are reset
41657         in Node::notifyLocalNodeListsChildrenChanged().
41659 2007-04-28  Mark Rowe  <mrowe@apple.com>
41661         Build fix.  Change use of nil to 0 in C++ source file.
41663         * editing/Editor.cpp:
41664         (WebCore::Editor::increaseSelectionListLevel):
41665         (WebCore::Editor::increaseSelectionListLevelOrdered):
41666         (WebCore::Editor::increaseSelectionListLevelUnordered):
41668 2007-04-28  Darin Adler  <darin@apple.com>
41670         Reviewed by Adele.
41672         - fix http://bugs.webkit.org/show_bug.cgi?id=6216
41673           REGRESSION: getElementsByTagNameNS with empty namespace doesn't work
41675         * dom/Node.cpp:
41676         (WebCore::TagNodeList::TagNodeList): Changed parameter to PassRefPtr, tweaked formatting.
41677         (WebCore::TagNodeList::item): Tweaked formatting.
41678         (WebCore::TagNodeList::nodeMatches): Tweaked formatting.
41679         (WebCore::Node::setPrefix): Tweaked formatting.
41680         (WebCore::Node::getElementsByTagNameNS): Added special case to turn empty namespaces into
41681         null namespaces.
41683 2007-04-28  Darin Adler  <darin@apple.com>
41685         Reviewed by Kevin Decker.
41687         - fix <rdar://problem/5148271> Chinese numbers are incorrect in numbered lists
41688           (including pasting from TextEdit to Mail)
41690         Covered by an existing regression test, which had wrong results checked in.
41692         Hyatt told me not to use the algorithm in the CSS 3 specification, but I didn't listen!
41693         This corrects mistakes there and makes our results match current Firefox.
41695         * rendering/RenderListMarker.cpp:
41696         (WebCore::toCJKIdeographic): Added code to strip off trailing zero digits.
41697         Added special case for zero, since that's the one case where we don't want
41698         to strip off trailing zero digits. Fixed mixed-up logic that would put the
41699         digits in each group backwards.
41700         (WebCore::listMarkerText): Corrected character values for the CJK_IDEOGRAPHIC case.
41702 2007-04-28  Darin Adler  <darin@apple.com>
41704         Reviewed by Oliver.
41706         - fix <rdar://problem/5138250> REGRESSION (r18245): Changing any one aspect
41707           of a font applies all the aspects to selected text
41709         Since this bug is only visible with the font panel, I don't
41710         think there's any way to make a DumpRenderTree-driven test.
41712         * editing/Editor.cpp: (WebCore::Editor::fontForSelection):
41713         Set hasMultipleFonts properly. The old code had an early exit
41714         that was left over from when hasMultipleFonts was a pointer.
41716 2007-04-27  Mitz Pettel  <mitz@webkit.org>
41718         Reviewed by Dave Hyatt.
41720         - fix http://bugs.webkit.org/show_bug.cgi?id=13525
41721           Repainting a listbox schedules a relayout
41723         No test possible as there is no change to functionality.
41725         - fix the root cause of http://bugs.webkit.org/show_bug.cgi?id=10862
41726           REGRESSION: Collapsing form input on www.myspace.com
41728         No test possible since text fields are no longer implemented as flexboxes.
41730         * rendering/RenderObject.cpp:
41731         (WebCore::RenderObject::scheduleRelayout): Added a check that the subtree
41732         root is in the tree and not free-floating.
41733         * rendering/bidi.cpp:
41734         (WebCore::RenderBlock::bidiReorderCharacters): Changed addChild and removeChild
41735         to appendChildNode and removeChildNode to save some unnecessary overhead.
41736         These calls still mark the tree for relayout, but the change in scheduleRelayout 
41737         ensures that a layout won't be scheduled.
41739 2007-04-27  Patti Hoa  <patti@apple.com>
41741         Reviewed by Darin.
41742         
41743         <rdar://problem/5153017> REPRODUCIBLE ASSERT: range != nil in WebViewFactory.mm:415 -[WebViewFactory startOfTextMarkerRange:] (13354)
41744         
41745         * bridge/mac/WebCoreAXObject.mm:
41746         (-[WebCoreAXObject textMarkerRangeForRange:]):
41747         Fix the range length check.  It was incorrectly assuming that the max range requested cannot be equal
41748         to the length of the string.  Since NSRange location is index based, it's perfectly valid to have the max
41749         range equal to the the text length.
41751 2007-04-27  David Harrison  <harrison@apple.com>
41753         Reviewed by Darin.
41755         <rdar://problem/5160627> Export JS list creation support as ObjC SPI for Mail
41757         * WebCore.exp:
41758         * editing/Editor.h:
41759         * editing/Editor.cpp:
41760         (WebCore::Editor::insertOrderedList):
41761         (WebCore::Editor::insertUnorderedList):
41762         (WebCore::Editor::canIncreaseSelectionListLevel):
41763         (WebCore::Editor::canDecreaseSelectionListLevel):
41764         (WebCore::Editor::increaseSelectionListLevel):
41765         (WebCore::Editor::increaseSelectionListLevelOrdered):
41766         (WebCore::Editor::increaseSelectionListLevelUnordered):
41767         (WebCore::Editor::decreaseSelectionListLevel):
41768         Add insertOrderedList() and insertUnorderedList().
41769         Move existing list management functions from WebCoreFrameBridge.
41770         The level increasing functions now return a PassRefPtr<Node> instead of Node.
41771         Add check for canEditRichly.
41772         
41773         - in many other functions, condense the check for nil client().
41774         
41775         * editing/InsertListCommand.h:
41776         * editing/InsertListCommand.cpp:
41777         (WebCore::InsertListCommand::insertList):
41778         (WebCore::InsertListCommand::fixOrphanedListChild):
41779         (WebCore::InsertListCommand::doApply):
41780         Add insertList(), which returns the new list element.
41781         Don't set the list element's ID if the specified ID was an empty string.
41782                 
41783         * editing/ModifySelectionListLevel.h:
41784         * editing/ModifySelectionListLevel.cpp:
41785         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelWithType):
41786         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
41787         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered):
41788         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered):
41789         Return PassRefPtr<Node> instead of Node.
41791         * page/mac/WebCoreFrameBridge.h:
41792         * page/mac/WebCoreFrameBridge.mm:
41793         Move list management functions to Editor.h and Editor.cpp.
41796 2007-04-27  David Hyatt  <hyatt@apple.com>
41798         Fix for <rdar://problem/5134254>, toolbar buttons don't work in gmail after double-click.  Make sure
41799         to clear out the capturing frame, since you don't get a second up when a double-click happens.
41801         Reviewed by mjs
41803         * page/EventHandler.cpp:
41804         (WebCore::EventHandler::handleMouseDoubleClickEvent):
41806 2007-04-27  Justin Garcia  <justin.garcia@apple.com>
41808         Reviewed by oliver
41810         <rdar://problem/5164796> 
41811         Enable execCommand("CreateLink", ...) for caret selections
41813         * editing/CreateLinkCommand.cpp:
41814         (WebCore::CreateLinkCommand::doApply): For a caret
41815         selection, insert a link at the caret position
41816         with the url as the link text.
41817         * editing/JSEditor.cpp: Enable CreateLink for caret 
41818         selections.
41820 2007-04-27  Antti Koivisto  <antti@apple.com>
41822         Reviewed by Darin, Hyatt.
41823         
41824         Fix http://bugs.webkit.org/show_bug.cgi?id=13081
41825         Empty table cells not handled correctly
41826         <rdar://problem/5067926>
41827         
41828         To match Firefox and IE, empty table cells with variable width need to be
41829         treated as special case. They generally get zero width.
41831         * rendering/AutoTableLayout.cpp:
41832         (WebCore::AutoTableLayout::recalcColumn):
41833         (WebCore::AutoTableLayout::calcEffectiveWidth):
41834         (WebCore::AutoTableLayout::layout):
41835         * rendering/AutoTableLayout.h:
41836         (WebCore::AutoTableLayout::Layout::Layout):
41837         * rendering/RenderStyle.h:
41838         (WebCore::RenderStyle::hasPadding):
41840 2007-04-27  Rob Buis  <buis@kde.org>
41842         Reviewed by Oliver.
41844         http://bugs.webkit.org/show_bug.cgi?id=13052
41845         Text not rendered in a second inline SVG element
41847         Correct the rendering of svg text when embedded in non-svg container.
41849         * rendering/RenderSVGText.cpp:
41850         (WebCore::RenderSVGText::paint):
41852 2007-04-27  Mark Rowe  <mrowe@apple.com>
41854         Reviewed by Maciej.
41856         * WebCore.pro: Remove non-existent paths from qmake files.
41858 2007-04-25  Lars Naesbye Christensen <lars@naesbye.dk>
41860         Reviewed by Timothy Hatcher.
41862         http://bugs.webkit.org/show_bug.cgi?id=13477
41863         Bug 13477: Help and context menu cursors need dropshadows.
41865         * Resources/cellCursor.png:
41866         * Resources/contextMenuCursor.png:
41867         * Resources/helpCursor.png:
41868         * platform/mac/CursorMac.mm:
41869         (WebCore::contextMenuCursor):
41870         (WebCore::copyCursor):
41871         (WebCore::progressCursor):
41872         (WebCore::noDropCursor):
41874 2007-04-27  Holger Freyther <freyther@kde.org>
41876         Reviewed by Maciej.
41878         Remove unmaintained CMake build system.
41880         * CMakeLists.txt: Removed.
41882 2007-04-26  Matt Perry  <mpComplete@gmail.com>
41884         Reviewed by Maciej.
41886         Added a version check to hackAroundLibXMLEntityBug, since that bug has
41887         been fixed in recent versions of libxml2.
41889         * dom/XMLTokenizer.cpp:
41890         (WebCore::hackAroundLibXMLEntityBug):
41892 2007-04-26  Christopher Brichford  <chrisb@adobe.com>
41894         Reviewed by Timothy Hatcher.
41896         - Fix for Bug 13204: Submit initial version of mac project files for apollo
41897           port of WebCore
41898           http://bugs.webkit.org/show_bug.cgi?id=13204
41900         * WebCore.apolloproj/mac/WebCore.Debug.xcconfig: Added.
41901         * WebCore.apolloproj/mac/WebCore.Release.xcconfig: Added.
41902         * WebCore.apolloproj/mac/WebCore.xcconfig: Added.
41903         * WebCore.apolloproj/mac/WebCore.xcodeproj/project.pbxproj: Added.
41905 2007-04-26  Alp Toker  <alp@atoker.com>
41907         Reviewed by Maciej.
41909         http://bugs.webkit.org/show_bug.cgi?id=13505
41910         Cast loses precision on x86_64
41912         * platform/graphics/cairo/GraphicsContextCairo.cpp:
41913         (WebCore::GraphicsContext::beginTransparencyLayer):
41914         (WebCore::GraphicsContext::endTransparencyLayer):
41915         Use a stack of opacity values instead of Cairo user data.
41917 2007-04-26  Mitz Pettel  <mitz@webkit.org>
41919         Reviewed by Darin.
41921         - fix http://bugs.webkit.org/show_bug.cgi?id=13500
41922           REGRESSION: Listbox scrollbar does not reflect actual scrolled position when selected option is added after layout
41924         Test: fast/forms/listbox-scrollbar-incremental-load.html
41926         The scroller position was not updated correctly during insertion, since
41927         scrollbar proportions are updated only during layout
41929         * rendering/RenderListBox.cpp:
41930         (WebCore::RenderListBox::selectionChanged): Delay scrolling to reveal the
41931         selection until after layout if m_optionsChanged is set. Layout is
41932         guaranteed to happen soon when the flag is set.
41934 2007-04-26  David Hyatt  <hyatt@apple.com>
41936         Fix for 13511, crash on a counters page.  Make sure that RenderTexts
41937         never get a null StringImpl.  I would have added an assert that the length
41938         had to be nonzero also, but unfortunately editing creates empty RenderTexts
41939         because of its EditingText DOM subclass that always forces renderers to be
41940         made.  I suppose there is a good reason for this...
41942         Reviewed by aroben
41944         * dom/CharacterData.cpp:
41945         (WebCore::CharacterData::setData):
41946         (WebCore::CharacterData::appendData):
41947         (WebCore::CharacterData::insertData):
41948         (WebCore::CharacterData::deleteData):
41949         (WebCore::CharacterData::replaceData):
41950         * rendering/RenderCounter.cpp:
41951         (WebCore::RenderCounter::RenderCounter):
41952         * rendering/RenderText.cpp:
41953         (WebCore::RenderText::RenderText):
41954         (WebCore::RenderText::trimmedPrefWidths):
41955         (WebCore::RenderText::setTextWithOffset):
41956         (WebCore::RenderText::setTextInternal):
41957         (WebCore::RenderText::setText):
41959 2007-04-26  Alice Liu  <alice.liu@apple.com>
41961         Reviewed by Oliver.
41963         * editing/SelectionController.cpp:
41964         (WebCore::SelectionController::selectAll):
41965         adding null check
41967 2007-04-26  Justin Garcia  <justin.garcia@apple.com>
41969         Reviewed by oliver
41971         <rdar://problem/5120591> 
41972         Crash when creating a link in Leopard wiki server
41974         * editing/CreateLinkCommand.cpp:
41975         (WebCore::CreateLinkCommand::doApply): Use a RefPtr,
41976         setting the anchor's href can destroy it if there is
41977         an ancestor with a subtree modified event listener.
41979 2007-04-26  Mitz Pettel  <mitz@webkit.org>
41981         Reviewed by hyatt
41983         - http://bugs.webkit.org/show_bug.cgi?id=13496
41984           Eliminate repaintObjectsBeforeLayout
41986         No tests added since there is no change to functionality. Several
41987         tests in fast/repaint test repainting of objects that move during layout.
41989         * page/FrameView.cpp:
41990         (WebCore::FrameView::layout):
41991         * rendering/RenderBlock.cpp:
41992         (WebCore::RenderBlock::layoutBlockChildren): Removed an early
41993         setNeedsLayout(false). Resetting the bit here prevents the full repaint
41994         that we rely on when we decide not to repaint children that move.
41995         * rendering/RenderBlock.h:
41996         * rendering/RenderObject.cpp:
41997         * rendering/RenderObject.h:
41998         * rendering/RenderTableSection.cpp:
41999         (WebCore::RenderTableSection::setCellWidths): Replaced the call to
42000         repaintObjectsBeforeLayout() if the cell didn't need layout with
42001         an unconditional repaint(). We don't bother with repainting only the
42002         delta between the old and new widths, since by marking the cell for
42003         layout results in a full repaint with the new width anyway.
42005 2007-04-26  David Hyatt  <hyatt@apple.com>
42007         Fix for 13509.  Don't recur to parent inline flows if they have been
42008         marked as needing layout themselves.
42010         Reviewed by adele
42012         * rendering/RenderFlow.cpp:
42013         (WebCore::RenderFlow::dirtyLinesFromChangedChild):
42015 2007-04-26  Matt Perry  <mpComplete@gmail.com>
42017         Reviewed and landed by Alexey.
42019         http://bugs.webkit.org/show_bug.cgi?id=13495
42020         Crash when referencing an undefined entity in an XHTML document
42022         Test: fast/parser/badentity.xhtml
42024         * dom/XMLTokenizer.cpp:
42025         (WebCore::getEntityHandler): Check for a NULL returned from getXHTMLEntity
42027 2007-04-26  Anders Carlsson  <andersca@apple.com>
42029         Reviewed by Hyatt.
42031         <rdar://problem/4851944>
42032         REGRESSION: With TOT, BMP images can no longer be opened in the browser window
42033         
42034         On Tiger, the MIME type for the com.microsoft.bmp UTI isn't in the registry, so add it manually.
42035         
42036         * platform/MimeTypeRegistry.cpp:
42037         (WebCore::initialiseSupportedImageMIMETypes):
42039 2007-04-26  David Hyatt  <hyatt@apple.com>
42041         Fix for bug 13503, invalidateContainingBlockPrefWidths is 15% of the
42042         nesting PLT.  Avoid O(n^2) behavior by including inlines in the minmax
42043         dirty chain.
42045         Reviewed by kevin
42047         * rendering/RenderBlock.cpp:
42048         (WebCore::RenderBlock::calcInlinePrefWidths):
42049         * rendering/RenderObject.cpp:
42050         (WebCore::RenderObject::setPrefWidthsDirty):
42051         (WebCore::RenderObject::invalidateContainerPrefWidths):
42052         * rendering/RenderObject.h:
42054 2007-04-26  Anders Carlsson  <andersca@apple.com>
42056         Reviewed by Darin.
42058         <rdar://problem/5067925>
42059         Reproducible crash (infinite recursion) with a layout test that submits on unload (13078)
42060         
42061         Ask the document loader whether it's loading the main resource, since there are cases where the frame 
42062         loader's variable isn't updated correctly.
42063         
42064         In the distant future, the frame loader shouldn't have an instance variable but this is the least intrusive fix for now.
42065         
42066         I couldn't come up with a good test case for this since it requires running three tests in a row and scheduleLoad didn't work. Also,
42067         calling submit in the onunload prevents any new tests from loading!
42068         
42069         * loader/FrameLoader.cpp:
42070         (WebCore::FrameLoader::isLoading):
42072 2007-04-26  Anders Carlsson  <andersca@apple.com>
42074         ... and fix the build.
42075         
42076         * loader/FrameLoader.cpp:
42077         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42079 2007-04-26  Anders Carlsson  <andersca@apple.com>
42081         Revert the previous change - activeDocumentLoader never returns the policy document loader.
42082         Instead, add a null check for the policy document loader.
42083         
42084         * loader/FrameLoader.cpp:
42085         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42087 2007-04-26  Anders Carlsson  <andersca@apple.com>
42089         Use the active document loader instead of the policy document loader.
42090         
42091         * loader/FrameLoader.cpp:
42092         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42094 2007-04-26  Anders Carlsson  <andersca@apple.com>
42096         Reviewed by Maciej.
42098         <rdar://problem/5049099> documents no longer have a default base URL
42100         Don't call canHandleRequest if we have valid substitute data and the protocol is "applewebdata".
42101         
42102         * loader/FrameLoader.cpp:
42103         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42105 2007-04-25  Stephanie Lewis <slewis@apple.com>
42107         Reviewed by Darin.
42109         Fix the build for platforms that overload the abs function.        
42111         * dom/ChildNodeList.cpp:
42112         (WebCore::ChildNodeList::item):
42114 2007-04-25  David Hyatt  <hyatt@apple.com>
42116         Fix for bug 13373, make sure to invalidate the pref widths for objects
42117         with percentage padding.
42119         Reviewed by beth
42121         * rendering/RenderBlock.cpp:
42122         (WebCore::RenderBlock::layoutBlockChildren):
42123         (WebCore::RenderBlock::layoutPositionedObjects):
42124         * rendering/bidi.cpp:
42125         (WebCore::RenderBlock::layoutInlineChildren):
42127 2007-04-25  David Harrison  <harrison@apple.com>
42129         Comment change. Correct the header name in the endif comment.
42130         
42131         * editing/FormatBlockCommand.h:
42132         Change InsertListCommand_h to FormatBlockCommand_h.
42134 2007-04-25  Darin Adler  <darin@apple.com>
42136         Reviewed by Hyatt.
42138         * platform/AtomicString.cpp: (WebCore::AtomicString::add):
42139         Removed unnecessary use of strlen to check if a string is empty.
42141 2007-04-25  Mitz Pettel  <mitz@webkit.org>
42143         Build fix.
42145         * rendering/RenderListMarker.h: Undeleted the m_text member.
42147 2007-04-25  David Hyatt  <hyatt@apple.com>
42149         Rearchitect calcPrefWidths.  The calculation is now done lazily only when minPrefWidth
42150         or maxPrefWidth are asked for.  The result of the calculation is cached.
42152         The new invalidation scheme for pref width invalidation follows the
42153         containing block hierarchy and knows to halt at positioned objects, since
42154         they cannot influence the size of their containers.
42156         Reviewed by darin
42158         * css/cssstyleselector.cpp:
42159         (WebCore::CSSStyleSelector::init):
42160         (WebCore::CSSStyleSelector::initForStyleResolve):
42161         * page/FrameView.cpp:
42162         (WebCore::FrameView::layout):
42163         * rendering/RenderApplet.cpp:
42164         (WebCore::RenderApplet::layout):
42165         * rendering/RenderBlock.cpp:
42166         (WebCore::RenderBlock::makeChildrenNonInline):
42167         (WebCore::RenderBlock::removeChild):
42168         (WebCore::RenderBlock::layout):
42169         (WebCore::RenderBlock::layoutBlock):
42170         (WebCore::RenderBlock::calcPrefWidths):
42171         (WebCore::InlineMinMaxIterator::endOfInline):
42172         (WebCore::shouldGrowTableCellForImage):
42173         (WebCore::RenderBlock::calcInlinePrefWidths):
42174         (WebCore::RenderBlock::calcBlockPrefWidths):
42175         * rendering/RenderBlock.h:
42176         * rendering/RenderBox.cpp:
42177         (WebCore::RenderBox::setStyle):
42178         (WebCore::RenderBox::minPrefWidth):
42179         (WebCore::RenderBox::maxPrefWidth):
42180         (WebCore::RenderBox::calcWidth):
42181         (WebCore::RenderBox::calcWidthUsing):
42182         (WebCore::RenderBox::calcAbsoluteHorizontal):
42183         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
42184         * rendering/RenderBox.h:
42185         * rendering/RenderContainer.cpp:
42186         (WebCore::RenderContainer::removeChildNode):
42187         (WebCore::RenderContainer::appendChildNode):
42188         (WebCore::RenderContainer::insertChildNode):
42189         (WebCore::RenderContainer::layout):
42190         * rendering/RenderContainer.h:
42191         (WebCore::RenderContainer::moveChildNode):
42192         * rendering/RenderCounter.cpp:
42193         (WebCore::RenderCounter::dirtyLineBoxes):
42194         (WebCore::RenderCounter::calcPrefWidths):
42195         * rendering/RenderCounter.h:
42196         * rendering/RenderFileUploadControl.cpp:
42197         (WebCore::RenderFileUploadControl::calcPrefWidths):
42198         * rendering/RenderFlexibleBox.cpp:
42199         (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42200         (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42201         (WebCore::RenderFlexibleBox::calcPrefWidths):
42202         (WebCore::RenderFlexibleBox::layoutBlock):
42203         * rendering/RenderForeignObject.cpp:
42204         (WebCore::RenderForeignObject::layout):
42205         * rendering/RenderFrameSet.cpp:
42206         (WebCore::RenderFrameSet::layout):
42207         * rendering/RenderHTMLCanvas.cpp:
42208         (WebCore::RenderHTMLCanvas::layout):
42209         * rendering/RenderImage.cpp:
42210         (WebCore::RenderImage::layout):
42211         * rendering/RenderInline.cpp:
42212         * rendering/RenderInline.h:
42213         * rendering/RenderListBox.cpp:
42214         (WebCore::RenderListBox::updateFromElement):
42215         (WebCore::RenderListBox::calcPrefWidths):
42216         * rendering/RenderListItem.cpp:
42217         (WebCore::firstNonMarkerChild):
42218         (WebCore::RenderListItem::updateMarkerLocation):
42219         (WebCore::RenderListItem::calcPrefWidths):
42220         (WebCore::RenderListItem::layout):
42221         * rendering/RenderListMarker.cpp:
42222         (WebCore::RenderListMarker::layout):
42223         (WebCore::RenderListMarker::calcPrefWidths):
42224         (WebCore::RenderListMarker::updateMargins):
42225         * rendering/RenderListMarker.h:
42226         * rendering/RenderObject.cpp:
42227         (WebCore::RenderObject::RenderObject):
42228         (WebCore::RenderObject::removeChildNode):
42229         (WebCore::RenderObject::moveChildNode):
42230         (WebCore::RenderObject::appendChildNode):
42231         (WebCore::RenderObject::insertChildNode):
42232         (WebCore::RenderObject::setPrefWidthsDirty):
42233         (WebCore::RenderObject::invalidateContainingBlockPrefWidths):
42234         (WebCore::RenderObject::information):
42235         (WebCore::RenderObject::setStyle):
42236         * rendering/RenderObject.h:
42237         (WebCore::RenderObject::layer):
42238         (WebCore::RenderObject::hasLayer):
42239         (WebCore::RenderObject::prefWidthsDirty):
42240         (WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
42241         (WebCore::RenderObject::setHasLayer):
42242         * rendering/RenderPartObject.cpp:
42243         (WebCore::RenderPartObject::layout):
42244         * rendering/RenderSVGContainer.cpp:
42245         (WebCore::RenderSVGContainer::layout):
42246         * rendering/RenderSVGContainer.h:
42247         * rendering/RenderSVGHiddenContainer.cpp:
42248         * rendering/RenderSVGHiddenContainer.h:
42249         * rendering/RenderSVGText.cpp:
42250         (WebCore::RenderSVGText::layout):
42251         * rendering/RenderTable.cpp:
42252         (WebCore::RenderTable::calcWidth):
42253         (WebCore::RenderTable::layout):
42254         (WebCore::RenderTable::removeChildNode):
42255         * rendering/RenderTable.h:
42256         * rendering/RenderTableRow.cpp:
42257         (WebCore::RenderTableRow::layout):
42258         * rendering/RenderTableSection.cpp:
42259         (WebCore::RenderTableSection::removeChildNode):
42260         * rendering/RenderTableSection.h:
42261         * rendering/RenderText.cpp:
42262         (WebCore::RenderText::trimmedPrefWidths):
42263         (WebCore::isSpaceAccordingToStyle):
42264         (WebCore::RenderText::minPrefWidth):
42265         (WebCore::RenderText::maxPrefWidth):
42266         (WebCore::RenderText::calcPrefWidths):
42267         (WebCore::RenderText::width):
42268         * rendering/RenderText.h:
42269         * rendering/RenderView.cpp:
42270         (WebCore::RenderView::RenderView):
42271         (WebCore::RenderView::calcPrefWidths):
42272         (WebCore::RenderView::layout):
42273         * rendering/RenderWidget.cpp:
42274         (WebCore::RenderWidget::layout):
42276 2007-04-25  Steve Falkenburg  <sfalken@apple.com>
42278         Reviewed by Adam.
42280         Fix spelling error in spelling method name.
42281         Expose new spelling callback methods to all platforms.
42283         * bridge/EditorClient.h:
42284         * platform/gdk/EditorClientGdk.cpp:
42285         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
42286         * platform/gdk/EditorClientGdk.h:
42287         * platform/graphics/svg/SVGImageEmptyClients.h:
42288         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
42289         (WebCore::SVGEmptyEditorClient::getGuessesForWord):
42291 2007-04-24  Geoffrey Garen  <ggaren@apple.com>
42293         Reviewed by Darin Adler, Tim Hatcher.
42295         Fixed a few NSAutoreleasePool issues I noticed while reviewing Brady's patch.
42297         * platform/graphics/mac/GraphicsContextMac.mm:
42298         (WebCore::GraphicsContext::setCompositeOperation): Call -drain instead of 
42299         -release, since -release is a no-op in a GC world.
42301 2007-04-25  Alexey Proskuryakov  <ap@webkit.org>
42303         Reviewed by Darin.
42305         http://bugs.webkit.org/show_bug.cgi?id=13445
42306         NodeList access by index is slow
42308         * dom/ChildNodeList.cpp:
42309         (WebCore::ChildNodeList::item): Support iterating backwards from the last accessed node
42310         or from the last child.
42311         * dom/NodeList.h: Make cachedLength unsigned.
42313 2007-04-26  Mark Rowe  <mrowe@apple.com>
42315         Gdk build fix.  Add missing stub.
42317         * platform/gdk/TemporaryLinkStubs.cpp:
42318         (Editor::advanceToNextMisspelling):
42320 2007-04-25  Rob Buis  <buis@kde.org>
42322         Reviewed by Darin.
42324         http://bugs.webkit.org/show_bug.cgi?id=12163
42325         SVG text does not appear in a scrolling <div>
42327         Make sure SVG text is painted when scrolling by taking into account the relative offset of the non-SVG parent in the paintInfo rect.
42329         * rendering/RenderSVGContainer.cpp:
42330         (WebCore::RenderSVGContainer::paint):
42332 2007-04-26  Mark Rowe  <mrowe@apple.com>
42334         Fix non-Mac builds after r21081.
42336         Stub out new Editor methods for Qt and Gdk, and new SVGEmptyEditorClient methods
42337         for all non-Mac builds.
42339         * editing/qt/EditorQt.cpp:
42340         (WebCore::Editor::showSpellingGuessPanel):
42341         (WebCore::Editor::spellingPanelIsShowing):
42342         * page/qt/EventHandlerQt.cpp:
42343         (WebCore::EventHandler::passWheelEventToWidget):
42344         (WebCore::EventHandler::passMousePressEventToScrollbar):
42345         * platform/gdk/TemporaryLinkStubs.cpp:
42346         (Editor::showSpellingGuessPanel):
42347         (Editor::spellingPanelIsShowing):
42348         * platform/graphics/svg/SVGImageEmptyClients.h:
42349         (WebCore::SVGEmptyEditorClient::ignoreWordInSpellDocument):
42350         (WebCore::SVGEmptyEditorClient::learnWord):
42351         (WebCore::SVGEmptyEditorClient::checkSpellingOfString):
42352         (WebCore::SVGEmptyEditorClient::checkGrammarOfString):
42353         (WebCore::SVGEmptyEditorClient::udpateSpellingUIWithGrammarString):
42354         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithMisspelledWord):
42355         (WebCore::SVGEmptyEditorClient::showSpellingUI):
42356         (WebCore::SVGEmptyEditorClient::spellingUIIsShowing):
42357         (WebCore::SVGEmptyEditorClient::getGuessesForWord):
42359 2007-04-25  Anders Carlsson  <andersca@apple.com>
42361         Reviewed by Ada.
42363         <rdar://problem/5122153>
42364         Crash occurs at WebCore::Frame::loader() when switching to Bookmarks view while loading standalone image
42366         Don't call writeRawData if the data length is 0. (This is checked by the decoder for the non-raw case).
42368         * loader/FrameLoader.cpp:
42369         (WebCore::FrameLoader::write):
42371 2007-04-26  Mark Rowe  <mrowe@apple.com>
42373         Gdk build fix courtesy of Alp Toker.
42375         * make-generated-sources.sh:  Remove conditional logic to ensure the
42376         script exits with the correct exit code.
42378 2007-04-24  Anders Carlsson  <andersca@apple.com>
42380         Reviewed by Mitz.
42382         <rdar://problem/4869095> 
42383         default content type for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
42384         
42385         Use the right MIME type.
42386         
42387         * xml/xmlhttprequest.cpp:
42388         (WebCore::XMLHttpRequest::send):
42390 2007-04-24  Darin Adler  <darin@apple.com>
42392         Reviewed by Maciej.
42394         - second round of preparation for Hyatt's "lazy minMaxWidth" change
42395           http://bugs.webkit.org/show_bug.cgi?id=13431
42397         These are small changes that are either safe to do first, or unrelated to the main
42398         change in Hyatt's patch.
42400         - Preallocate 4 entries each in m_layoutStruct and m_spanCells to save allocation
42401           in AutoTableLayout.
42402         - Add an early exit to RenderFlow::dirtyLinesFromChangedChild.
42403         - Change InlineBox::hasTextChildren() to use a bit directly and never a virtual function.
42404         - Save a virtual function call by using a local bool variable for isTableCell().
42406         - Fix containingBlock() so it returns 0 for table cells with no parent.
42408         - Change all callers who are getting at layer() as a boolean to use hasLayer().
42409         - Change if statements to max() function calls (only the ones Hyatt had in his patch).
42410         - Remove some old kdDebug calls.
42411         - Tweak formatting of some code.
42412         - Add const in one place.
42414         * bindings/js/kjs_html.cpp:
42415         (KJS::HTMLElementFunction::callAsFunction):
42416         * page/EventHandler.cpp:
42417         (WebCore::EventHandler::eventMayStartDrag):
42418         * page/Frame.cpp:
42419         (WebCore::Frame::clearTimers):
42420         * rendering/AutoTableLayout.cpp:
42421         (WebCore::AutoTableLayout::recalcColumn):
42422         * rendering/AutoTableLayout.h:
42423         * rendering/InlineBox.h:
42424         (WebCore::InlineBox::InlineBox):
42425         (WebCore::InlineBox::hasTextChildren):
42426         * rendering/InlineFlowBox.cpp:
42427         (WebCore::InlineFlowBox::nodeAtPoint):
42428         * rendering/InlineFlowBox.h:
42429         (WebCore::InlineFlowBox::InlineFlowBox):
42430         * rendering/RenderBlock.cpp:
42431         (WebCore::RenderBlock::layoutBlock):
42432         (WebCore::RenderBlock::repaintOverhangingFloats):
42433         (WebCore::RenderBlock::paintChildren):
42434         (WebCore::RenderBlock::paintFloats):
42435         (WebCore::RenderBlock::fillBlockSelectionGaps):
42436         (WebCore::RenderBlock::insertFloatingObject):
42437         (WebCore::RenderBlock::floatRect):
42438         (WebCore::RenderBlock::lowestPosition):
42439         (WebCore::RenderBlock::rightmostPosition):
42440         (WebCore::RenderBlock::leftmostPosition):
42441         (WebCore::RenderBlock::addOverhangingFloats):
42442         (WebCore::RenderBlock::nodeAtPoint):
42443         (WebCore::RenderBlock::hitTestContents):
42444         (WebCore::RenderBlock::calcPrefWidths):
42445         (WebCore::InlineMinMaxIterator::next):
42446         (WebCore::getBorderPaddingMargin):
42447         (WebCore::RenderBlock::calcInlinePrefWidths):
42448         (WebCore::RenderBlock::calcBlockPrefWidths):
42449         * rendering/RenderContainer.cpp:
42450         (WebCore::RenderContainer::appendChildNode):
42451         (WebCore::RenderContainer::insertChildNode):
42452         * rendering/RenderFlexibleBox.cpp:
42453         (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42454         (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42455         * rendering/RenderFlow.cpp:
42456         (WebCore::RenderFlow::dirtyLinesFromChangedChild):
42457         * rendering/RenderLayer.cpp:
42458         (WebCore::RenderLayer::updateVisibilityStatus):
42459         (WebCore::RenderLayer::updateLayerPosition):
42460         * rendering/RenderObject.cpp:
42461         (WebCore::RenderObject::containingBlock):
42462         * rendering/RenderTable.cpp:
42463         (WebCore::RenderTable::paint):
42464         * rendering/RenderTableCell.cpp:
42465         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
42466         * rendering/RenderTableRow.cpp:
42467         (WebCore::RenderTableRow::nodeAtPoint):
42468         (WebCore::RenderTableRow::paint):
42469         * rendering/RenderTableSection.cpp:
42470         (WebCore::RenderTableSection::nodeAtPoint):
42471         * rendering/RenderTreeAsText.cpp:
42472         (WebCore::write):
42474 2007-04-24  Steve Falkenburg  <sfalken@apple.com>
42476         Reviewed by Darin, Oliver.
42478         Refactor spelling codepaths
42480         * bridge/EditorClient.h:
42481         * page/ContextMenuController.cpp:
42482         (WebCore::ContextMenuController::contextMenuItemSelected):
42483         * platform/ContextMenu.cpp:
42484         (WebCore::ContextMenu::populate):
42485         (WebCore::ContextMenu::checkOrEnableIfNeeded):
42486         * platform/gdk/EditorClientGdk.cpp:
42487         (WebCore::EditorClientGdk::ignoreWordInSpellDocument):
42488         (WebCore::EditorClientGdk::learnWord):
42489         (WebCore::EditorClientGdk::checkSpellingOfString):
42490         (WebCore::EditorClientGdk::checkGrammarOfString):
42491         (WebCore::EditorClientGdk::udpateSpellingUIWithGrammarString):
42492         (WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
42493         (WebCore::EditorClientGdk::showSpellingUI):
42494         (WebCore::EditorClientGdk::spellingUIIsShowing):
42495         (WebCore::EditorClientGdk::getGuessesForWord):
42496         * platform/gdk/EditorClientGdk.h:
42498 2007-04-24  Darin Adler  <darin@apple.com>
42500         Reviewed by Adele.
42502         - first round of preparation for Hyatt's "lazy minMaxWidth" change
42503           http://bugs.webkit.org/show_bug.cgi?id=13431
42505         This patch limits itself to renaming and making other super-simple
42506         changes so that the above change will be smaller and easier to review
42507         and understand.
42509         Rename:
42511             calcHorizontalMinMaxWidth -> calcHorizontalPrefWidths
42512             calcMinMaxWidth -> calcPrefWidths
42513             calcMinMaxWidthInternal -> calcPrefWidthsInternal
42514             calcVerticalMinMaxWidth -> calcVerticalPrefWidths
42515             setNeedsLayoutAndMinMaxRecalc -> setNeedsLayoutAndPrefWidthsRecalc
42516             trimmedMinMaxWidth -> trimmedPrefWidths
42518             RenderObject::m_maxWidth -> RenderObject::m_maxPrefWidth
42519             RenderObject::m_minWidth -> RenderObject::m_minPrefWidth
42520             RenderObject::maxWidth() -> RenderObject::maxPrefWidth()
42521             RenderObject::minWidth() -> RenderObject::minPrefWidth()
42523         Replace m_minMaxKnown, minMaxKnown(), and setMinMaxKnown() with
42524         m_prefWidthsDirty, prefWidthsDirty(), and setPrefWidthsDirty(),
42525         a boolean with the opposite sense.
42527         Convert some uses of if statements into "max".
42529         Change many uses of layer() to hasLayer(). For now it's just a boolean
42530         version of layer(), but Hyatt's patch makes it faster by using a bit.
42532         Added a guard to use of axObjectCache() to make RenderObject destruction
42533         a little faster for the normal case.
42535         Removed some assertions that will be removed in Hyatt's patch.
42537         Made some functions const that will be const in Hyatt's patch.
42539         Put in some revised comments from Hyatt's patch.
42541         Removed an unneeded nil check from RenderListMarker::setStyle.
42543         Moved RootInlineBox::setHorizontalOverflowPositions and
42544         RootInlineBox::setVerticalSelectionPositions to the RootInlineBox.h
42545         header and marked them inline.
42547         * dom/Document.cpp:
42548         (WebCore::Document::updateStyleSelector):
42549         * html/HTMLTextAreaElement.cpp:
42550         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
42551         * page/Frame.cpp:
42552         (WebCore::Frame::forceLayoutWithPageWidthRange):
42553         * rendering/AutoTableLayout.cpp:
42554         (WebCore::AutoTableLayout::recalcColumn):
42555         (WebCore::AutoTableLayout::calcPrefWidths):
42556         (WebCore::AutoTableLayout::calcEffectiveWidth):
42557         * rendering/AutoTableLayout.h:
42558         * rendering/CounterNode.cpp:
42559         (WebCore::CounterNode::recount):
42560         * rendering/FixedTableLayout.cpp:
42561         (WebCore::FixedTableLayout::calcPrefWidths):
42562         * rendering/FixedTableLayout.h:
42563         * rendering/InlineFlowBox.cpp:
42564         (WebCore::InlineFlowBox::paint):
42565         * rendering/RenderApplet.cpp:
42566         (WebCore::RenderApplet::layout):
42567         * rendering/RenderBlock.cpp:
42568         (WebCore::RenderBlock::removeChild):
42569         (WebCore::RenderBlock::layoutBlock):
42570         (WebCore::RenderBlock::handleCompactChild):
42571         (WebCore::RenderBlock::getClearDelta):
42572         (WebCore::RenderBlock::calcPrefWidths):
42573         (WebCore::RenderBlock::calcInlinePrefWidths):
42574         (WebCore::RenderBlock::calcBlockPrefWidths):
42575         * rendering/RenderBlock.h:
42576         * rendering/RenderBox.cpp:
42577         (WebCore::RenderBox::RenderBox):
42578         (WebCore::RenderBox::nodeAtPoint):
42579         (WebCore::RenderBox::calcWidth):
42580         (WebCore::RenderBox::calcWidthUsing):
42581         (WebCore::RenderBox::calcAbsoluteHorizontal):
42582         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
42583         * rendering/RenderBox.h:
42584         (WebCore::RenderBox::minPrefWidth):
42585         (WebCore::RenderBox::maxPrefWidth):
42586         * rendering/RenderContainer.cpp:
42587         (WebCore::RenderContainer::removeChildNode):
42588         (WebCore::RenderContainer::appendChildNode):
42589         (WebCore::RenderContainer::insertChildNode):
42590         (WebCore::RenderContainer::layout):
42591         * rendering/RenderContainer.h:
42592         (WebCore::RenderContainer::calcPrefWidths):
42593         * rendering/RenderCounter.cpp:
42594         (WebCore::RenderCounter::calcPrefWidths):
42595         * rendering/RenderCounter.h:
42596         * rendering/RenderFieldset.cpp:
42597         (WebCore::RenderFieldset::calcPrefWidths):
42598         * rendering/RenderFieldset.h:
42599         * rendering/RenderFileUploadControl.cpp:
42600         (WebCore::RenderFileUploadControl::calcPrefWidths):
42601         * rendering/RenderFileUploadControl.h:
42602         * rendering/RenderFlexibleBox.cpp:
42603         (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42604         (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42605         (WebCore::RenderFlexibleBox::calcPrefWidths):
42606         (WebCore::RenderFlexibleBox::layoutBlock):
42607         (WebCore::RenderFlexibleBox::allowedChildFlex):
42608         * rendering/RenderFlexibleBox.h:
42609         (WebCore::RenderFlexibleBox::hasMultipleLines):
42610         (WebCore::RenderFlexibleBox::isVertical):
42611         (WebCore::RenderFlexibleBox::isHorizontal):
42612         * rendering/RenderFlow.cpp:
42613         (WebCore::RenderFlow::absoluteClippedOverflowRect):
42614         * rendering/RenderForeignObject.cpp:
42615         (WebCore::RenderForeignObject::layout):
42616         * rendering/RenderFrameSet.cpp:
42617         (WebCore::RenderFrameSet::layout):
42618         * rendering/RenderHTMLCanvas.cpp:
42619         (WebCore::RenderHTMLCanvas::layout):
42620         * rendering/RenderImage.cpp:
42621         (WebCore::RenderImage::imageChanged):
42622         (WebCore::RenderImage::layout):
42623         (WebCore::RenderImage::calcPrefWidths):
42624         * rendering/RenderImage.h:
42625         * rendering/RenderInline.cpp:
42626         (WebCore::RenderInline::addChildToFlow):
42627         (WebCore::RenderInline::splitInlines):
42628         (WebCore::RenderInline::splitFlow):
42629         (WebCore::RenderInline::calcPrefWidths):
42630         * rendering/RenderInline.h:
42631         * rendering/RenderListBox.cpp:
42632         (WebCore::RenderListBox::updateFromElement):
42633         (WebCore::RenderListBox::calcPrefWidths):
42634         * rendering/RenderListBox.h:
42635         * rendering/RenderListItem.cpp:
42636         (WebCore::RenderListItem::updateValue):
42637         (WebCore::RenderListItem::updateMarkerLocation):
42638         (WebCore::RenderListItem::calcPrefWidths):
42639         (WebCore::RenderListItem::layout):
42640         (WebCore::RenderListItem::explicitValueChanged):
42641         * rendering/RenderListItem.h:
42642         * rendering/RenderListMarker.cpp:
42643         (WebCore::RenderListMarker::setStyle):
42644         (WebCore::RenderListMarker::layout):
42645         (WebCore::RenderListMarker::imageChanged):
42646         (WebCore::RenderListMarker::calcPrefWidths):
42647         (WebCore::RenderListMarker::calcWidth):
42648         * rendering/RenderListMarker.h:
42649         * rendering/RenderMenuList.cpp:
42650         (WebCore::RenderMenuList::updateOptionsWidth):
42651         (WebCore::RenderMenuList::calcPrefWidths):
42652         * rendering/RenderMenuList.h:
42653         * rendering/RenderObject.cpp:
42654         (WebCore::RenderObject::RenderObject):
42655         (WebCore::addLayers):
42656         (WebCore::RenderObject::removeLayers):
42657         (WebCore::RenderObject::moveLayers):
42658         (WebCore::RenderObject::addAbsoluteRectForLayer):
42659         (WebCore::RenderObject::checkForRepaintDuringLayout):
42660         (WebCore::RenderObject::dump):
42661         (WebCore::RenderObject::setStyle):
42662         (WebCore::RenderObject::destroy):
42663         (WebCore::RenderObject::recalcMinMaxWidths):
42664         * rendering/RenderObject.h:
42665         (WebCore::RenderObject::hasLayer):
42666         (WebCore::RenderObject::prefWidthsDirty):
42667         (WebCore::RenderObject::setPrefWidthsDirty):
42668         (WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
42669         (WebCore::RenderObject::calcPrefWidths):
42670         (WebCore::RenderObject::minPrefWidth):
42671         (WebCore::RenderObject::maxPrefWidth):
42672         * rendering/RenderPart.cpp:
42673         (WebCore::RenderPart::setWidget):
42674         * rendering/RenderPartObject.cpp:
42675         (WebCore::RenderPartObject::updateWidget):
42676         (WebCore::RenderPartObject::layout):
42677         * rendering/RenderReplaced.cpp:
42678         (WebCore::RenderReplaced::calcPrefWidths):
42679         * rendering/RenderReplaced.h:
42680         * rendering/RenderSVGContainer.cpp:
42681         (WebCore::RenderSVGContainer::calcPrefWidths):
42682         (WebCore::RenderSVGContainer::layout):
42683         * rendering/RenderSVGContainer.h:
42684         * rendering/RenderSVGHiddenContainer.cpp:
42685         (WebCore::RenderSVGHiddenContainer::calcPrefWidths):
42686         * rendering/RenderSVGHiddenContainer.h:
42687         * rendering/RenderSVGText.cpp:
42688         (WebCore::RenderSVGText::layout):
42689         * rendering/RenderSlider.cpp:
42690         (WebCore::RenderSlider::calcPrefWidths):
42691         * rendering/RenderSlider.h:
42692         * rendering/RenderTable.cpp:
42693         (WebCore::RenderTable::calcWidth):
42694         (WebCore::RenderTable::layout):
42695         (WebCore::RenderTable::calcPrefWidths):
42696         (WebCore::RenderTable::splitColumn):
42697         (WebCore::RenderTable::appendColumn):
42698         * rendering/RenderTable.h:
42699         * rendering/RenderTableCell.cpp:
42700         (WebCore::RenderTableCell::updateFromElement):
42701         (WebCore::RenderTableCell::styleOrColWidth):
42702         (WebCore::RenderTableCell::calcPrefWidths):
42703         * rendering/RenderTableCell.h:
42704         * rendering/RenderTableCol.cpp:
42705         (WebCore::RenderTableCol::updateFromElement):
42706         * rendering/RenderTableRow.cpp:
42707         (WebCore::RenderTableRow::layout):
42708         * rendering/RenderTableSection.cpp:
42709         (WebCore::RenderTableSection::paint):
42710         * rendering/RenderText.cpp:
42711         (WebCore::RenderText::trimmedPrefWidths):
42712         (WebCore::RenderText::calcPrefWidths):
42713         (WebCore::RenderText::calcPrefWidthsInternal):
42714         (WebCore::RenderText::setText):
42715         * rendering/RenderText.h:
42716         (WebCore::RenderText::minPrefWidth):
42717         (WebCore::RenderText::maxPrefWidth):
42718         * rendering/RenderTextControl.cpp:
42719         (WebCore::RenderTextControl::calcPrefWidths):
42720         * rendering/RenderTextControl.h:
42721         * rendering/RenderView.cpp:
42722         (WebCore::RenderView::RenderView):
42723         (WebCore::RenderView::calcPrefWidths):
42724         (WebCore::RenderView::layout):
42725         * rendering/RenderView.h:
42726         * rendering/RenderWidget.cpp:
42727         (WebCore::RenderWidget::layout):
42728         * rendering/RootInlineBox.cpp:
42729         * rendering/RootInlineBox.h:
42730         (WebCore::RootInlineBox::setHorizontalOverflowPositions):
42731         (WebCore::RootInlineBox::setVerticalSelectionPositions):
42732         * rendering/TableLayout.h:
42734 2007-04-24  Justin Garcia  <justin.garcia@apple.com>
42736         Reviewed by oliver
42737         
42738         <rdar://problem/5156401> 
42739         Crash when dragging text into a link inside a table cell
42741         * editing/CompositeEditCommand.cpp:
42742         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
42743         Don't avoid the anchor if doing so would skip over a line break, that
42744         would put content in the wrong paragraph, which can throw ReplaceSelectionCommand,
42745         which relies on moveParagraphs into infinite recursion.
42746         Renamed the input position.
42747         Don't need to re-fetch the enclosing anchor when preparing to push it down,
42748         since it hasn't changed since the top of the function.
42750 2007-04-24  Timothy Hatcher  <timothy@apple.com>
42752         Reviewed by Adam.
42754         <rdar://problem/5133011> 64-bit: Attempting to paste copied text in a input field results in a crash at WebCore::Range::startPosition()
42756         Change a couple incorrect uses of LONG_MAX to INT_MAX to match the variable type they are used in.
42757         The LONG_MAX on 64-bit was overflowing the int variables, causing this crash on paste.
42759         * bridge/mac/WebCoreAXObject.mm:
42760         (-[WebCoreAXObject value]):
42761         * editing/TextIterator.cpp:
42762         (WebCore::TextIterator::handleTextNode):
42763         (WebCore::TextIterator::handleTextBox):
42765 2007-04-24  Timothy Hatcher  <timothy@apple.com>
42767         Reviewed by Adam.
42769         <rdar://problem/4966982> 64-bit: In a unordered list, TYPE=DISC and TYPE=CIRCLE attribute values are ignored
42771         We need to draw our full-circle arcs counter-clockwise, since a clockwise arc from 0 to 2π is no arc at all!
42772         This only worked on 32-bit due to a rounding error in CoreGraphics, causing it to draw a full circle anyway.
42774         * platform/graphics/cg/GraphicsContextCG.cpp:
42775         (WebCore::GraphicsContext::drawEllipse):
42777 2007-04-24  Brady Eidson  <beidson@apple.com>
42779         Reviewed by Beth, Hyatt, Ada, and Darin
42781         <rdar://problem/5011477> and <rdar://problem/5011514>
42782         Provide support for the icon.db to be moved to a different directory from the old WebKit-style
42783         icons, and remove the old directory if that is the case
42785         Support for this starts in WebCore, where we can use the metadata table in the icon.db to track
42786         whether or not we've ever done the import
42788         * WebCore.exp:
42789         * loader/icon/IconDatabase.cpp:
42790         (WebCore::IconDatabase::defaultDatabaseFilename): Changed to "Icons.db"
42791         (WebCore::IconDatabase::IconDatabase):
42792         (WebCore::IconDatabase::deleteAllPreparedStatements): Delete the new statements added
42793         (WebCore::IconDatabase::imported): Grab this flag from the DB or return the cached flag
42794         (WebCore::IconDatabase::setImported): Store this flag into the DB
42795         (WebCore::IconDatabase::importedQuery): Actually do the DB query for this save
42796         (WebCore::IconDatabase::setImportedQuery): Actually do the DB query for this retrieval
42797         * loader/icon/IconDatabase.h:
42799 2007-04-24  Darin Adler  <darin@apple.com>
42801         Reviewed by Justin.
42803         - fix <rdar://problem/4356361> Selection after multiple delete
42804           keypresses and undo selects only the last deleted character
42806         Test: editing/undo/undo-combined-delete-boundary.html
42807         Test: editing/undo/undo-combined-delete.html
42808         Test: editing/undo/undo-delete-boundary.html
42809         Test: editing/undo/undo-delete.html
42810         Test: editing/undo/undo-forward-delete-boundary.html
42811         Test: editing/undo/undo-forward-delete.html
42813         * editing/TypingCommand.cpp:
42814         (WebCore::TypingCommand::insertText): Fix obviously-wrong code where there were missing
42815         braces. I couldn't find any real symptom of this, but I think the fix should go in anyway.
42816         All layout tests still pass.
42817         (WebCore::TypingCommand::deleteKeyPressed): Added code to compute a selection that goes
42818         back to the beginning of the composite editing operation.
42819         (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
42821         * editing/Selection.h:
42822         * editing/Selection.cpp: (WebCore::Selection::setWithoutValidation):
42823         Added. Back door to allow setting the ends of a selection without revalidating,
42824         because we need to use it on a selection where the endpoints may no longer be
42825         valid due to mutations done by earlier pieces of the editing operation.
42827         * editing/EditCommand.h:
42828         (WebCore::EditCommand::startingSelection): Return a const& for speed.
42829         (WebCore::EditCommand::endingSelection): Ditto.
42831 2007-04-24  Sam Weinig  <sam@webkit.org>
42833         Reviewed by Mitz.
42835         - fix for http://bugs.webkit.org/show_bug.cgi?id=13448
42836           REGRESSION: setting an input element's value to JavaScript null gives "null"
42838         Test: fast/forms/input-null.html
42840         * html/HTMLInputElement.idl: Convert JS null to the empty string on setting
42841         DOMString attributes.
42843 2007-04-24  Mitz Pettel  <mitz@webkit.org>
42845         Reviewed by Dave Hyatt.
42847         - fix http://bugs.webkit.org/show_bug.cgi?id=13453
42848           Control clip isn't applied to children's backgrounds, outlines and floats
42850         Test: fast/forms/control-clip.html
42852         * rendering/RenderBlock.cpp:
42853         (WebCore::RenderBlock::paint): Apply the clip in all phases that paint
42854         children. Split PaintPhaseOutline and PaintPhaseChildBlockBackground into
42855         two phases each, applying the clip only to the children.
42856         * rendering/RenderListBox.cpp:
42857         (WebCore::RenderListBox::paintObject): Treat the scrollbar as part of the
42858         background rather than as a child's background, now that children are
42859         clipped out.
42861 2007-04-24  Benjamin Otte  <otte@gnome.org>
42863         Reviewed by Mark Rowe.
42865         Gdk build system improvements.
42867         * make-generated-sources.sh: Exit with failure status if make fails.
42869 2007-04-24  Benjamin Otte  <otte@gnome.org>
42871         Reviewed by Mark Rowe.
42873         Gdk build system improvements.
42875         * Projects/gdk/webcore-gdk.bkl:
42876         fail if running any of the commands failed. In particular
42877         make-generated-sources.sh
42879 2007-04-23  Beth Dakin  <bdakin@apple.com>
42881         Reviewed by Adam.
42883         Fix for <rdar://problem/5155507> REGRESSION: Crash in 
42884         RenderLayer::setHasVisibleContent()
42886         * rendering/RenderContainer.cpp:
42887         (WebCore::RenderContainer::appendChildNode): Must null-check 
42888         enclosingLayer()
42889         (WebCore::RenderContainer::insertChildNode): Same.
42891 2007-04-23  David Hyatt  <hyatt@apple.com>
42893         Fix for bug 13337, deep tag nesting is slow.  This patch fixes a number of O(n^2) issues as well as making
42894         a few performance optimizations based off profiling.  Details next to each change below.
42896         Note that calcMinMaxWidth being slow is a critical separate piece of this puzzle.  Until bug 13430 is fixed,
42897         render tree construction will be O(n^2) (because of the minmaxrecalc bit setting being stupid enough to
42898         always crawl to the root of the tree) and calcMinMaxWidth will waste tons of unnecessary time.
42900         When these fixes are combined with the calcMinMaxWidth fix in 13430, the penguin page specified in 13337
42901         loads in < 2 seconds (down from an infinite hang before).
42903         Reviewed by aroben, ollie
42905         * css/cssstyleselector.cpp:
42906         (WebCore::CSSStyleSelector::locateCousinList):
42907         (WebCore::CSSStyleSelector::locateSharedStyle):
42908         * css/csstyleselector.h
42909         Cap the depth of cousin searching on the shared style optimization.  We will be willing to (at most) crawl
42910         up the tree the same distance that we were willing to crawl backwards through sibling lists.  Leaving it
42911         uncapped resulted in pathological style resolution for the case of an infinitely nested chain of singletons.
42913         * html/HTMLParser.cpp:
42914         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
42915         (WebCore::HTMLParser::popBlock):
42916         Cap the number of residual style tags that we are willing to reopen.  We will reopen at most 200
42917         residual style tags, since the assumption is that once that many tags are on the stack, you're probably already
42918         every kind of bold, italic, and color of the rainbow.
42920         * rendering/RenderFlow.cpp:
42921         (WebCore::RenderFlow::absoluteClippedOverflowRect):
42922         absoluteClippedOverflowRect can just return the empty rect when the inline flow has no line boxes instead of
42923         doing a bunch of work (and calling containingBlock()) for no reason.
42925         * rendering/RenderInline.cpp:
42926         (WebCore::RenderInline::addChildToFlow):
42927         Remove the useless containingBlock() check from addChildToFlow.  Obviously every inline's containing block
42928         is a block flow.
42930         * rendering/bidi.cpp:
42931         (WebCore::inlineWidth):
42932         (WebCore::RenderBlock::createLineBoxes):
42933         Cap the depth of individual line trees to 200.  Again the assumption is that once that many open inlines exist
42934         all on one line that there's no way this would be intentional.
42936 2007-04-23  David Hyatt  <hyatt@apple.com>
42938         Fix for bug 13430, cap inline splitting for continuations to a maximum depth of 200.
42940         Reviewed by olliej, antti
42942         * rendering/RenderInline.cpp:
42943         (WebCore::RenderInline::splitInlines):
42945 2007-04-23  Alp Toker  <alp@atoker.com>
42947         Gdk build fix. Track EventHandler change made in r21042.
42949         * page/gdk/EventHandlerGdk.cpp:
42950         (WebCore::EventHandler::passWheelEventToWidget):
42951         (WebCore::EventHandler::passMousePressEventToScrollbar):
42953 2007-04-23  Timothy Hatcher  <timothy@apple.com>
42955         Reviewed by Darin.
42957         <rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
42959         * rendering/RenderText.cpp:
42960         (WebCore::RenderText::addLineBoxRects): Use min(box->len(), end) instead of special-casing UINT_MAX.
42962 2007-04-23  Adele Peterson  <adele@apple.com>
42964         Fix by Darin, reviewed by me.
42966         Fix for REGRESSION: Can't upload attachments to bugzilla since the file upload control is reset immediately 
42967         http://bugs.webkit.org/show_bug.cgi?id=13461
42969         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::updateFromElement):
42970         Only clear the FileChooser if the value is empty *and* (not or) the filename is empty.
42972 2007-04-23  Adele Peterson  <adele@apple.com>
42974         Reviewed by Adam.
42976         Updated fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
42978         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute): Use a const int maxSavedResults instead of magic number 256.
42980 2007-04-23  Timothy Hatcher  <timothy@apple.com>
42982         Reviewed by Hyatt.
42984         <rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
42986         Don't call selectionRect with a -1 end position, instead use the text length.
42988         * rendering/RenderText.cpp:
42989         (WebCore::RenderText::addLineBoxRects):
42991 2007-04-23  Adele Peterson  <adele@apple.com>
42993         Fixed and reviewed by Darin, Adele, and Oliver.
42995         WebCore part of fix for <rdar://problem/5107538> REGRESSION: Page scroll when selecting characters from inline input candidate window by arrow buttons
42996         http://bugs.webkit.org/show_bug.cgi?id=13263
42998         * dom/KeyboardEvent.h: (WebCore::KeypressCommand::isEmpty): Added helper method.
43000 2007-04-23  Patti Hoa  <patti@apple.com>
43001         
43002         <rdar://problem/4938364> Attachment button has different string length between attributeStringForRange and stringForRange
43003         <rdar://problem/4939536> AXLengthForTextMarkerRange returns zero length for the range of an attachment
43004         
43005         Reviewed by Darin.
43007         * bridge/mac/WebCoreAXObject.mm:
43008         (nsStringForReplacedNode):
43009         Added helper routine to check if the replaced node should be exposed as an attachment character in string representation.
43010         Added an additional check to make sure that text node is not considered a replaced node.
43011         Removed helper routine AXAttributedStringAppendReplaced since half of the functions are now taken care by nsStringForReplacedNode.
43012         The other half is directly used in the doAXAttributedStringForTextMarkerRange method.
43013         (-[WebCoreAXObject doAXStringForTextMarkerRange:]):
43014         (-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]):
43015         Both string and AttrbributedString methods will now utilize the helper routine nsStringForReplacedNode to return replacement
43016         characters for range occupied by attachment.
43017         
43018 2007-04-23  Adele Peterson  <adele@apple.com>
43020         Reviewed by Oliver.
43022         Fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
43024         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute):
43025         Enforce a maximum of 256 saved results for the search field.
43027 2007-04-23  Adele Peterson  <adele@apple.com>
43029         Reviewed by Hyatt & Adam.
43031         Fix for <rdar://problem/4807799> REGRESSION: calling select() in onSearch handler doesn't work if you hit enter to trigger the event
43032         Fix for <rdar://problem/5153970> onChange doesn't fire when focusing a popup, using type-ahead to select, and leaving
43034         This previous behavior to blur controls when hitting enter was added to achieve the result of firing the change event.  Firefox does not
43035         fire blur- just the change event, so this fix will match Firefox behavior.
43037         This also fixes a bug where we didn't fire the change event when using type-ahead selection with the popup menu.
43039         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Fire change event instead of blur event when hitting enter.
43041         * html/HTMLSelectElement.cpp:
43042         (WebCore::HTMLSelectElement::dispatchFocusEvent): Now that we have type-ahead selection for popups that can be opened with the arrow keys,
43043          we should always save the last selection when a popup gets focus, so it can be compared to the current selection when it loses focus.
43044         (WebCore::HTMLSelectElement::dispatchBlurEvent): For the same reasons as above, we should fire onChange for all popups on blur.
43046         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Fire change event instead of blur event when hitting enter.  Removed an unnecessary
43047          check for form() before calling menuListOnChange().  Removed an unnecessary check for renderer() and usesMenuList().
43048         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Remove call to blur.  Since list boxes fire the change event immediately after an
43049          action is taken, we don't need to fire anything after hitting enter.
43050         (WebCore::HTMLSelectElement::menuListOnChange): Reset m_lastOnChangeIndex after firing the change event.
43052 2007-04-23  Anders Carlsson  <andersca@apple.com>
43054         Reviewed by Ada.
43056         <rdar://problem/5061022>
43057         REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
43058         
43059         Pass wheel events to all widgets.
43060         
43061         * page/EventHandler.cpp:
43062         (WebCore::EventHandler::handleWheelEvent):
43063         * page/EventHandler.h:
43064         * page/mac/EventHandlerMac.mm:
43065         (WebCore::EventHandler::passWheelEventToWidget):
43067 2007-04-23  Alp Toker  <alp@atoker.com>
43069         Reviewed by Mark.
43071         Save and restore the context state when beginning and ending a transparency layer.
43073         * platform/graphics/cairo/GraphicsContextCairo.cpp:
43074         (WebCore::GraphicsContext::beginTransparencyLayer):
43075         (WebCore::GraphicsContext::endTransparencyLayer):
43077 2007-04-23  Alp Toker  <alp@atoker.com>
43079         Reviewed by Mark.
43081         Further implementation and checks. The opacity layer code is not so beautiful
43082         but gets the job done with fewer complications than maintaining our own stack.
43084         * platform/graphics/cairo/GraphicsContextCairo.cpp:
43085         (WebCore::GraphicsContext::translate):
43086         (WebCore::GraphicsContext::setPlatformStrokeThickness):
43087         (WebCore::GraphicsContext::beginTransparencyLayer):
43088         (WebCore::GraphicsContext::endTransparencyLayer):
43089         (WebCore::GraphicsContext::setCompositeOperation):
43090         (WebCore::GraphicsContext::rotate):
43091         (WebCore::GraphicsContext::scale):
43093 2007-04-23  Darin Adler  <darin@apple.com>
43095         Reviewed by Hyatt.
43097         - rename box-sizing to -webkit-box-sizing
43098           because of <rdar://problem/4667227> REGRESSION: Shifted table on page at
43099           https://us.etrade.com/e/t/home (due to box-sizing)
43101         * css/CSSComputedStyleDeclaration.cpp:
43102         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Rename.
43103         * css/CSSPropertyNames.in: Ditto.
43104         * css/cssparser.cpp: (WebCore::CSSParser::parseValue): Rename and take out comment
43105         explaining why we aren't prefacing with -webkit.
43106         * css/cssstyleselector.cpp:
43107         (WebCore::CSSStyleSelector::applyProperty): Rename.
43108         * css/html4.css: Rename.
43109         * css/quirks.css: Rename.
43111 2007-04-23  Alp Toker  <alp@atoker.com>
43113         Reviewed by Hyatt.
43115         * platform/graphics/cairo/GraphicsContextCairo.cpp:
43116         (WebCore::GraphicsContext::drawEllipse):
43117         (WebCore::GraphicsContext::drawConvexPolygon):
43118         Fix stroking and filling of ellipses and polygons.
43119         * platform/graphics/cairo/ImageCairo.cpp:
43120         (WebCore::BitmapImage::draw): Make use of a new GraphicsContext
43121         function to simplify the code.
43122         (WebCore::Image::drawPattern): Now implemented. This makes content
43123         with tiled patterns (eg. CSS repeat) render correctly.
43124         * platform/graphics/gdk/ImageGdk.cpp:
43125         (WebCore::Image::drawPattern): Remove old stub.
43127 2007-04-22  Lars Naesbye Christensen  <lars@naesbye.dk>
43129         Reviewed by Tim Hatcher.
43131         Prettier, more modern 'cell' cursor
43132         http://bugs.webkit.org/show_bug.cgi?id=13441
43133         Also updates past ChangeLog entries to new email address
43135         * ChangeLog:
43136         * ChangeLog-2006-12-31:
43137         * Resources/cellCursor.png:
43139 2007-04-23  Mark Rowe  <mrowe@apple.com>
43141         Rubber-stamped by Hyatt.
43143         Rename cMaxPenderingSourceLengthInLowBandwidthDisplay to cMaxPendingSourceLengthInLowBandwidthDisplay.
43145         * loader/FrameLoader.cpp:
43146         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
43148 2007-04-22  Maciej Stachowiak  <mjs@apple.com>
43150         Reviewed by Darin and Geoff.
43152         - move most of Window's data members into a separate private object, to avoid needing
43153         to use the oversize allocator for it
43154         http://bugs.webkit.org/show_bug.cgi?id=13381
43155         
43156         It was the only remaining JSObject subclass to use the oversize
43157         allocator on 32-bit platforms, and having oversize objects around
43158         makes garbage collection slower so this would hurt performance
43159         with many tabs/windows open.
43160         
43161         No significant effect on JS iBench.
43163         * bindings/js/kjs_events.cpp:
43164         (KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
43165         (KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
43166         (KJS::JSEventListener::JSEventListener):
43167         (KJS::JSEventListener::~JSEventListener):
43168         (KJS::JSLazyEventListener::parseCode):
43169         * bindings/js/kjs_window.cpp:
43170         (KJS::WindowPrivate::WindowPrivate):
43171         (KJS::Window::Window):
43172         (KJS::Window::~Window):
43173         (KJS::Window::location):
43174         (KJS::Window::selection):
43175         (KJS::Window::locationbar):
43176         (KJS::Window::menubar):
43177         (KJS::Window::personalbar):
43178         (KJS::Window::statusbar):
43179         (KJS::Window::toolbar):
43180         (KJS::Window::scrollbars):
43181         (KJS::Window::mark):
43182         (KJS::Window::getValueProperty):
43183         (KJS::Window::findJSEventListener):
43184         (KJS::Window::findJSUnprotectedEventListener):
43185         (KJS::Window::clearHelperObjectProperties):
43186         (KJS::Window::clear):
43187         (KJS::Window::setCurrentEvent):
43188         (KJS::Window::setReturnValueSlot):
43189         (KJS::Window::clearAllTimeouts):
43190         (KJS::Window::installTimeout):
43191         (KJS::Window::pauseTimeouts):
43192         (KJS::Window::resumeTimeouts):
43193         (KJS::Window::clearTimeout):
43194         (KJS::Window::timerFired):
43195         (KJS::Window::disconnectFrame):
43196         (KJS::Window::jsEventListeners):
43197         (KJS::Window::jsHTMLEventListeners):
43198         (KJS::Window::jsUnprotectedEventListeners):
43199         (KJS::Window::jsUnprotectedHTMLEventListeners):
43200         * bindings/js/kjs_window.h:
43202 2007-04-22  David Hyatt  <hyatt@apple.com>
43204         Fix 1% regression on the PLT.  Make sure roundToDevicePixels does no
43205         work when no scale is in effect.
43207         Reviewed by mjs
43209 2007-04-22  Darin Adler  <darin@apple.com>
43211         Reviewed by Oliver.
43213         - fix small things noticed while looking into a font subsitution bug
43215         * platform/Font.h: (WebCore::Font::operator==): Corrected a misleading comment.
43217         * platform/Font.cpp:
43218         (WebCore::Font::Font): Initialize m_pageZero to 0 in the empty constructor instead
43219         of leaving it uninitialized. Initialize m_fontList for tighter code. Remove unneeded
43220         initialization of RefPtr members to 0. Changed the copy constructor to use initialization
43221         for tighter code.
43222         (WebCore::Font::operator=): Sorted to match the order from the header and the copy
43223         constructor, and removed the uneeded self-assignment check.
43225 2007-04-22  Darin Adler  <darin@apple.com>
43227         Reviewed by Maciej.
43229         - fix http://bugs.webkit.org/show_bug.cgi?id=5196
43230           <rdar://problem/4537384> input type=file fields with style=display:none do not post
43231           their values (5196)
43233         - fix http://bugs.webkit.org/show_bug.cgi?id=8248
43234           Can not clear file input field
43236         * manual-tests/clear-input-file.html: Added.
43238         * html/HTMLInputElement.cpp:
43239         (WebCore::HTMLInputElement::appendFormData): Remove check that prevents submission of
43240         form data when there is no renderer or the renderer is invisible. While well-intentioned,
43241         the rule does not match the behavior of other web browsers.
43242         (WebCore::HTMLInputElement::setValue): Instead of disallowing all value changes for file
43243         type, allow changes to the empty string.
43244         (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): Made file type return true
43245         for this. 1) The file type does store its value separate from the value attribute.
43246         2) The code in setInputType() should do the right thing given this new value, according to
43247         my inspection of the code. 3) The code in both reset() and setValue() will work properly
43248         if this is true, which was the motivation for changing it.
43250         * platform/FileChooser.h: Added a clear function.
43251         * platform/FileChooser.cpp: (WebCore::FileChooser::clear): Clear the filename and the icon.
43253         * rendering/RenderFileUploadControl.cpp:
43254         (WebCore::RenderFileUploadControl::valueChanged): Used a local variable to make the code
43255         a little bit more readable (and match the change below).
43256         (WebCore::RenderFileUploadControl::updateFromElement): Used local variables a bit more in
43257         the old code. Added code that will call clear on the FileChooser and repaint if the DOM
43258         element has an empty value and the FileChooser does not.
43260 2007-04-22  Grace Kloba  <klobag@gmail.com>
43262         Reviewed by Hyatt.
43264         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12279
43265         Implemented two pass loading. Enabled by WTF_USE_LOW_BANDWIDTH_DISPLAY flag.
43267         * dom/Document.cpp:
43268         (WebCore::Document::Document): initialize member variable m_inLowBandwidthDisplay
43270         * dom/Document.h:
43271         (WebCore::Document::haveStylesheetsLoaded): while in low bandwidth display mode, ignore pending style sheets
43272         (WebCore::Document::setDocLoader):
43273         (WebCore::Document::inLowBandwidthDisplay):
43274         (WebCore::Document::setLowBandwidthDisplay):
43275         * html/HTMLTokenizer.cpp:
43276         (WebCore::HTMLTokenizer::scriptHandler): while in low bandwidth display mode, don't execute JavaScript
43278         * loader/Cache.cpp:
43279         (WebCore::Cache::requestResource): while in low bandwidth display mode, don't let style sheet and JavaScript block
43281         * loader/CachedCSSStyleSheet.cpp:
43282         (WebCore::CachedCSSStyleSheet::checkNotify): add notifyFinished() as client may need "this" pointer
43284         * loader/DocLoader.h:
43285         (WebCore::DocLoader::replaceDocument):
43286         * loader/FrameLoader.cpp:
43287         (WebCore::FrameLoader::FrameLoader):
43288         (WebCore::FrameLoader::requestFrame): while in low bandwidth display mode, don't load sub-frame
43289         (WebCore::FrameLoader::stopLoading):
43290         (WebCore::FrameLoader::begin): set to low bandwidth display mode if the top frame is HTML document
43291         (WebCore::FrameLoader::write):
43292         (WebCore::FrameLoader::endIfNotLoading):
43293         (WebCore::FrameLoader::checkCompleted): while in low bandwidth display mode, don't set complete
43294         (WebCore::FrameLoader::requestObject): while in low bandwidth display mode, don't care Object
43295         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
43296         (WebCore::FrameLoader::removeAllLowbandwidthDisplayRequests):
43297         (WebCore::FrameLoader::notifyFinished):
43298         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
43299         * loader/FrameLoader.h:
43300         (WebCore::FrameLoader::FrameLoader::needToSwitchOutLowBandwidthDisplay):
43301         (WebCore::FrameLoader::FrameLoader::setUseLowBandwidthDisplay):
43302         (WebCore::FrameLoader::FrameLoader::useLowBandwidthDisplay):
43304 2007-04-22  Darin Adler  <darin@apple.com>
43306         Reviewed by Tim Hatcher.
43308         - fix http://bugs.webkit.org/show_bug.cgi?id=13439
43309           4 problems found in dashboard-region parser and serializer
43311         Test: fast/css/dashboard-region-parser.html
43313         * css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):
43314         Fix code that overwrote each additional region with the previous one to
43315         instead build a space-separated list. Check for the case of an identifier
43316         that's invalid, since that's (accidentally) how we represent a region
43317         value that doesn't have explicit top/right/bottom/left values. The old code
43318         would end up writing out four spaces after the region type.
43320         * css/cssparser.cpp: (WebCore::CSSParser::parseDashboardRegions):
43321         Fail to parse if there is something after the "none" identifier or after
43322         the arguments inside the dashboard-region "function". Also replaced code
43323         that produced a identifier with CSS_VAL_INVALID in a roundabout way with
43324         code that does it explicitly.
43326 2007-04-22  Darin Adler  <darin@apple.com>
43328         Reviewed by Adele.
43330         - support for fix for <rdar://problem/5100240> REGRESSION: Control-O broken
43332         * dom/KeyboardEvent.h: Include a vector of command names in the KeypressCommand object
43333         instead of a single command name.
43335 2007-04-22  Alexey Proskuryakov  <ap@webkit.org>
43337         Reviewed by Darin.
43339         http://bugs.webkit.org/show_bug.cgi?id=13115
43340         REGRESSION: 1000% performance regression in DOM access by index, which was already slow
43342         * dom/NodeList.h: Move cached data into a separate class, so it can be shared.
43344         * dom/Node.h: Replace the set of registered NodeLists with a struct that also
43345         contains a shared NodeList::Caches (so the size of Node doesn't change).
43347         * dom/NodeList.cpp:
43348         (WebCore::NodeList::NodeList):
43349         (WebCore::NodeList::~NodeList):
43350         (WebCore::NodeList::recursiveLength):
43351         (WebCore::NodeList::itemForwardsFromCurrent):
43352         (WebCore::NodeList::itemBackwardsFromCurrent):
43353         (WebCore::NodeList::recursiveItem):
43354         (WebCore::NodeList::itemWithName):
43355         (WebCore::NodeList::rootNodeChildrenChanged):
43356         (WebCore::NodeList::NodeListInfo::NodeListInfo):
43357         (WebCore::NodeList::NodeListInfo::reset):
43358         * dom/ChildNodeList.cpp:
43359         (WebCore::ChildNodeList::ChildNodeList):
43360         (WebCore::ChildNodeList::length):
43361         (WebCore::ChildNodeList::item):
43362         (WebCore::ChildNodeList::nodeMatches):
43363         * dom/ChildNodeList.h:
43364         * dom/Node.cpp:
43365         (WebCore::Node::childNodes):
43366         (WebCore::Node::registerNodeList):
43367         (WebCore::Node::unregisterNodeList):
43368         (WebCore::Node::notifyLocalNodeListsAttributeChanged):
43369         (WebCore::Node::notifyLocalNodeListsChildrenChanged):
43370         Adjust for the above changes.
43372 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43374         Reviewed by Darin.
43376         - fix http://bugs.webkit.org/show_bug.cgi?id=13391
43377           REGRESSION (r18819): Incomplete repaint of button text
43379         Test: fast/repaint/control-clip.html
43381         Ignore controls' lightweight clip in repaint rect computation for now.
43383         * rendering/RenderBox.cpp:
43384         (WebCore::RenderBox::computeAbsoluteRepaintRect):
43386 2007-04-21  Darin Adler  <darin@apple.com>
43388         Reviewed by Adam.
43390         - fix <rdar://problem/4816343> :-khtml-drag CSS pseudo-class changed to :-webkit-drag, need alias
43392         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType):
43393         Since Apple documentation claims "-khtml-drag" works, we need to keep it working,
43394         so add it back as an alias.
43396 2007-04-21  Darin Adler  <darin@apple.com>
43398         Reviewed by Oliver.
43400         - fix <rdar://problem/4782422> REGRESSION: -[stringByEvaluatingJavaScriptFromString]
43401           returns an empty string instead of nil for non-string results
43403         * page/mac/WebCoreFrameBridge.mm:
43404         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
43405         Added a call to nsStringNilIfEmpty to restore the old behavior. It might be nice to
43406         distinguish the empty string from a non-string result, but there's no obvious way
43407         to do that, and for compatibility it's probably best to just restore the old
43408         behavior instead.
43410 2007-04-21  David Hyatt  <hyatt@apple.com>
43412         Fix for bug 13432, determineFlowSpacing is O(n^2).
43414         Reviewed by aroben
43416         * rendering/InlineBox.cpp:
43417         (WebCore::InlineBox::nextOnLineExists):
43418         (WebCore::InlineBox::prevOnLineExists):
43419         * rendering/InlineBox.h:
43420         (WebCore::InlineBox::InlineBox):
43422 2007-04-21  Lamar Goddard <lamargoddard@gmail.com>
43424         Reviewed by Darin.
43426         Fix for http://bugs.webkit.org/show_bug.cgi?id=5262
43427         <rdar://problem/5018778>
43428         XMLSerializer drops Namespace information
43430         Updated WebCore::markup to output namespace information for elements/attributes whose namespace information
43431         doesn't appear in its scope in the output.
43433         Added test case: fast/dom/serialize-nodes.xhtml
43435         * WebCore/editing/markup.cpp:
43436         (WebCore::createMarkup(const Node*, ...)): Changed call to WebCore::markup to match parameters
43437         (WebCore::markup): Changed recursive call to match tree structure, removed ASSERT and no longer needed includeSiblings parameter.
43438         (WebCore::startMarkup): Added optional parameter to track namespaces in the current scope.
43439         (WebCore::addNamespace): Function to add namespace information to markup.
43440         (WebCore::shouldAddNamespaceAttr):
43441         (WebCore::shouldAddNamespaceElem): Functions that test whether namespace information should be added for a given node.
43442         * WebCore/dom/Document.idl:
43443         (createElementNS):
43444         (createAttributeNS):
43445         (getElementsByTagNameNS): Added [ConvertNullToNullString] to namespaceURI parameter.
43446         * WebCore/dom/Node.cpp:
43447         (Node::getElementsByTagNameNS): removed test for namespaceURI being null as null can be a valid namespace.
43449 2007-04-21  Alexey Proskuryakov  <ap@webkit.org>
43451         Reviewed by Darin.
43453         http://bugs.webkit.org/show_bug.cgi?id=13300
43454         Reproducible crash opening anekdot.ru
43456         * html/HTMLParser.cpp:
43457         (WebCore::HTMLParser::HTMLParser):
43458         (WebCore::HTMLParser::getNode):
43459         (WebCore::HTMLParser::handleIsindex):
43460         * html/HTMLParser.h:
43461         Made HTMLParser::form a RefPtr, and renamed it to m_currentFormElement.
43462         Made m_currentMapElement a RefPtr.
43464 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43466         Reviewed by Darin.
43468         - fix http://bugs.webkit.org/show_bug.cgi?id=13353
43469           REGRESSION (r20754-20766): Textarea does not resize when scrollbar is present
43471         Test: fast/overflow/hit-test-overflow-controls.html
43473         * page/EventHandler.cpp:
43474         (WebCore::EventHandler::handleMouseMoveEvent): Avoid activating scrollbars
43475         during layer resize.
43476         * rendering/RenderBlock.cpp:
43477         (WebCore::RenderBlock::isPointInOverflowControl): Renamed isPointInScrollbar
43478         to this, to reflect that it returns true for points in the resize corner
43479         as well. Changed it to call the layer to do the actual work.
43480         (WebCore::RenderBlock::nodeAtPoint): Updated for the above rename.
43481         * rendering/RenderBlock.h:
43482         * rendering/RenderLayer.cpp:
43483         (WebCore::RenderLayer::horizontalScrollbarWidget): Fixed typo in this function's
43484         name (it was horizontaScrollbarWidget).
43485         (WebCore::RenderLayer::hitTestOverflowControls): Added. Returns whether the
43486         hit point is in one of the scrollbars or the resize corner, and updates the
43487         platform scrollbar in the hit test result if a scrollbar was hit.
43488         * rendering/RenderLayer.h:
43489         * rendering/RenderListBox.cpp:
43490         (WebCore::RenderListBox::isPointInOverflowControl): Rename.
43491         * rendering/RenderListBox.h:
43493 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43495         Reviewed by Darin.
43497         - fix http://bugs.webkit.org/show_bug.cgi?id=13417
43498           Repro crash when the first argument to getMatchedCSSRules is not an element
43500         Test: fast/dom/Window/getMatchedCSSRules-null-crash.html
43502         * css/cssstyleselector.cpp:
43503         (WebCore::CSSStyleSelector::styleRulesForElement): Added null check.
43505 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43507         Reviewed by Darin.
43509         - fix http://bugs.webkit.org/show_bug.cgi?id=13416
43510           Repro crash after referencing the user stylesheet from JavaScript
43512         No test included because DumpRenderTree does not support setting the user stylesheet.
43514         * css/cssstyleselector.cpp:
43515         (WebCore::CSSStyleSelector::CSSStyleSelector):
43516         (WebCore::CSSStyleSelector::~CSSStyleSelector):
43517         * css/cssstyleselector.h: Made m_userSheet a RefPtr.
43519 2007-04-21  Darin Fisher  <darin@chromium.org>
43521         Reviewed by Adam.
43523         NPObject should be forward declared using 'struct' instead of 'class'
43525         * page/Frame.h:
43527 2007-04-21  Alp Toker  <alp@atoker.com>
43529         Gdk build fix.
43531         * platform/gdk/FontPlatformDataGdk.cpp:
43532         (WebCore::FontPlatformData::FontPlatformData): Use the correct casts.
43534 2007-04-20  Brady Eidson  <beidson@apple.com>
43536         Reviewed by Oliver (Black Sheep)
43538         <rdar://problem/3559794>
43539         [WebView setMaintainsBackForwardList:] doesn't actually flush out the current page caches
43541         * WebCore.exp:
43542         * history/BackForwardList.cpp:
43543         (WebCore::BackForwardList::BackForwardList): Set the flag to true by default
43544         (WebCore::BackForwardList::addItem): Check the flag and bail if its false
43545         (WebCore::BackForwardList::setCapacity): More correct if it set the m_current to 
43546           NoCurrentItemIndex if we're setting capacity to 0
43547         (WebCore::BackForwardList::enabled): 
43548         (WebCore::BackForwardList::setEnabled): If we're disabling, cycle capacity to 0 and 
43549           back to flush things out
43550         * history/BackForwardList.h: Add enabled(), setEnabled(bool), and m_enabled
43552 2007-04-20  David Hyatt  <hyatt@apple.com>
43554         Bug 13424, firstLineStyle and verticalPositionHint together take
43555         33% of the time on the new tag nesting PLT.  Don't waste time even
43556         looking for first-line styles if no stylesheet used them.
43558         Reviewed by beth
43560         * css/CSSGrammar.y:
43561         * dom/Document.cpp:
43562         (WebCore::Document::Document):
43563         * dom/Document.h:
43564         (WebCore::Document::usesFirstLineRules):
43565         (WebCore::Document::setUsesFirstLineRules):
43566         * rendering/RenderObject.cpp:
43567         (WebCore::RenderObject::verticalPositionHint):
43568         (WebCore::RenderObject::firstLineStyle):
43570 2007-04-20  Peter Kasting  <pkasting@chromium.org>
43572         Reviewed by Oliver.
43574         - fix http://bugs.webkit.org/show_bug.cgi?id=13420
43576         * platform/TextEncodingRegistry.cpp:
43577         (WebCore::addToTextEncodingNameMap): Change a pointer comparison to a
43578         strcmp(), since the strings here are not necessarily
43579         pointer-equivalent.
43581 2007-04-20  Darin Adler  <darin@apple.com>
43583         Reviewed by Geoff Garen and John Sullivan.
43585         - fix <rdar://problem/4671964> document property on <iframe> elements causes problems for SAP application
43587         Test: fast/dom/iframe-document.html
43589         * bindings/js/kjs_html.h: Removed IFrameDocument.
43590         * bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::iFrameGetter): Ditto.
43592 2007-04-19  Alp Toker  <alp@atoker.com>
43594         Reviewed by Mark.
43596         * platform/gdk/FontGdk.cpp:
43597         (WebCore::Font::drawGlyphs):
43598         * platform/gdk/FontPlatformDataGdk.cpp:
43599         (WebCore::FontPlatformData::FontPlatformData): Fix font support in Gdk port.
43601 2007-04-19  David Hyatt  <hyatt@apple.com>
43603         Fix for bug 13208, implement word-break.  This patch produces a partial
43604         implementation of word-break.  word-break: break-all is implemented.  In
43605         addition, a custom value, word-break: break-word is added that is a hybrid
43606         of word-wrap: break-word and word-break: break-all (and more useful than
43607         either).
43609         Reviewed by beth
43611         Added fast/text/word-break.html
43613         * css/CSSComputedStyleDeclaration.cpp:
43614         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
43615         * css/CSSPropertyNames.in:
43616         * css/CSSValueKeywords.in:
43617         * css/cssparser.cpp:
43618         (WebCore::CSSParser::parseValue):
43619         * css/cssstyleselector.cpp:
43620         (WebCore::CSSStyleSelector::applyProperty):
43621         * rendering/RenderStyle.cpp:
43622         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
43623         (WebCore::StyleRareInheritedData::operator==):
43624         (WebCore::RenderStyle::diff):
43625         * rendering/RenderStyle.h:
43626         (WebCore::):
43627         (WebCore::RenderStyle::breakWords):
43628         (WebCore::RenderStyle::wordBreak):
43629         (WebCore::RenderStyle::setWordBreak):
43630         (WebCore::RenderStyle::initialWordBreak):
43631         (WebCore::RenderStyle::initialWordWrap):
43632         * rendering/RenderText.cpp:
43633         (WebCore::RenderText::calcMinMaxWidthInternal):
43634         * rendering/RenderTextControl.cpp:
43635         (WebCore::RenderTextControl::createInnerTextStyle):
43636         (WebCore::RenderTextControl::calcHeight):
43637         * rendering/bidi.cpp:
43638         (WebCore::RenderBlock::findNextLineBreak):
43640 2007-04-20  Mark Rowe  <mrowe@apple.com>
43642         Qt build fix for FreeBSD.
43644         * WebCore.pro: FreeBSD needs HAVE_PTHREAD_NP_H defined.
43646 2007-04-19  Mitz Pettel  <mitz@webkit.org>
43648         Reviewed by Darin.
43650         - fix http://bugs.webkit.org/show_bug.cgi?id=13403
43651           REGRESSION (r18875-r18899): Can no longer type into search form field after searching and then clicking "back"
43653         The problem was that the page was loaded from the page cache with a subtree
43654         marked for layout and the layout timer stopped (having been stopped when the
43655         page entered the page cache). FrameView::needsLayout() was returning false
43656         which prevented the pending layout from completing.
43658         * page/FrameView.cpp:
43659         (WebCore::FrameView::clear): Removed the call to stop the layout timer, since
43660         reset() does that already.
43661         (WebCore::FrameView::needsLayout): Changed to return true if there's a subtree
43662         pending relayout.
43664 2007-04-19  Justin Garcia  <justin.garcia@apple.com>
43666         Reviewed by harrison
43667         
43668         <rdar://problem/5144139> 
43669         On delete, <BR> inserted into non-editable ToDo <TABLE> element
43670         
43671         The fact that the br was being inserted at a bad position 
43672         (a non-editable position and one inside a table instead of 
43673         before it) was fixed in the previous checkin. This change 
43674         stops us from inserting a br at all, to fix the bug.
43675         
43676         After a delete, we need a placeholder if the selection
43677         started at the start of a paragraph and ended at the end 
43678         of a paragraph. But not if it starts just before a table 
43679         and ends inside that table.  We need placeholders to hold 
43680         open emptied out table cells, but that is handled separately.
43681         
43682         Also, moved lineBreakExistsAtPosition to htmlediting.cpp 
43683         so that it can be used in more places.
43685         * editing/CompositeEditCommand.cpp:
43686         (WebCore::CompositeEditCommand::removePlaceholderAt):
43687         (WebCore::CompositeEditCommand::moveParagraphs):
43688         * editing/DeleteSelectionCommand.cpp:
43689         (WebCore::DeleteSelectionCommand::doApply):
43690         * editing/InsertLineBreakCommand.cpp:
43691         * editing/InsertParagraphSeparatorCommand.cpp:
43692         (WebCore::InsertParagraphSeparatorCommand::doApply):
43693         * editing/htmlediting.cpp:
43694         (WebCore::lineBreakExistsAtPosition):
43695         * editing/htmlediting.h:
43697 2007-04-19  Justin Garcia  <justin.garcia@apple.com>
43699         Reviewed by harrison
43700         
43701         Fixes some issues found while investigating:
43702         <rdar://problem/5144139> On delete, <BR> inserted into non-editable ToDo <TABLE> element
43703         
43704         Move the code to handle inserting content before/after
43705         tables for [table, 0/max] to insertNodeAt, so that
43706         all insertions get it, not just some.
43707         Changed insertNodeAt to take in a position instead of a
43708         node and an offset.
43710         * editing/CompositeEditCommand.cpp:
43711         (WebCore::CompositeEditCommand::insertNodeAt):
43712         (WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition):
43713         (WebCore::CompositeEditCommand::insertBlockPlaceholder):
43714         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
43715         If paragrahStart.node() is an atomic node, insertNodeAt can handle
43716         insertion, we don't need to special case it.
43717         (WebCore::CompositeEditCommand::moveParagraphs):
43718         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
43719         * editing/CompositeEditCommand.h:
43720         * editing/DeleteSelectionCommand.cpp:
43721         (WebCore::DeleteSelectionCommand::mergeParagraphs):
43722         (WebCore::DeleteSelectionCommand::doApply):
43723         * editing/FormatBlockCommand.cpp:
43724         (WebCore::FormatBlockCommand::doApply):
43725         * editing/IndentOutdentCommand.cpp:
43726         (WebCore::IndentOutdentCommand::indentRegion):
43727         (WebCore::IndentOutdentCommand::outdentParagraph):
43728         * editing/InsertLineBreakCommand.cpp:
43729         (WebCore::InsertLineBreakCommand::doApply):
43730         * editing/InsertListCommand.cpp:
43731         (WebCore::InsertListCommand::doApply):
43732         * editing/InsertParagraphSeparatorCommand.cpp:
43733         (WebCore::InsertParagraphSeparatorCommand::doApply):
43734         * editing/InsertTextCommand.cpp:
43735         (WebCore::InsertTextCommand::prepareForTextInsertion): Removed some
43736         dead code that handled insertion at non-editable positions.
43737         (WebCore::InsertTextCommand::insertTab):
43738         * editing/ReplaceSelectionCommand.cpp:
43739         (WebCore::ReplaceSelectionCommand::doApply):
43740         (WebCore::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted):
43741         * editing/ReplaceSelectionCommand.h:
43743 2007-04-19  Mitz Pettel  <mitz@webkit.org>
43745         Reviewed by Darin.
43747         - fix http://bugs.webkit.org/show_bug.cgi?id=13336
43748           REGRESSION (r20646): editing/execCommand/hilitecolor.html crashes under guardMalloc
43750         Avoid calling selectionRect() and selectionGapRects() on a renderer that needs
43751         layout.
43753         * rendering/RenderBlock.cpp:
43754         (WebCore::RenderBlock::selectionGapRects):
43755         * rendering/RenderBlock.h:
43756         (WebCore::RenderBlock::BlockSelectionInfo::BlockSelectionInfo):
43757         * rendering/RenderListMarker.cpp:
43758         (WebCore::RenderListMarker::selectionRect):
43759         * rendering/RenderObject.h:
43760         (WebCore::RenderObject::SelectionInfo::SelectionInfo):
43761         * rendering/RenderReplaced.cpp:
43762         (WebCore::RenderReplaced::selectionRect):
43763         * rendering/RenderText.cpp:
43764         (WebCore::RenderText::selectionRect):
43766 2007-04-19  Justin Garcia  <justin.garcia@apple.com>
43768         Reviewed by darin
43770         <rdar://problem/5142012> 
43771         GoogleDocs: Crash at WebCore::Range::startPosition() when creating a list from a link
43772         
43773         List creation uses moveParagraphs to push content into list items.
43774         Its fragment creation (using createMarkup) incorrectly uses regular
43775         spaces instead of nbsps for spaces that were rendered (11475), which 
43776         causes spaces to be collapsed during the move operation.  This results 
43777         in a call to rangeFromLocationAndLength with a location past the end
43778         of the document.  We use the result from rangeFromLocationAndLength
43779         (null) and crash.
43780         
43781         Also when moveParagraphs tries to push content into a list item surrounded
43782         by an anchor, it fails because positionAvoidingSpecialElementBoundary avoids 
43783         the anchor, which also avoids the list item.  This was fixed by pushing
43784         down anchors before avoiding them.
43785         
43786         * editing/CompositeEditCommand.cpp:
43787         (WebCore::CompositeEditCommand::pushAnchorElementDown): Remove the
43788         old anchor after we push down clones of it, this is what callers
43789         expect.
43790         (WebCore::CompositeEditCommand::pushPartiallySelectedAnchorElementsDown):
43791         Call the new enclosingAnchorElement, that takes in a position instead
43792         of a node.
43793         (WebCore::CompositeEditCommand::moveParagraphs): If spaces collapsed
43794         as a result of the move, rangeFromLocationAndLength can return null,
43795         bail and don't try to preserve the selection in that case.
43796         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
43797         Moved from htmlediting.cpp.
43798         Make sure anchors are pushed down before avoiding them so that we don't
43799         also avoid structural elements like lists and blocks.
43800         * editing/CompositeEditCommand.h:
43801         * editing/TypingCommand.cpp: Moved isFirst/LastPositionBefore/AfterTable
43802         to htmlediting.cpp.
43803         * editing/htmlediting.cpp:
43804         Moved positionAvoidingSpecialElementBoundary so that it could call
43805         pushAnchorElementDown.
43806         (WebCore::isFirstPositionAfterTable): Moved here.
43807         (WebCore::isLastPositionBeforeTable): Moved here.
43808         (WebCore::enclosingAnchorElement): Moved here.
43809         (WebCore::enclosingListChild): Removed an extraneous space.
43810         * editing/htmlediting.h:
43812 2007-04-19  Beth Dakin  <bdakin@apple.com>
43814         Reviewed by Hyatt.
43816         Fix for <rdar://problem/5120889> Sized table cells w/borders not 
43817         drawn to correct size
43819         When table cells have children with %-height, the cells were 
43820         incorrectly shrinking down to be the size of the child. This 
43821         exposed another problem with replaced children and sizing.
43823         * rendering/RenderBox.cpp:
43824         (WebCore::RenderBox::calcReplacedHeightUsing): The exposed problem. 
43825         Subtract our borders and padding in the auto or percent table cell 
43826         containing block case.
43827         * rendering/RenderTableSection.cpp:
43828         (WebCore::RenderTableSection::layoutRows): When our children can 
43829         flex, do not always set the cellTopExtra and cellBottomExtra to 0! 
43830         That is bad! We should do the same as the non-flex case.
43832 2007-04-19  Anders Carlsson  <andersca@apple.com>
43834         Reviewed by Geoff.
43836         http://bugs.webkit.org/show_bug.cgi?id=13333
43837         Support naturalWidth/naturalHeight on image elements
43839         * html/HTMLImageElement.cpp:
43840         (WebCore::HTMLImageElement::naturalWidth):
43841         (WebCore::HTMLImageElement::naturalHeight):
43842         * html/HTMLImageElement.h:
43843         * html/HTMLImageElement.idl:
43845 2007-04-19  Patti Hoa  <patti@apple.com>
43847         Reviewed by Darin.
43848         - review suggestion for rdar://5145011 code change
43849         
43850         * bridge/mac/WebCoreAXObject.mm:
43851         (-[WebCoreAXObject value]):
43852         return early if value attribute is not supported by the attachment view.
43854 2007-04-19  Patti Hoa  <patti@apple.com>
43856         Reviewed by Darin.
43858         <rdar://problem/5145011> Allow attachment view of web object to handle accessibility actions
43859         
43860         * bridge/mac/WebCoreAXObject.mm:
43861         (-[WebCoreAXObject value]):
43862         Only allow asking the attachmentView for value if attachmentView supports this value attribute 
43863         (-[WebCoreAXObject title]):
43864         (-[WebCoreAXObject accessibilityAttributeNames]):
43865         Should not return that long list of unrelated attributes for attachmentView.
43866         (-[WebCoreAXObject accessibilityActionNames]):
43867         (-[WebCoreAXObject accessibilityPerformAction:]):
43868         Allow attachmentView a chance to handle actions.
43869         (-[WebCoreAXObject accessibilityParameterizedAttributeNames]):
43870         Should not return that long list of unrelated attributes for attachmentView.
43871         
43872 2007-04-19  Mitz Pettel  <mitz@webkit.org>
43874         Reviewed by Hyatt.
43876         - fix http://bugs.webkit.org/show_bug.cgi?id=13291
43877           REGRESSION (r19595): WebViewDidBeginEditingNotification not posted when focusing with the mouse
43879         Covered by editing tests.
43881         * dom/Document.cpp:
43882         (WebCore::Document::setFocusedNode): Moved the call to Editor::didBeginEditing()
43883         back into here.
43884         * dom/Element.cpp:
43885         (WebCore::Element::updateFocusAppearance): Removed the call to didBeginEditing().
43886         * html/HTMLInputElement.cpp:
43887         (WebCore::HTMLInputElement::updateFocusAppearance): Ditto.
43889 2007-04-19  Sam Weinig  <sam@webkit.org>
43891         Reviewed by Darin.
43893         - Patch for http://bugs.webkit.org/show_bug.cgi?id=12249
43894           FCKeditor: <hr>, <ul> and <ol> have id="undefined"
43896         Convert undefined and null to a null string for third argument of
43897         execCommand(); 
43899         Test: editing/execCommand/arguments-combinations.html
43901         * WebCore.xcodeproj/project.pbxproj:
43902         * bindings/js/kjs_binding.cpp:
43903         (KJS::valueToStringWithUndefinedOrNullCheck):
43904         * bindings/js/kjs_binding.h:
43905         * bindings/scripts/CodeGeneratorJS.pm:
43906         * dom/Document.idl:
43908 2007-04-19  Alp Toker  <alp@atoker.com>
43910         Reviewed by hyatt.
43912         * WebCoreSources.bkl: Remove obsolete source file from build.
43914 2007-04-18  Alp Toker  <alp@atoker.com>
43916         Gdk build fix.  Reviewed by Sam Weinig.
43918         Track changes to make GdkLauncher work again.
43920         * WebCoreSources.bkl:
43921         * platform/gdk/ChromeClientGdk.h:
43922         * platform/gdk/TemporaryLinkStubs.cpp:
43923         (ChromeClientGdk::createWindow):
43924         (ChromeClientGdk::createModalDialog):
43925         (Editor::markBadGrammar):
43927 2007-04-17  Brady Eidson  <beidson@apple.com>
43929         Reviewed by Tim
43931         <rdar://problem/5008925>
43932         Expose the NSURLConnection delegate willCacheResponse API to WebResourceLoadDelegate
43934         * WebCore.xcodeproj/project.pbxproj: Added ResourceLoaderMac.mm
43936         * loader/FrameLoaderClient.h: Add the willCacheResponse SPI for WebKit to implement
43938         * loader/ResourceLoader.h:
43939         * loader/mac/ResourceLoaderMac.mm: Added.
43940         (WebCore::ResourceLoader::willCacheResponse): Return the new cachedResponse from the client
43942         * platform/graphics/svg/SVGImageEmptyClients.h:
43943         (WebCore::SVGEmptyFrameLoaderClient::willCacheResponse): Stub
43945         * platform/network/ResourceHandleClient.h:
43946         (WebCore::ResourceHandleClient::willCacheResponse):  Return the new cachedResponse from the client
43948         * platform/network/mac/ResourceHandleMac.mm:
43949         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Call to get the new 
43950           cachedURLResponse before calling for the cache policy
43952 2007-04-18  Darin Adler  <darin@apple.com>
43954         Reviewed by Hyatt.
43956         - fix http://bugs.webkit.org/show_bug.cgi?id=13375
43957           REGRESSION (r20901): failing fast/overflow/scrollRevealButton.html
43959         * dom/Document.cpp: (WebCore::Document::updateLayout):
43960         If we have a parent frame, update its layout too.
43962 2007-04-18  Alp Toker  <alp@atoker.com>
43964         Gdk build fix.  Reviewed by Mark.
43966         * loader/gdk/FrameLoaderClientGdk.cpp:
43967         (WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
43968         (WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
43969         (WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
43970         * loader/gdk/FrameLoaderClientGdk.h:
43971         * platform/gdk/TemporaryLinkStubs.cpp:
43972         (CachedPage::close): Track PageCache to CachedPage refactoring.
43974 2007-04-17  Mitz Pettel  <mitz@webkit.org>
43976         Reviewed by Darin.
43978         - fix http://bugs.webkit.org/show_bug.cgi?id=13369
43979           REGRESSION (r13366): Invisible table cell background is painted
43981         Test: fast/table/invisible-cell-background.html
43983         * rendering/RenderTableCell.cpp:
43984         (WebCore::RenderTableCell::paintBackgroundsBehindCell): Don't paint any
43985         background if the cell is not visible. This behavior matches WinIE and Opera.
43987 2007-04-17  Justin Garcia  <justin.garcia@apple.com>
43989         Reviewed by harrison
43991         <rdar://problem/5119244> 
43992         Crash when indenting a selected ToDo
43993         
43994         indentRegion() was using the old (incorrect) editable root 
43995         getter, which returned null for a valid, editable position, 
43996         causing the crash.
43998         * editing/IndentOutdentCommand.cpp:
43999         (WebCore::IndentOutdentCommand::indentRegion):
44000         The editable root for a position is editableRootForPosition(p),
44001         not p.node()->rootEditableElement(), because of VisiblePositions 
44002         before/after tables, replaced elements and others.
44004 2007-04-17  Justin Garcia  <justin.garcia@apple.com>
44006         Reviewed by hyatt
44008         <rdar://problem/5138441> 
44009         GoogleDocs: Indented text looks like text that's been Quoted
44010         
44011         GoogleDocs uses FormatBlock, blockquotes and a style rule
44012         for blockquotes to implement a "Quote Text" feature.  Styles
44013         intended only for those blockquotes were added to the 
44014         blockquotes that we use for indenting.
44016         * css/html4.css: Removed the webkit-indent-blockquote class rule.
44017         * editing/IndentOutdentCommand.cpp:
44018         (WebCore::createIndentBlockquoteElement): Use custom margins
44019         and turn off border and padding to override author rules for
44020         blockquotes.
44022 2007-04-17  Justin Garcia  <justin.garcia@apple.com>
44024         Reviewed by darin
44026         <rdar://problem/5136770> 
44027         Gmail Editor: Hang when turning a particular multi-line selection into a list
44028         
44029         When InsertListCommand pushes content into list items, 
44030         it creates an empty list item and then calls moveParagraphs.  
44031         But moveParagraphs' selection preservation code fails when 
44032         it encounters empty list items (list items w/o placeholders).
44033         This causes InsertListCommand to lose track of where it has 
44034         already been performed, which causes the hang.
44036         * editing/InsertListCommand.cpp:
44037         (WebCore::InsertListCommand::doApply): Use brs to hold open 
44038         empty list items.
44040 2007-04-17  Darin Adler  <darin@apple.com>
44042         Oops, rolled that last change out. I'll redo it again later after making
44043         som additional refinments.
44045 2007-04-17  Darin Adler  <darin@apple.com>
44047         Reviewed by Brady.
44049         - a few baby steps to try to make lockHistory and userGesture less confusing
44051         * page/FrameLoadRequest.h:
44052         (WebCore::FrameLoadRequest::FrameLoadRequest): Add initialization of m_isUserGesture
44053         to true.
44054         (WebCore::FrameLoadRequest::shouldLockHistory): Renamed from lockHistory to avoid having
44055         a getter that sounds like a verb phrase.
44056         (WebCore::FrameLoadRequest::setShouldLockHistory): Ditto.
44057         (WebCore::FrameLoadRequest::isUserGesture): Added.
44058         (WebCore::FrameLoadRequest::setIsUserGesture): Ditto.
44060         * loader/FrameLoader.h: Remove userGesture parameter from load that takes
44061         FrameLoadRequest. Remove default values for lockHistory and userGesture parameters,
44062         since that just makes it more likely we'll forget to pass them in. Remove one of
44063         the overloads of urlSelected, since it's only called one place.
44065         * loader/FrameLoader.cpp:
44066         (WebCore::FrameLoader::createWindow): Remove userGesture parameter, relying on
44067         the true default in FrameLoadRequest.
44068         (WebCore::FrameLoader::urlSelected): Call setShouldLockHistory and setIsUserGesture
44069         on the FrameLoadRequest, and call load directly; also eliminate the other urlSelected
44070         overload since this was the only place it was called.
44071         (WebCore::FrameLoader::load): Remove userGesture parameter, relying on the true
44072         default in FrameLoadRequest. In the other overload, clean up logic to eliminate the
44073         argsReferrer variable and get rid of the userGesture parameter, using the value from
44074         FrameLoadRequest.
44075         (WebCore::FrameLoader::submitForm): Remove userGesture parameter, relying on the value
44076         in the FrameLoadRequest. This actually changes behavior.
44078         * bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): Pass
44079         false for userGesture explicitly instead of relying on default argument.
44081         * page/ContextMenuController.cpp: (WebCore::ContextMenuController::contextMenuItemSelected):
44082         Remove userGesture parameter, relying on the true default in FrameLoadRequest.
44084 2007-04-16  David Kilzer  <ddkilzer@webkit.org>
44086         Reviewed by NOBODY (fixed misspelling).
44088         * manual-tests/containing-block-position-chage.html: Removed.
44089         * manual-tests/containing-block-position-change.html: Added.
44091 2007-04-16  Justin Garcia  <justin.garcia@apple.com>
44093         Reviewed by darin
44095         <rdar://problem/5134759> 
44096         GMail Editor: Hang after pasting underlined text multiple times
44097         
44098         The moveParagraphs call that ReplaceSelectionCommand
44099         performs must receive only inline content from createMarkup, 
44100         or else it will result in another call to moveParagraphs 
44101         when it performs the move, resulting in infinite recursion.
44103         * editing/markup.cpp:
44104         (WebCore::startMarkup): We were only converting a block to
44105         an inline if it had an inline style declaration or styles 
44106         coming from matched rules.  Cleaned up this code a bit by 
44107         handling an element's style separately from its other 
44108         attributes.
44110 2007-04-16  Darin Adler  <darin@apple.com>
44112         - get layout tests going again
44114         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
44115         Replace assertion with a runtime check. We can consider changing it back to
44116         an assertion some day, but it's not important.
44118 2007-04-16  Darin Adler  <darin@apple.com>
44120         Reviewed by John Sullivan.
44122         - fix http://bugs.webkit.org/show_bug.cgi?id=13303
44123           <rdar://problem/5126341> REGRESSION: controls in a background Safari window
44124           maintain active appearance if the address bar has focus (13303)
44126         - fix a related problem where elements could look focused in non-active windows
44128         - simplify secure keyboard entry logic in Frame::setIsActive
44130         * WebCore.exp: Add two new symbols for use by WebKit.
44132         * html/HTMLInputElement.cpp:
44133         (WebCore::HTMLInputElement::dispatchFocusEvent): Call setUseSecureKeyboardEntryWhenActive
44134         rather than calling setSecureKeyboardEntry directly -- does nothing if the frame is not active.
44135         (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
44137         * page/Frame.cpp:
44138         (WebCore::Frame::setUseSecureKeyboardEntryWhenActive): Added. Calls
44139         setUseSecureKeyboardEntry only if the frame is active, but also stores away the state,
44140         so that the setIsActive function doesn't have to recompute it.
44141         (WebCore::Frame::setIsActive): Rewrote all the comments in the function. Removed the code
44142         to manage control tints, which are not based on the whether the frame is active but rather
44143         on AppKit's concept of whether the window should have "key appearance". Simplified the
44144         logic about when to call setUseSecureKeyboardEntry by using the value of
44145         m_useSecureKeyboardEntryWhenActive.
44146         (WebCore::FramePrivate::FramePrivate): Initialize m_useSecureKeyboardEntryWhenActive.
44147         * page/Frame.h: Made setSecureKeyboardEntry private and renamed it to
44148         setUseSecureKeyboardEntry, removed isSecureKeyboardEntry, and
44149         added a public setUseSecureKeyboardEntryWhenActive.
44150         * page/FramePrivate.h: Added m_useSecureKeyboardEntryWhenActive.
44151         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Added an assertion,
44152         and removed isSecureKeyboardEntry().
44154         * page/FrameView.h: Added updateControlTints.
44155         * page/FrameView.cpp: (WebCore::FrameView::updateControlTints): Added. Code was moved
44156         here from setIsActive for two reasons: (1) it makes more sense in the view class, and
44157         (2) it needs to be called at the appropriate time for AppKit, not when active changes.
44159         * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isFocused): Added an isActive
44160         check here to match the logic in the implementation of the CSS pseudo-state.
44161         * rendering/RenderThemeMac.mm:
44162         (WebCore::RenderThemeMac::updateFocusedState): Use the isFocused function instead of
44163         repeating the logic here. Removed the "need to add a key window test here" comment.
44164         (WebCore::RenderThemeMac::controlSupportsTints): Added a comment about the NSCell
44165         SPI that's related to the _windowChangedKeyState method we now use in WebHTMLView.
44167 2007-04-16  Darin Adler  <darin@apple.com>
44169         Reviewed by John Sullivan.
44171         - fix http://bugs.webkit.org/show_bug.cgi?id=13227
44172           StringImpl::isLower incorrectly assumes islower returns 1 (it can return any non-0)
44174         * platform/StringImpl.cpp:
44175         (WebCore::StringImpl::isLower): Based on test application results, changed to use &&
44176         instead of trying to use & to avoid branches. Use U16_NEXT so we can handle characters
44177         outside the BMP. Improved comments.
44178         (WebCore::StringImpl::lower): Improved comments.
44179         (WebCore::equalIgnoringCase): Changed to use && instead of trying to use & to avoid
44180         branches. Improved comments. Added an assertion about the assumption we're
44181         making that characters in the char* are all ASCII.
44183 2007-04-13  David Kilzer  <ddkilzer@webkit.org>
44185         Patch and review by hyatt.  Testing and landing by ddkilzer.
44187         <rdar://problem/5078866>
44188         tables don't inherit text-align (in strict mode; they're not supposed to in quirks mode)
44190         Test: fast/css/table-text-align-quirk.html
44191               fast/css/table-text-align-strict.html
44193         Previous commit (r20731) removed the wrong property from WebCore/css/html4.css.  However,
44194         when the correct property was removed, it caused tables to inherit alignment properties
44195         from tags like <center> and <div align="center">.  This is fixed in
44196         WebCore::CSSStyleSelector::adjustRenderStyle() by special-casing tables to reset the
44197         text-align property.
44199         * css/CSSComputedStyleDeclaration.cpp:
44200         (WebCore::valueForTextAlign): Renamed KHTML_CENTER, KHTML_LEFT and KHTML_RIGHT to
44201         WEBKIT_CENTER, WEBKIT_LEFT and WEBKIT_RIGHT.
44202         * css/cssparser.cpp:
44203         (WebCore::CSSParser::parseValue): Ditto.
44204         * css/cssstyleselector.cpp:
44205         (WebCore::CSSStyleSelector::adjustRenderStyle): Tables should not support -webkit-center,
44206         -webkit-left or -webkit-right values for text-align, so reset them back to auto.
44207         * css/html4.css: Removed "text-align: -webkit-auto;" property from tables selector.  It
44208         was previously added to css/quirks.css in r20731.
44209         * rendering/RenderBlock.cpp:
44210         (WebCore::RenderBlock::determineHorizontalPosition): Renamed KHTML_* to WEBKIT_*.
44211         * rendering/RenderBox.cpp:
44212         (WebCore::RenderBox::calcHorizontalMargins): Ditto.
44213         * rendering/RenderFlow.cpp:
44214         (WebCore::RenderFlow::caretRect): Ditto.
44215         * rendering/RenderStyle.h: Ditto.
44216         (WebCore::):
44217         * rendering/bidi.cpp:
44218         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
44220 2007-04-12  Brady Eidson  <beidson@apple.com>
44222         Reviewed by Black Sheep
44224         <rdar://problem/4664154> and http://bugs.webkit.org/show_bug.cgi?id=3546
44226         When you click on a link that opens in a new window from within gmail, they first create a new window 
44227         with an empty URL, then immediately document.write() into the window to schedule a redirect.
44229         Since the initial page doesn't have a URL associated with it, a history item never gets created.  The 
44230         reasonable solution?  To actually create the history item after the redirect (in updateHistoryForInternalLoad)
44232         * loader/FrameLoader.cpp:
44233         (WebCore::FrameLoader::addHistoryForCurrentLocation): Updates global and B/F history with a new history item
44234         (WebCore::FrameLoader::updateHistoryForStandardLoad): Call addHistoryForCurrentLocation
44235         (WebCore::FrameLoader::updateHistoryForInternalLoad): Call addHistoryForCurrentLocation if there is not already
44236           a current history item
44237         * loader/FrameLoader.h:
44239 2007-04-12  Oliver Hunt  <oliver@apple.com>
44241         Reviewed by Adam.
44243         This fixes <rdar://problem/5060766> -- Frameset with 
44244         an empty frame crashes due to null document.  Debug
44245         builds hit the frame->document() assertion in 
44246         EventHandler::prepareMouseEvent
44248         This null check seems necessary now, having run through 
44249         all the logic on the path to this crash it appears that
44250         we can't avoid this null check.  
44252         * page/EventHandler.cpp:
44253         (WebCore::EventHandler::updateDragAndDrop):
44255 2007-04-12  Justin Garcia  <justin.garcia@apple.com>
44257         Reviewed by darin
44258         
44259         <rdar://problem/5131716> 
44260         Clicking just before a ToDo doesn't put the caret before the ToDo
44261         
44262         * rendering/RenderBlock.cpp:
44263         (WebCore::RenderBlock::positionForCoordinates):
44264         Consider clicks inside the blocks padding, instead of
44265         incorrectly sending them to the position before the block.
44267 2007-04-12  John Sullivan  <sullivan@apple.com>
44269         Reviewed by Anders
44271         - WebCore part of fix for:
44272         <rdar://problem/5128697> REGRESSION: At least one PDF context menu item isn't appearing on Leopard
44274         * platform/ContextMenuItem.h:
44275         (WebCore::):
44276         add two PDF-related context menu items to enum to keep it in sync with WebKit
44278         * platform/ContextMenu.cpp:
44279         (WebCore::ContextMenu::checkOrEnableIfNeeded):
44280         add the new context menu items to the do-nothing case of a big switch statement
44282 2007-04-12  Simon Hausmann  <hausmann@kde.org>
44284         Reviewed by Zack.
44286         Fixed drawing of justified text in the Qt port.
44288         * platform/qt/FontQt.cpp:
44289         (Font::drawGlyphs):
44291 2007-04-11  Oliver Hunt  <oliver@apple.com>
44293         Reviewed by Maciej.
44295         Adding RetainPtr to the many global obj-c pointers we use in
44296         C/C++ methods.  This is necessary to prevent GC from collecting
44297         globals we want to keep around.
44299         We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure
44300         obj-c.
44302         Also made the Pasteboard::m_pasteboard a RetainPtr although it
44303         shouldn't be necessary as the only NSPasteboard instances that 
44304         should ever be inserted are the system clipboard and dragging 
44305         pasteboard.  Neither of which should ever be collected.
44307         * page/mac/WebCoreFrameBridge.mm:
44308         (_getPreSmartSet):
44309         (_getPostSmartSet):
44310         * platform/Pasteboard.h:
44311         * platform/graphics/mac/ColorMac.mm:
44312         (WebCore::nsColor):
44313         * platform/graphics/mac/GraphicsContextMac.mm:
44314         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
44315         * platform/mac/FontDataMac.mm:
44316         (WebCore::webFallbackFontFamily):
44317         * platform/mac/PasteboardMac.mm:
44318         (WebCore::writableTypesForURL):
44319         (WebCore::writableTypesForImage):
44320         (WebCore::Pasteboard::clear):
44321         (WebCore::Pasteboard::writeSelection):
44322         (WebCore::Pasteboard::writeURL):
44323         (WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
44324         (WebCore::Pasteboard::writeImage):
44325         (WebCore::Pasteboard::canSmartReplace):
44326         (WebCore::Pasteboard::plainText):
44327         (WebCore::Pasteboard::documentFragment):
44329 2007-04-11  Mitz Pettel  <mitz@webkit.org>
44331         Reviewed by Dave Hyatt.
44333         - fix http://bugs.webkit.org/show_bug.cgi?id=11362
44334           Native popup with size="1" wraps options
44336         Test: fast/forms/menulist-option-wrap.html
44338         * css/html4.css: Added white-space declaration for select[size="0"] and
44339         select[size="1"]. Added border-radius declaration for select.
44341 2007-04-11  Darin Fisher  <darin@chromium.org>
44343         Reviewed by Maciej.
44345         Add a Frame pointer to ChromeClient methods:
44346         http://bugs.webkit.org/show_bug.cgi?id=13127
44348         * loader/FrameLoader.cpp:
44349         (WebCore::FrameLoader::createWindow):
44350         * page/Chrome.cpp:
44351         (WebCore::Chrome::createWindow):
44352         (WebCore::Chrome::createModalDialog):
44353         * page/Chrome.h:
44354         * page/ChromeClient.h:
44355         * page/ContextMenuController.cpp:
44356         (WebCore::openNewWindow):
44357         * platform/graphics/svg/SVGImageEmptyClients.h:
44358         (WebCore::SVGEmptyChromeClient::createWindow):
44359         (WebCore::SVGEmptyChromeClient::createModalDialog):
44361 2007-04-11  Brady Eidson  <beidson@apple.com>
44363         Reviewed by Ada
44365         <rdar://problem/5080987> - Crash in DocumentLoader::frameLoader() const
44367         This was free nil checking lost during the ObjC -> C++ conversion
44369         * loader/FrameLoader.cpp:
44370         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Null check the DocumentLoader
44372 2007-04-11  Justin Garcia  <justin.garcia@apple.com>
44374         Reviewed by harrison
44376         <rdar://problem/5126166> 
44377         Deleting selection starting at before ToDo checkbox to end of line, inserts a BR in the subsequent ToDo
44378         
44379         If a selection ends in a table cell, we shouldn't perform
44380         a merge after deleting that selection.  We have code in
44381         place to prevent those merges, but it failed here.
44382         
44383         It fails because the end of the selection was [tableCell, 0],
44384         (normally not a valid VisiblePosition, but valid here
44385         because the table cell is empty).  We prevent the merge
44386         if the node of the position at the end of the selection 
44387         has an enclosingTableCell.  Even though [tableCell, 0] has 
44388         an enclosing table cell, the node tableCell doesn't, so 
44389         the check fails.
44390         
44391         Fixed this by changing enclosingTableCell to take in
44392         a position, instead of a node.  The other enclosing element
44393         getters should be changed in this way as well.
44395         * editing/DeleteSelectionCommand.cpp:
44396         (WebCore::DeleteSelectionCommand::initializePositionData):
44397         Call the new enclosingTableCell.
44398         * editing/ReplaceSelectionCommand.cpp:
44399         (WebCore::ReplaceSelectionCommand::shouldMerge): Ditto.
44400         * editing/htmlediting.cpp:
44401         (WebCore::enclosingTableCell): Take in a position instead
44402         of a node.
44403         * editing/htmlediting.h:
44405 2007-04-12  Mark Rowe  <mrowe@apple.com>
44407         Qt build fix.
44409         * WebCore.pro:
44410         * editing/qt/EditorQt.cpp:
44411         (WebCore::Editor::markBadGrammar):
44412         * history/qt/CachedPageQt.cpp: Added.
44413         (WebCore::CachedPage::close):
44414         * history/qt/PageCacheQt.cpp: Removed.
44416 2007-04-11  Brady Eidson  <beidson@apple.com>
44418         Reviewed by Antti
44420         <rdar://problem/5125648> and http://bugs.webkit.org/show_bug.cgi?id=13326
44422         Crash opening a link in a new window from Gmail
44424         Problem here is that the currentHistoryItem in the new window is null.  This *shouldn't* be the case, 
44425         and is the cause of a very long standing bug - 
44426         http://bugs.webkit.org/show_bug.cgi?id=3546 - Can't go back to first page in new window opened from gmail
44428         For now, adding a null check prevents this crash and restores the original, long standing regression
44430         * loader/FrameLoader.cpp:
44431         (WebCore::FrameLoader::updateHistoryForInternalLoad): NULL check
44433 2007-04-11  Adam Roben  <aroben@apple.com>
44435         Reviewed by Anders.
44437         Made image document copying more cross-platform.
44439         All layout tests pass.
44441         * editing/Editor.cpp:
44442         (WebCore::imageNodeFromImageDocument): Added.
44443         (WebCore::Editor::canCopy): Called imageNodeFromImageDocument.
44444         (WebCore::Editor::copy): Ditto.
44445         (WebCore::Editor::copyImage): Updated for changes to Pasteboard.
44446         * platform/Pasteboard.h: Made writeImage more general, which allowed
44447         getting rid of its second incarnation.
44448         * platform/gdk/TemporaryLinkStubs.cpp:
44449         * platform/mac/PasteboardMac.mm:
44450         (WebCore::Pasteboard::writeImage): Collapsed logic from the two
44451         writeImage methods into one.
44452         (Pasteboard::writeImage): Updated for Pasteboard changes.
44453         * platform/qt/PasteboardQt.cpp:
44454         (WebCore::Pasteboard::writeImage): Ditto.
44456 2007-04-11  Darin Adler  <darin@apple.com>
44458         * css/CSSValueKeywords.in: Fix a comment.
44460 2007-04-09  Justin Garcia  <justin.garcia@apple.com>
44462         Reviewed by harrison
44463         
44464         <rdar://problem/4932260> 
44465         Invalid attributed string for attachment range obtained via AXPreviousWordStartTextMarkerForTextMarker
44466         
44467         By default, text iterators don't emit anything for replaced 
44468         elements.  Boundary finding code works around this but has 
44469         bugs: replaced elements act as sentence boundaries and the 
44470         above bug, where previousBoundary moves past the start of a 
44471         word if there is a replaced element just before it. This 
44472         patch fixes these issues by treating replaced elements as 
44473         punctuation for boundary finding.
44475         * editing/TextIterator.cpp:
44476         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
44477         Set m_pastStartNode, the node after (in a reverse pre-order traversal) the 
44478         last one that should be processed.
44479         (WebCore::SimplifiedBackwardsTextIterator::advance):
44480         Stop at m_pastStartNode.
44481         Iterate over nodes in reverse pre-order (TextIterator traverses in 
44482         pre-orer). This makes knowing when to emit characters after nodes vs. when
44483         to emit characters before nodes easier.
44484         Remove the special case for entering a new block, emitting characters 
44485         after nodes can now be handled generally, in handleNonTextNode(), because
44486         of the way we traverse.
44487         Set m_handledChildren to false every iteration since we now do traverse in 
44488         reverse pre-order.
44489         (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
44490         Emit a comma for replaced elements.  We only use this kind of iterator 
44491         for finding boundaries, so we can do this unconditionally.
44492         (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
44493         Don't use emitNewline, instead specify where the newline should be positioned.
44494         A node is handled before its children, so characters emitted here should 
44495         be positioned after the node, not before it.
44496         (WebCore::SimplifiedBackwardsTextIterator::exitNode): 
44497         Don't use emitNewline, instead specify where the newline should be positioned.
44498         (WebCore::CharacterIterator::CharacterIterator): 
44499         Create a TextIterator that emits content for replaced elements, if requested.
44500         * editing/TextIterator.h:
44501         * editing/visible_units.cpp:
44502         (WebCore::previousBoundary): 
44503         Removed replaced element handling code.
44504         If the start of the chunk that contained the boundary was in a non-text
44505         node, then the boundary is not necessarily in that node.  Particularly
44506         because it is only the end of the chunk that is guaranteed to be a valid
44507         position in those cases.  We must iterate backwards by character from 
44508         the end of the chunk to find the boundary.
44509         (WebCore::nextBoundary): Removed replaced element handling code.
44511 2007-04-10  Brady Eidson  <beidson@apple.com>
44513         Reviewed by Darin
44515         <rdar://problem/4887095> - PageCache and PageState should be combined
44517         These two objects are a relic of when the PageCache was split between WebCore and WebKit
44518         It just makes good sense to combine them now, and the new object is more appropriately
44519         called "CachedPage"
44521         This patch is vast in scope, but simple in depth - anywhere a PageCache or PageState object 
44522         was used has been adjusted to use a CachedPage object instead.  The most notable change is
44523         that HistoryItem - which always used to have a PageCache object which may or may not have 
44524         had a PageState - now may or may not have a CachedPage.  This actually simplifies the 
44525         HistoryItem code a bit while making the role of CachedPage much more clear.
44527         * WebCore.exp:
44528         * WebCore.xcodeproj/project.pbxproj:
44530         * history/BackForwardList.cpp:
44531         (WebCore::BackForwardList::addItem):
44532         (WebCore::BackForwardList::setCapacity):
44533         (WebCore::BackForwardList::setPageCacheSize):
44534         (WebCore::BackForwardList::clearPageCache):
44535         (WebCore::BackForwardList::close):
44537         * history/PageCache.cpp: Removed.
44538         * history/PageCache.h: Removed.
44539         * page/PageState.cpp: Removed.
44540         * page/PageState.h: Removed.
44541         * history/CachedPage.cpp: Added.
44542         (WebCore::CachedPage::create):
44543         (WebCore::CachedPage::CachedPage):
44544         (WebCore::CachedPage::~CachedPage):
44545         (WebCore::CachedPage::restore):
44546         (WebCore::CachedPage::clear):
44547         (WebCore::CachedPage::setDocumentLoader):
44548         (WebCore::CachedPage::documentLoader):
44549         (WebCore::CachedPage::setTimeStamp):
44550         (WebCore::CachedPage::setTimeStampToNow):
44551         (WebCore::CachedPage::timeStamp):
44552         * history/CachedPage.h: Added.
44553         (WebCore::CachedPage::document):
44554         (WebCore::CachedPage::mousePressNode):
44555         (WebCore::CachedPage::URL):
44557         * history/HistoryItem.cpp:
44558         (WebCore::HistoryItem::HistoryItem):
44559         (WebCore::HistoryItem::setCachedPage):
44560         (WebCore::HistoryItem::setURL):
44561         (WebCore::HistoryItem::alwaysAttemptToUseCachedPage):
44562         (WebCore::HistoryItem::setAlwaysAttemptToUseCachedPage):
44563         (WebCore::HistoryItem::cachedPage):
44564         (WebCore::cachedPagesPendingRelease):
44565         (WebCore::HistoryItem::releaseCachedPagesOrReschedule):
44566         (WebCore::HistoryItem::releaseAllPendingCachedPages):
44567         (WebCore::HistoryItem::scheduleCachedPageForRelease):
44568         * history/HistoryItem.h:
44569         * history/mac/HistoryItemMac.mm:
44571         * history/HistoryItemTimer.cpp:
44572         (WebCore::HistoryItemTimer::HistoryItemTimer):
44573         (WebCore::HistoryItemTimer::callReleaseCachedPagesOrReschedule):
44574         * history/HistoryItemTimer.h:
44576         * history/mac/PageCacheMac.mm: Removed.
44577         * history/mac/CachedPageMac.mm: Added.
44578         (WebCore::CachedPage::close):
44579         (WebCore::CachedPage::setDocumentView):
44580         (WebCore::CachedPage::documentView):
44582         * loader/DocumentLoader.cpp:
44583         (WebCore::DocumentLoader::DocumentLoader):
44584         (WebCore::DocumentLoader::loadFromCachedPage):
44585         (WebCore::DocumentLoader::setLoadingFromCachedPage):
44586         (WebCore::DocumentLoader::isLoadingFromCachedPage):
44587         * loader/DocumentLoader.h:
44589         * loader/FrameLoader.cpp:
44590         (WebCore::FrameLoader::provisionalLoadStarted):
44591         (WebCore::FrameLoader::commitProvisionalLoad):
44592         (WebCore::FrameLoader::transitionToCommitted):
44593         (WebCore::FrameLoader::open):
44594         (WebCore::FrameLoader::startLoading):
44595         (WebCore::FrameLoader::receivedMainResourceError):
44596         (WebCore::FrameLoader::opened):
44597         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
44598         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
44599         (WebCore::FrameLoader::cachePageToHistoryItem):
44600         (WebCore::FrameLoader::createHistoryItem):
44601         (WebCore::FrameLoader::purgePageCache):
44602         (WebCore::FrameLoader::invalidateCurrentItemCachedPage):
44603         (WebCore::FrameLoader::loadItem):
44604         (WebCore::FrameLoader::updateHistoryForStandardLoad):
44605         (WebCore::FrameLoader::updateHistoryForClientRedirect):
44606         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
44607         (WebCore::FrameLoader::updateHistoryForReload):
44608         (WebCore::FrameLoader::updateHistoryForInternalLoad):
44609         (WebCore::FrameLoader::updateHistoryForCommit):
44610         * loader/FrameLoader.h:
44611         * loader/FrameLoaderClient.h:
44613         * page/mac/WebCoreFrameBridge.h: Got rid of unused WebCorePageCacheStateKey
44614         * page/mac/WebCoreFrameBridge.mm: Ditto
44616         * platform/graphics/svg/SVGImage.cpp:
44617         * platform/graphics/svg/SVGImageEmptyClients.h: Update to reflect the new names
44618         (WebCore::SVGEmptyFrameLoaderClient::loadProvisionalItemFromCachedPage):
44619         (WebCore::SVGEmptyFrameLoaderClient::invalidateCurrentItemCachedPage):
44620         (WebCore::SVGEmptyFrameLoaderClient::loadedFromCachedPage):
44621         (WebCore::SVGEmptyFrameLoaderClient::clearLoadingFromCachedPage):
44622         (WebCore::SVGEmptyFrameLoaderClient::isLoadingFromCachedPage):
44623         (WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromCachedPage):
44624         (WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToCachedPage):
44626 2007-04-10  Antti Koivisto  <antti@apple.com>
44628         Reviewed by Hyatt.
44630         Fix <rdar://5057686> 
44631         Flex box layout example hangs in WebCore::RenderFlexibleBox::allowedChildFlex
44632         
44633         Forcibly distribute remaining pixels if the algorithm is not advancing.
44635         * rendering/RenderFlexibleBox.cpp:
44636         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
44637         (WebCore::RenderFlexibleBox::layoutVerticalBox):
44639 2007-04-11  Mark Rowe  <mrowe@apple.com>
44641         Build fix.
44643         * bridge/mac/WebCoreAXObject.mm:
44644         (-[WebCoreAXObject accessibilityDescription]):
44646 2007-04-10  Patti Hoa <patti@apple.com>
44648         Reviewed by Justin Garcia.
44650         <rdar://problem/5122276> Allow focused frame to fire off notification
44651         Improve accessibility support for Mail WebView embedded Notes.
44653         * bridge/mac/AXObjectCacheMac.mm:
44654         (WebCore::AXObjectCache::postNotification):
44655         The focused document with the selection change should fire the selection changed notification, not the top level document
44656         * bridge/mac/WebCoreAXObject.mm:
44657         (-[WebCoreAXObject accessibilityDescription]):
44658         Allow the name attribute of the html body to be used as the accessibility description
44660 2007-04-09  Geoffrey Garen  <ggaren@apple.com>
44662         Reviewed by Maciej Stachowiak.
44663         
44664         Support for fixing fast/forms/textarea-paste-newline.html.
44665         
44666         Changed clients to use new preference specifying whether a Page should 
44667         allow pasting through the DOM API, instead of a global flag.
44669         Removed old behavior of always allowing DOM paste in debug builds. In 
44670         light of the new preference-based API, that behavior makes no sense anymore. 
44671         Instead, developers who want to test paste inside Safari can set the 
44672         preference for themselves.
44674         * WebCore.exp:
44675         * editing/CommandByName.cpp: Removed crazy hack to keep an identically 
44676         named but invalid copy of the global "pate allowed" flag in this file.
44677         (WebCore::Frame::enabledPaste):
44678         * editing/JSEditor.cpp: Removed "always allow" behavior for debug builds.
44679         (WebCore::JSEditor::queryCommandSupported):
44680         * editing/JSEditor.h:
44681         * page/Settings.cpp:
44682         (WebCore::Settings::setDOMPasteAllowed):
44683         * page/Settings.h:
44684         (WebCore::Settings::isDOMPasteAllowed):
44685         * rendering/RenderTreeAsText.cpp:
44686         (WebCore::externalRepresentation): Removed crazy hack to allow DOM paste
44687         after this function has been called.
44689 2007-04-10  John Sullivan  <sullivan@apple.com>
44691         Reviewed by Tim Hatcher
44693         - fixed <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, 
44694           and shouldn't show markers for current sentence
44696         * editing/Editor.h:
44697         add markBadGrammar, now distinct from markMisspellings
44699         * editing/mac/EditorMac.mm:
44700         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
44701         call markMisspellings on one word, and markBadGrammar on entire sentence
44702         (WebCore::markMisspellingsOrBadGrammar):
44703         new static function, extracted from markMisspellings
44704         (WebCore::Editor::markMisspellings):
44705         now calls extracted function
44706         (WebCore::Editor::markBadGrammar):
44707         new method, calls extracted function
44709         * page/Frame.cpp:
44710         (WebCore::Frame::respondToChangedSelection):
44711         update grammar markers for entire new and old sentences
44713 2007-04-09  Anders Carlsson  <andersca@apple.com>
44715         Reviewed by John.
44717         * WebCore.exp:
44718         Add __ZNK7WebCore11FrameLoader10isCompleteEv.
44719         
44720 2007-04-09  Brady Eidson  <beidson@apple.com>
44722         Reviewed by Darin
44724         Fixes <rdar://4921797> and http://bugs.webkit.org/show_bug.cgi?id=12005
44726         The original regression was to claim that more loads were the result of a "user gesture" than really
44727         were.  A lot of the ways a frame load could be kicked off didn't properly set up this flag, and it 
44728         wasn't properly propagated and respected where it should've been.
44730         This patch cleans much of that up.  One loose end is the "treatAsUserGesture" flag which is a stop
44731         gap measure to keep "slow redirects" working to create a new history item.  In the future, we need
44732         to cleanup the meaning and use of "userGesture" and "lockHistory."  This includes integrating them 
44733         in to FrameLoadRequest and being very clear of what their meaning actually is at different stages of
44734         the Frame load process.
44736         * dom/Document.cpp:
44737         (WebCore::Document::processHttpEquiv): Pass only the delay for the redirect
44739         * html/HTMLAnchorElement.cpp:
44740         (WebCore::HTMLAnchorElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
44742         * ksvg2/svg/SVGAElement.cpp:
44743         (WebCore::SVGAElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
44745         * loader/FrameLoader.cpp:
44746         (WebCore::ScheduledRedirection::ScheduledRedirection): Figure "lockHistory" and "userGesture" from the 
44747           delay here, instead of at 3 other different sites that call this method
44748         (WebCore::FrameLoader::changeLocation): Set userGesture correctly
44749         (WebCore::FrameLoader::urlSelected): Propagate userGesture down
44750         (WebCore::FrameLoader::requestFrame): 
44751         (WebCore::FrameLoader::receivedFirstData):
44752         (WebCore::FrameLoader::scheduleRedirection): Pass only the delay here
44753         (WebCore::FrameLoader::redirectionTimerFired): Set userGesture correctly
44754         (WebCore::FrameLoader::load):
44755         (WebCore::FrameLoader::updateHistoryForInternalLoad): Insteading of asserting we aren't a redirect,
44756           handle the case where we *are* a redirect by updating the previous history item
44757         * loader/FrameLoader.h:
44759 2007-04-09  Anders Carlsson  <andersca@apple.com>
44761         Reviewed by Darin.
44763         <rdar://problem/5120801> 
44764         http://bugs.webkit.org/show_bug.cgi?id=13247
44765         Closing a page during slow cloning causes crash in setJSStatusBarText (13247)
44767         * bindings/js/kjs_window.cpp:
44768         (KJS::Window::put):
44769         Return early if m_frame is null. A closed window only has one property, "closed" 
44770         so no properties should be settable in that case.
44772 2007-04-09  Andrew Wellington  <proton@wiretapped.net>
44774         Reviewed by Justin Garcia.
44775         
44776         Fix for http://bugs.webkit.org/show_bug.cgi?id=12959
44777         "REGRESSION: Edit -> Copy not enabled on standalone images"
44779         * dom/Document.h: Add support for determining if a document is an image
44780         (WebCore::Document::isImageDocument):
44781         * editing/Editor.cpp:
44782         (WebCore::Editor::canCopy): Image documents are copyable
44783         (WebCore::Editor::copy): If copying an image document, call appropriate pasteboard methods
44784         * loader/ImageDocument.h:
44785         (WebCore::ImageDocument::isImageDocument): Override to return true for image documents
44786         * platform/Pasteboard.h: Add new writeImage function to pasteboard
44787         * platform/mac/PasteboardMac.mm:
44788         (WebCore::Pasteboard::writeImage): Add writeImage implementation that takes Node and URL
44789         * platform/qt/PasteboardQt.cpp:
44790         (WebCore::Pasteboard::writeImage): Stub for Qt implementation of pasteboard
44792 2007-04-08  Oliver Hunt  <oliver@apple.com>
44794         rs=Adam.
44796         Add ASSERT(selectedRange) to previous change
44798         * platform/mac/PasteboardMac.mm:
44799         (WebCore::Pasteboard::writeSelection):
44801 2007-04-08  Oliver Hunt  <oliver@apple.com>
44803         rs=Adam.
44805         Fix minor error when writing selection to pasteboard.
44806         This shouldn't have an effect as selectedRange should be the
44807         selected range from source frame, however this is safer.
44809         * platform/mac/PasteboardMac.mm:
44810         (WebCore::Pasteboard::writeSelection):
44812 2007-04-08  David Hyatt  <hyatt@apple.com>
44814         Fix mouseover/out failing layout tests.
44816         Reviewed by aroben
44818         * page/EventHandler.cpp:
44819         (WebCore::EventHandler::handleMouseMoveEvent):
44820         (WebCore::EventHandler::updateMouseEventTargetNode):
44821         (WebCore::EventHandler::dispatchMouseEvent):
44822         * page/EventHandler.h:
44824 2007-04-08  Oliver Hunt  <oliver@apple.com>
44826         Reviewed by Adam.
44828         Fix for <rdar://problem/5113621> REGRESSION: Dragging PDF as image does not give any feedback
44830         If we fail when attempting to create a drag image for a dragged
44831         image, we fall back to the appropriate icon.
44833         * page/DragController.cpp:
44834         (WebCore::DragController::doImageDrag):
44836 2007-04-08  Adam Roben  <aroben@apple.com>
44838         Reviewed by Oliver.
44840         Bestowed the gift of -webkit-dashboard-region upon all platforms, since
44841         there's nothing Mac-specific about it other than the name. This also
44842         allowed me to get rid of FrameViewMac.mm.
44844         Removed a lot of #if PLATFORM(MAC):
44846         * css/CSSComputedStyleDeclaration.cpp:
44847         (WebCore::):
44848         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44849         * css/CSSPrimitiveValue.cpp:
44850         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
44851         (WebCore::CSSPrimitiveValue::cleanup):
44852         (WebCore::CSSPrimitiveValue::cssText):
44853         * css/CSSPrimitiveValue.h:
44854         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
44855         (WebCore::CSSPrimitiveValue::):
44856         * css/cssparser.cpp:
44857         (WebCore::CSSParser::parseValue):
44858         (WebCore::CSSParser::parseDashboardRegions):
44859         * css/cssparser.h:
44860         * css/cssstyleselector.cpp:
44861         (WebCore::CSSStyleSelector::applyProperty):
44862         * dom/Document.cpp:
44863         (WebCore::Document::Document):
44864         * dom/Document.h:
44865         * page/Frame.cpp:
44866         (WebCore::Frame::paint):
44867         * page/Frame.h:
44868         * page/FrameView.cpp:
44869         (WebCore::FrameView::layout):
44870         (WebCore::FrameView::updateDashboardRegions): Moved from FrameViewMac.mm.
44871         * page/FrameView.h:
44872         * page/qt/FrameQt.cpp:
44873         (WebCore::Frame::dashboardRegionsChanged): Stubbed out.
44874         * platform/gdk/FrameGdk.cpp:
44875         (WebCore::Frame::dashboardRegionsChanged): Ditto.
44876         * rendering/RenderLayer.cpp:
44877         (WebCore::RenderLayer::scrollToOffset):
44878         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44879         (WebCore::RenderLayer::setHasVerticalScrollbar):
44880         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
44881         * rendering/RenderObject.cpp:
44882         (WebCore::RenderObject::setStyle):
44884         * WebCore.xcodeproj/project.pbxproj: Removed FrameViewMac.mm.
44885         * bridge/mac/FrameViewMac.mm: Removed.
44887 2007-04-08  Mark Rowe  <mrowe@apple.com>
44889         Qt build fix.
44891         * platform/qt/TemporaryLinkStubs.cpp:
44893 2007-04-06  Geoffrey Garen  <ggaren@apple.com>
44895         Reviewed by Beth Dakin.
44896         
44897         Fixed one more case of <rdar://problem/5112273> REGRESSION(TOT): 
44898         Reproducible crash loading an old version of amazon.com as a web archive
44900         * bindings/js/JSXMLHttpRequest.cpp:
44901         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
44903 2007-04-06  Oliver Hunt  <oliver@apple.com>
44905         Reviewed by Adam.
44907         Fix MouseEvent so it's possible to distinguish between
44908         a MouseMouseEvent with NoButton down, and a move with
44909         LeftButton down.  It would be nice if the DOM allowed 
44910         for NoButton to exist, but it doesn't so this is necessary.
44912         * dom/EventTargetNode.cpp:
44913         (WebCore::EventTargetNode::dispatchMouseEvent):
44914         * dom/MouseEvent.cpp:
44915         (WebCore::MouseEvent::MouseEvent):
44916         (WebCore::MouseEvent::initMouseEvent):
44917         * dom/MouseEvent.h:
44918         (WebCore::MouseEvent::noButton):
44920 2007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44922         Not reviewed - gdk build fix.
44924         * platform/gdk/MouseEventGdk.cpp:
44926 2007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44928         Reviewed by darin.
44930         Coverity fix. Coverity says:
44931         "Event var_deref_op: Variable "info_ptr" tracked as NULL was dereferenced."
44933         * platform/image-decoders/png/pngrutil.c:
44934         (png_handle_gAMA):
44936 2007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44938         Reviewed by darin.
44940         Coverity fix. Coverity says:
44941         "Event var_deref_model: Variable "(this)->clientptr" tracked as NULL was passed to a function that dereferences it."
44943         * platform/image-decoders/gif/GIFImageReader.cpp:
44944         (GIFImageReader::read):
44946 2007-04-06  David Hyatt  <hyatt@apple.com>
44948         Fix more of the layout test failures caused by fixing the slider layout test failure (sigh).  clear()
44949         needs to null out the capturingMouseEventsNode in the case where a mousedown or move while captured
44950         causes a navigation to another page.
44952         * page/EventHandler.cpp:
44953         (WebCore::EventHandler::clear):
44954         (WebCore::EventHandler::handleMouseReleaseEvent):
44956 2007-04-06  David Hyatt  <hyatt@apple.com>
44958         Fix failing slider layout test.  Don't clear the subframe capture unless we really were capturing on a
44959         subframe.
44961         Reviewed by adele, darin
44963         * page/EventHandler.cpp:
44964         (WebCore::EventHandler::handleMouseReleaseEvent):
44966 2007-04-06  Beth Dakin  <bdakin@apple.com>
44968         Reviewed by Geoff and Darin.
44970         Fix for <rdar://problem/4875433> WebView underlines are too thick 
44971         when scaled small
44973         When we have a small scale factor, we should follow the line-
44974         drawing code as if we were printing. Meaning, specifically, that we 
44975         should not round to device pixels and we should antialias.
44977         * platform/graphics/cg/GraphicsContextCG.cpp:
44978         (WebCore::GraphicsContext::drawLineForText):
44980 2007-04-06  Geoffrey Garen  <ggaren@apple.com>
44982         Reviewed by Beth Dakin.
44983         
44984         Fixed <rdar://problem/5112273> REGRESSION(TOT): Reproducible crash loading 
44985         an old version of amazon.com as a web archive
44986         
44987         The problem was JavaScript executing inside a frame with a NULL document.
44988         It's probably a bug that the document was NULL, but we don't want a minor
44989         bug to be a crasher, and we don't want the DOM to depend on the implementation
44990         details of the JS bindings, so I added NULL checks.
44992         * bindings/js/kjs_window.cpp: Call FrameLoader::completeURL instead of
44993         Document::completeURL, since FrameLoader::completeURL is safe against a
44994         NULL document.
44995         (KJS::Window::put):
44996         (KJS::WindowFunc::callAsFunction):
44997         (KJS::Location::put):
44998         (KJS::LocationFunc::callAsFunction):
45000 2007-04-06  David Hyatt  <hyatt@apple.com>
45002         Fix for bug 13274.  Rework mouse events so that subframe capturing works again.  Make sure
45003         everything just comes down through the top FrameView even when capturing is in effect.  Update
45004         scrollbar handling logic so that scrollbars receive events correctly while capturing is in
45005         effect.  Eliminate the notion of widget capture.  Fix mouse moves so that they only fire
45006         on the innermost hit frame.
45008         Reviewed by olliej
45010         * page/EventHandler.cpp:
45011         (WebCore::EventHandler::handleMouseDraggedEvent):
45012         (WebCore::subframeForTargetNode):
45013         (WebCore::EventHandler::handleMousePressEvent):
45014         (WebCore::EventHandler::handleMouseMoveEvent):
45015         (WebCore::EventHandler::handleMouseReleaseEvent):
45016         * page/EventHandler.h:
45017         * platform/PopupMenu.h:
45018         (WebCore::PopupMenu::scrollbarCapturingMouse):
45019         (WebCore::PopupMenu::setScrollbarCapturingMouse):
45020         * platform/ScrollBar.h:
45021         (WebCore::Scrollbar::handleMouseReleaseEvent):
45022         * platform/Widget.h:
45023         (WebCore::Widget::geometryChanged):
45025 2007-04-06  Justin Garcia  <justin.garcia@apple.com>
45027         Reviewed by john
45029         <rdar://problem/5115601> 
45030         REGRESSION: Crash deleting a selection that starts in an editable table cell
45031         
45032         The selection starts at the start of an editable 
45033         root that's embedded in a non-editable ToDo (table).  
45034         Removing the selection removes all editable 
45035         VisiblePositions from the root.  Then, the creation 
45036         of mergeDestination fails, and using it causes a crash.
45038         * editing/DeleteSelectionCommand.cpp:
45039         (WebCore::DeleteSelectionCommand::mergeParagraphs):
45040         Nil-check mergeDestination to avoid crashing and
45041         also insert a break in that case at m_upstreamStart, 
45042         so that we can create a valid mergeDestination and
45043         perform the merge.
45044         
45045         
45046 2007-04-06  Mitz Pettel  <mitz@webkit.org>
45048         Reviewed by Oliver.
45050         Eliminate PlatformMouseEvent::currentEvent.
45052         No test possible (no change to functionality).
45054         * page/EventHandler.cpp:
45055         (WebCore::EventHandler::handleDrag):
45056         * platform/PlatformMouseEvent.h:
45057         * platform/gdk/TemporaryLinkStubs.cpp:
45058         * platform/mac/PlatformMouseEventMac.mm:
45059         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
45060         * platform/qt/PlatformMouseEventQt.cpp:
45061         * platform/win/TemporaryLinkStubs.cpp:
45063 2007-04-05  Oliver Hunt  <oliver@apple.com>
45065         Reviewed by Maciej.
45067         Fix for rdar://problem/4849948 -- JSCanvasRenderingContext2D::drawImage
45068         crashes when given invalid arguments.
45070         JSCanvasRenderingContext2D frequently casts from JSValue* to JSObject*
45071         and then checks isObject *after* the cast.  JSObject::isObject is unsafe 
45072         if applied to a JSImmediate value (null, undefined, etc).  This patch 
45073         corrects the logic in a number of places by performing the isObject check
45074         before casting to JSObject.
45076         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
45077         (WebCore::JSCanvasRenderingContext2D::drawImage):
45078         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
45079         (WebCore::JSCanvasRenderingContext2D::createPattern):
45081 2007-04-05  Adele Peterson  <adele@apple.com>
45083         Reviewed by Oliver.
45085         Fix for <rdar://problem/4965597> REGRESSION: mouseup doesn't fire for slider (causes it to always default to max)
45087         Test: fast/forms/slider-mouse-events.html
45089         * page/EventHandler.cpp: (WebCore::EventHandler::dispatchMouseEvent):
45090         Since the actual target node of the event can't be a shadow node, set the target node to the capturing node before adjusting it.
45092 2007-04-05  Kevin McCullough  <kmccullough@apple.com>
45094         Reviewed by Darin.
45096         - Added reportLocalLoadFailed to FrameLoader to send an error to the console when
45097         calls to canLoad fail. 
45099         * loader/Cache.cpp:
45100         (WebCore::Cache::requestResource):
45101         * loader/FrameLoader.cpp:
45102         (WebCore::FrameLoader::loadSubframe):
45103         (WebCore::FrameLoader::loadPlugin):
45104         (WebCore::FrameLoader::load):
45105         (WebCore::FrameLoader::reportLocalLoadFailed):
45106         * loader/FrameLoader.h:
45107         * loader/SubresourceLoader.cpp:
45108         (WebCore::SubresourceLoader::create):
45110 2007-04-05  Adele Peterson  <adele@apple.com>
45112         Reviewed by Maciej.
45114         Add text-align: -webkit-auto for form controls.  Buttons already override this property to center their text.
45116         * css/html4.css:
45118 2007-04-05  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45120         Reviewed by rwlbuis.
45122         Coverity fix. Coverity says:
45123         "Event var_deref_model: Variable "page" tracked as NULL was passed to a function that dereferences it."
45125         * platform/Font.cpp:
45126         (WebCore::Font::glyphDataForCharacter):
45128 2007-04-05  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45130         Reviewed by darin.
45132         Coverity fix. Coverity says:
45133         "Event var_deref_model: Variable "unicode" tracked as NULL was passed to a 
45134         function that dereferences it."
45136         * platform/DeprecatedString.cpp:
45137         (WebCore::DeprecatedString::DeprecatedString):
45139 2007-04-05  Adele Peterson  <adele@apple.com>
45141         Reviewed by Hyatt.
45143         Fix for <rdar://problem/5113593> REGRESSION: Search fields in RSS pages don't show ibeam cursor
45145         * css/html4.css: Set the cursor values explicitly for input, textarea (to auto), & select (to default).
45147 2007-04-05  David Hyatt  <hyatt@apple.com>
45149         Fix for <rdar://problem/5078866> tables should only reset text-align
45150         in quirks mode.
45152         Reviewed by beth
45154         * css/html4.css:
45155         * css/quirks.css:
45157 2007-04-05  Adele Peterson  <adele@apple.com>
45159         Fixing typo that's crashing.
45161         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45162           Use evt instead of null variable k.
45164 2007-04-05  Adele Peterson  <adele@apple.com>
45166         Reviewed by Hyatt.
45168         Fix for <rdar://problem/5021500> Cursor should stay as pointer when slider is being dragged
45170         Don't set the selection ibeam cursor when there's a node that's capturing mouse events.
45172         * page/EventHandler.cpp:
45173         (WebCore::selectCursor):
45174         (WebCore::EventHandler::handleMouseMoveEvent):
45176 2007-04-05  Geoffrey Garen  <ggaren@apple.com>
45178         Reviewed by Beth Dakin.
45180         More clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT): 
45181         Reproducible crash loading an old version of amazon.com as a web archive
45182         
45183         Layout tests pass.
45184         
45185         Removed more superfluous document NULL checks. (Node::document() never 
45186         returns NULL, and it asserts as much.)
45187         
45188         Merged some duplicate editing code into a static inline function.
45189         
45190         * page/mac/WebCoreFrameBridge.mm:
45191         (updateRenderingForBindings): Removed superfluous static_cast.
45193 2007-04-05  Adele Peterson  <adele@apple.com>
45195         Reviewed by Darin.
45197         A little cleanup from my last checkin.  Always check if an Event is really a MouseEvent or a KeyboardEvent
45198         before casting it.
45200         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45201         * html/HTMLSelectElement.cpp:
45202         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
45203         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
45204         * html/HTMLTextFieldInnerElement.cpp:
45205         (WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
45206         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
45207         * ksvg2/svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
45208         * page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent):
45209         * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
45210         * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
45212 2007-04-05  Geoffrey Garen  <ggaren@apple.com>
45214         Reviewed by Beth Dakin.
45215         
45216         Some clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT): 
45217         Reproducible crash loading an old version of amazon.com as a web archive
45218         
45219         Removed superfluous document NULL checks. (Node::document() never returns
45220         NULL, and it asserts as much.)
45221         
45222         Removed duplicate implementation of displayString.
45223         
45224         Layout tests pass.
45226         * bindings/objc/DOMInternal.h:
45227         * bindings/objc/DOMInternal.mm:
45228         * html/HTMLGenericFormElement.cpp:
45229         (WebCore::HTMLGenericFormElement::supportsFocus):
45230         * html/HTMLPlugInElement.cpp:
45231         (WebCore::HTMLPlugInElement::createNPObject):
45232         * platform/ContextMenu.cpp:
45233         (WebCore::ContextMenu::checkOrEnableIfNeeded):
45234         * rendering/HitTestResult.cpp:
45235         (WebCore::displayString):
45236         * rendering/HitTestResult.h:
45237         * rendering/RenderLayer.cpp:
45238         (WebCore::RenderLayer::updateHoverActiveState):
45240 === Safari-5522.6 ===
45242 2007-04-05  Oliver Hunt  <oliver@apple.com>
45244         Reviewed by Adam.
45246         Fix rdar://problem/5030934 -- landscape PDFs embedded as an image are cut off
45247         also fixes scaling of pdf images
45249         PDFDocumentImage was not accounting for page rotation in a number of places
45251         * platform/graphics/cg/PDFDocumentImage.cpp:
45252         (WebCore::PDFDocumentImage::size):
45253           we need to account for rotation of the pdf image effecting our bounds
45254         (WebCore::PDFDocumentImage::draw):
45255           When compensating for flipped coords we need to use the correct rect for the 
45256           coordinate space.  We can't pass size() to CGContextDrawPDFDocument as it
45257           returns the rotated bounds now -- this is also save the old 
45258           FloatSize -> IntSize -> FloatSize conversions.
45259           
45260 2007-04-04  Alexey Proskuryakov  <ap@webkit.org>
45262         Reviewed by Darin.
45264         http://bugs.webkit.org/show_bug.cgi?id=13278
45265         REGRESSION: cannot change SELECT option
45267         Test: fast/forms/option-change-single-selected.html
45269         * html/HTMLSelectElement.cpp:
45270         (WebCore::HTMLSelectElement::setSelectedIndex): If multiple selection is not allowed, 
45271         be sure to deselect the previous option.
45273 2007-04-04  Adele Peterson  <adele@apple.com>
45275         Reviewed by Oliver.
45277         Fix for <rdar://5105009> Prepare for fix to send mousedown and mouseup (but not click) events when right-clicking
45279         * page/EventHandler.cpp: Don't ever send click events for right-clicks.
45280         (WebCore::EventHandler::handleMouseDoubleClickEvent):
45281         (WebCore::EventHandler::handleMouseReleaseEvent):
45282         
45283         Check that the mousedown and mouseup are not with the right button before performing default behavior.
45284         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45285         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
45286         * html/HTMLSelectElement.cpp:
45287         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
45288         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
45289         * html/HTMLTextFieldInnerElement.cpp:
45290         (WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
45291         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
45292         * ksvg2/svg/SVGAElement.cpp:(WebCore::SVGAElement::defaultEventHandler):
45293         * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
45294         * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
45296 2007-04-03  Justin Garcia  <justin.garcia@apple.com>
45298         Reviewed by darin
45299         
45300         <rdar://problem/5026848> Can cut/delete ToDo subunits
45301         
45302         We were removing non-editable content during a delete.
45304         * editing/DeleteSelectionCommand.cpp: 
45305         (WebCore::DeleteSelectionCommand::initializePositionData): 
45306         Set m_startRoot and m_endRoot.
45307         (WebCore::DeleteSelectionCommand::removeNode): If a node
45308         is not inside both the start and end roots, remove it only
45309         if it is in editable content.
45310         * editing/DeleteSelectionCommand.h: Added m_startRoot and 
45311         m_endRoot, the editable roots that contain the start and end
45312         of the selection, respectively.  We consult these every
45313         time we remove a node, and don't want to recompute them 
45314         on every call to removeNode().
45316 2007-04-03  David Hyatt  <hyatt@apple.com>
45318         Fix for <rdar://problem/5108896>, make sure the assert for setEncodedSize
45319         deals with the error case.
45321         Reviewed by andersca
45323         * loader/CachedResource.cpp:
45324         (WebCore::CachedResource::setEncodedSize):
45326 2007-04-03  Anders Carlsson  <andersca@apple.com>
45328         Reviewed by Dave Hyatt.
45330         * loader/ImageDocument.cpp:
45331         Don't call error() in stopParsing.
45333 2007-04-03  Justin Garcia  <justin.garcia@apple.com>
45335         Reviewed by darin
45336         
45337         <rdar://problem/5107422> 
45338         TOT REGRESSION: Delete key fails to delete text, and cursor disappears in Mail.app
45339         <rdar://problem/5107413> 
45340         TOT REGRESSION: Crash deleting text in email (infinite recursion in shouldInsertNode)
45342         * editing/CompositeEditCommand.cpp:
45343         (WebCore::CompositeEditCommand::moveParagraphs):
45344         Back out the call to shouldInsert until we
45345         add WebViewInsertActionMoved, because Mail returns
45346         NO from shouldInsert for WebViewInsertActionPasted
45347         to override our Paste operation.
45349 2007-04-03  Anders Carlsson  <andersca@apple.com>
45351         Reviewed by Mitz.
45353         Make window.innerWidth/innerHeight include the size of any present scrollbar to match Firefox.
45354         
45355         Make document.body.clientWidth/clientHeight return the width/height of the visible content when in
45356         quirks mode to match WinIE.
45357         
45358         * bindings/js/kjs_window.cpp:
45359         (KJS::Window::getValueProperty):
45360         Return the width and height of the scroll view, not the visible width and height.
45361         
45362         * dom/Element.cpp:
45363         (WebCore::Element::clientWidth):        
45364         (WebCore::Element::clientHeight):
45365         Return the visible size if the element is the body element and we're in quirks mode.
45367 2007-04-03  Adele Peterson  <adele@apple.com>
45369         Reviewed by Darin.
45371         Updated fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
45373         * platform/graphics/Color.cpp: Moved optimization for lightening black and darkening white into the Color class.
45374         (WebCore::Color::light):
45375         (WebCore::Color::dark):
45376         * rendering/RenderTextControl.cpp: (WebCore::disabledTextColor): Skip the difference calculation for black text, which will always be lightened.
45378 2007-04-03  Anders Carlsson  <andersca@apple.com>
45380         Reviewed by Tim.
45382         <rdar://problem/4649516> 
45383         Turn off slow script dialog or crank up time that makes it come up
45384         
45385         * bindings/js/kjs_binding.cpp:
45386         (KJS::ScriptInterpreter::ScriptInterpreter):
45387         Increase the timeout to 10 seconds to match Firefox.
45389 2007-04-03  Mitz Pettel  <mitz@webkit.org>
45391         Reviewed by Darin.
45393         - fix http://bugs.webkit.org/show_bug.cgi?id=13251
45394           editing/style/fontsize-1.html fails intermittently when run multiple times on Intel, generates incorrect DOM
45396         Covered by existing editing tests.
45398         * css/CSSPrimitiveValue.cpp:
45399         (WebCore::CSSPrimitiveValue::getFloatValue): Added ASSERTs that the requested conversion
45400         is from a scalar type to a scalar type. The intermittent failures in the test were
45401         the result of trying to convert an identifier type to a scalar type.
45402         * editing/ApplyStyleCommand.cpp:
45403         (WebCore::StyleChange::checkForLegacyHTMLStyleChange): Added a check that the
45404         font-size property value is an absolute length. If it is not (such as in the case
45405         of relative units or keywords like "x-large"), then no corresponding 'size' attribute
45406         will be generated for legacy HTML.
45408 2007-04-03  Mitz Pettel  <mitz@webkit.org>
45410         Reviewed by Darin.
45412         - fix http://bugs.webkit.org/show_bug.cgi?id=13218
45413           <rdar://problem/5095977>
45414           Reproducible crash after call to window.close()
45416         * manual-tests/stale-currentEvent.html: Added.
45417         * page/EventHandler.cpp:
45418         (WebCore::EventHandler::hoverTimerFired): Instead of faking a mouse event,
45419         just hit-test the last mouse event coordinates and update for hover state
45420         changes. This eliminates the use of currentEvent, which can be a non-mouse
45421         event or even a stale event.
45423 2007-04-02  Adele Peterson  <adele@apple.com>
45425         Reviewed by Maciej.
45427         Fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
45429         Hardcode disabled text colors for the most common cases- black and white.
45431         * rendering/RenderTextControl.cpp: (WebCore::disabledTextColor):
45433 2007-04-02  David Hyatt  <hyatt@apple.com>
45435         Fix for <rdar://problem/5105784>, assertion failure in cache.  Encoded sizes were being set to
45436         garbage by accident because of a mismatch between derived class and base class constructors.  This
45437         patch cleans all of this up and gets rid of expiration date as a concept separate from the response.
45439         Reviewed by anders
45441         * dom/Document.cpp:
45442         (WebCore::Document::processHttpEquiv):
45443         * html/HTMLImageLoader.cpp:
45444         (WebCore::HTMLImageLoader::updateFromElement):
45445         * loader/Cache.cpp:
45446         (WebCore::createResource):
45447         (WebCore::Cache::requestResource):
45448         * loader/Cache.h:
45449         * loader/CachedCSSStyleSheet.cpp:
45450         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
45451         * loader/CachedCSSStyleSheet.h:
45452         * loader/CachedImage.cpp:
45453         (WebCore::CachedImage::CachedImage):
45454         * loader/CachedImage.h:
45455         * loader/CachedResource.cpp:
45456         (WebCore::CachedResource::CachedResource):
45457         (WebCore::CachedResource::finish):
45458         * loader/CachedResource.h:
45459         * loader/CachedScript.cpp:
45460         (WebCore::CachedScript::CachedScript):
45461         * loader/CachedScript.h:
45462         * loader/CachedXBLDocument.cpp:
45463         (WebCore::CachedXBLDocument::CachedXBLDocument):
45464         * loader/CachedXBLDocument.h:
45465         * loader/CachedXSLStyleSheet.cpp:
45466         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
45467         * loader/CachedXSLStyleSheet.h:
45468         * loader/DocLoader.cpp:
45469         (WebCore::DocLoader::DocLoader):
45470         (WebCore::DocLoader::requestResource):
45471         * loader/DocLoader.h:
45473 2007-04-03  Antti Koivisto  <antti@apple.com>
45475         Reviewed by Hyatt.
45477         Render tree memory savings, part 3
45478         
45479         These changes shrink all RenderBlocks by additional 28 bytes. Together with parts 1 and 2
45480         RenderBlock goes from 172 bytes to 128 bytes, a saving of 26%.
45481         
45482         - Pack bitfields together in RenderFlow
45483         - Move top/bottom min/max margin values to a struct that is only allocated in case these
45484           variables have non default values. Usually this is <5% of all blocks. 
45485         - Move rarely used column variables to hash
45487         * rendering/RenderBlock.cpp:
45488         (WebCore::ColumnInfo::ColumnInfo):
45489         (WebCore::RenderBlock::RenderBlock):
45490         (WebCore::RenderBlock::~RenderBlock):
45491         (WebCore::RenderBlock::layoutBlock):
45492         (WebCore::RenderBlock::collapseMargins):
45493         (WebCore::RenderBlock::clearFloatsIfNeeded):
45494         (WebCore::RenderBlock::setCollapsedBottomMargin):
45495         (WebCore::RenderBlock::layoutBlockChildren):
45496         (WebCore::RenderBlock::paintColumns):
45497         (WebCore::RenderBlock::paintObject):
45498         (WebCore::RenderBlock::fillSelectionGaps):
45499         (WebCore::RenderBlock::lowestPosition):
45500         (WebCore::RenderBlock::rightmostPosition):
45501         (WebCore::RenderBlock::leftmostPosition):
45502         (WebCore::RenderBlock::nodeAtPoint):
45503         (WebCore::RenderBlock::hitTestColumns):
45504         (WebCore::RenderBlock::positionForCoordinates):
45505         (WebCore::RenderBlock::availableWidth):
45506         (WebCore::RenderBlock::calcColumnWidth):
45507         (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
45508         (WebCore::RenderBlock::desiredColumnWidth):
45509         (WebCore::RenderBlock::desiredColumnCount):
45510         (WebCore::RenderBlock::columnRects):
45511         (WebCore::RenderBlock::layoutColumns):
45512         (WebCore::RenderBlock::adjustPointToColumnContents):
45513         (WebCore::RenderBlock::adjustRectForColumns):
45514         (WebCore::RenderBlock::setMaxTopMargins):
45515         (WebCore::RenderBlock::setMaxBottomMargins):
45516         * rendering/RenderBlock.h:
45517         (WebCore::RenderBlock::maxTopMargin):
45518         (WebCore::RenderBlock::maxBottomMargin):
45519         (WebCore::RenderBlock::maxTopPosMargin):
45520         (WebCore::RenderBlock::maxTopNegMargin):
45521         (WebCore::RenderBlock::maxBottomPosMargin):
45522         (WebCore::RenderBlock::maxBottomNegMargin):
45523         (WebCore::RenderBlock::initMaxMarginValues):
45524         (WebCore::RenderBlock::MaxMargin::MaxMargin):
45525         (WebCore::RenderBlock::MaxMargin::topPosDefault):
45526         (WebCore::RenderBlock::MaxMargin::topNegDefault):
45527         (WebCore::RenderBlock::MaxMargin::bottomPosDefault):
45528         (WebCore::RenderBlock::MaxMargin::bottomNegDefault):
45529         * rendering/RenderFlexibleBox.cpp:
45530         (WebCore::RenderFlexibleBox::layoutBlock):
45531         * rendering/RenderFlow.h:
45532         (WebCore::RenderFlow::RenderFlow):
45533         (WebCore::RenderFlow::hasColumns):
45534         * rendering/RenderInline.cpp:
45535         (WebCore::RenderInline::RenderInline):
45536         * rendering/RenderInline.h:
45538 2007-04-03  Antti Koivisto  <antti@apple.com>
45540         Reviewed by Hyatt.
45542         Fix asserts, these may also be called for rel positioned elements
45544         * rendering/RenderBox.cpp:
45545         (WebCore::RenderBox::setStaticX):
45546         (WebCore::RenderBox::setStaticY):
45548 2007-04-02  David Hyatt  <hyatt@apple.com>
45550         Throw in an assert to try to track down a problem where an image is being set to a smaller encoded
45551         size.
45553         * loader/CachedResource.cpp:
45554         (WebCore::CachedResource::setEncodedSize):
45556 2007-04-02  Ada Chan  <adachan@apple.com>
45558         Reviewed by Adele.
45560         <rdar://5105331> Missing null check in Editor::execCommand
45561         Added null check.
45563         * editing/Editor.cpp:
45564         (WebCore::Editor::execCommand):
45566 2007-04-02  Justin Garcia  <justin.garcia@apple.com>
45568         Reviewed by darin
45570         <rdar://problem/5058163> 
45571         Hitting return inserts a new line between two To Dos, but caret is position after second ToDo
45573         * editing/InsertParagraphSeparatorCommand.cpp:
45574         (WebCore::InsertParagraphSeparatorCommand::doApply):
45575         Removed refPos, it was unused.
45576         Don't assume that upstream() moves to a different
45577         node.  This assumption caused the line break to
45578         be inserted *after* the caret and a bad position
45579         to be set (added a testcase).
45580         Use isStartOfParagraph instead of checking
45581         for the existence of a br because the line might 
45582         be broken by a newline character in text that 
45583         preserves newlines.  Paragraphs that are created 
45584         in other ways, like with blocks, are handled 
45585         above (added a testcase).
45587  2007-04-02  David Harrison  <harrison@apple.com>
45589         Reviewed by Darin.
45591         <rdar://problem/4906488> text attributes are not working for frame based web page
45593         Attribute handling now treats each WebArea as its own world, rather than sometimes
45594         referring back up to the top WebArea. e.g. getting/setting the selection now
45595         operates on the WebArea containing the WebCoreAXObject that is being messaged (self).
45596         The methods that sit above this and are able to go into arbitrary WebAreas
45597         are accessibilityFocusedUIElement and doAXTextMarkerForPosition, allowing VoiceOver
45598         to navigate between frames.
45599         
45600         * bridge/mac/WebCoreAXObject.mm:
45601         (-[WebCoreAXObject topRenderer]):
45602         (-[WebCoreAXObject frameView]):
45603         (-[WebCoreAXObject topFrameView]):
45604         Removed topDocument, renamed topView to topFrameView, added frameView.
45605         
45606         (-[WebCoreAXObject accessibilityAttributeValue:]):
45607         AXSelectedTextMarkerRange, AXStartTextMarker, and AXEndTextMarker now use
45608         self's WebArea, rather than the top WebArea.
45609         
45610         (-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
45611         Use self's WebArea, rather than the top WebArea.
45613         (-[WebCoreAXObject doAXTextMarkerForPosition:]):
45614         Use renamed methods for accessing top WebArea.
45615          
45616         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
45617         Use renamed methods for accessing self's WebArea.
45619         (AXAttributeStringSetColor):
45620         (AXAttributeStringSetNumber):
45621         (AXAttributeStringSetFont):
45622         (AXAttributeStringSetStyle):
45623         (AXAttributeStringSetElement):
45624         (-[WebCoreAXObject rendererForView:]):
45625         Clean up uses of nil and NULL.
45626         
45627         (-[WebCoreAXObject accessibilityFocusedUIElement]):
45628         Find the focused node on the whole page. If there is no focused node,
45629         return the WebArea for the focused document.
45630         
45631         (-[WebCoreAXObject doSetAXSelectedTextMarkerRange:]):
45632         Use self's WebArea, rather than the top WebArea.
45634 2007-04-02  Antti Koivisto  <antti@apple.com>
45636         Fix build. This one was not supposed to be checked in.
45638         * rendering/RenderFlexibleBox.cpp:
45639         (WebCore::RenderFlexibleBox::layoutBlock):
45641 2007-03-30  Antti Koivisto  <antti@apple.com>
45643         Reviewed by Hyatt.
45645         Render tree memory savings, part 2
45646         
45647         - Move staticX and staticY variables to RenderLayer since they are only
45648           applicable to positioned objects
45649         - Move very rarely used overrideSize variable to hash
45650         
45651         These changes shrink all box types by 12 bytes
45653         * rendering/RenderBox.cpp:
45654         (WebCore::RenderBox::RenderBox):
45655         (WebCore::RenderBox::destroy):
45656         (WebCore::RenderBox::overrideSize):
45657         (WebCore::RenderBox::setOverrideSize):
45658         (WebCore::RenderBox::overrideWidth):
45659         (WebCore::RenderBox::overrideHeight):
45660         (WebCore::RenderBox::position):
45661         (WebCore::RenderBox::calcWidth):
45662         (WebCore::RenderBox::calcHeight):
45663         (WebCore::RenderBox::staticX):
45664         (WebCore::RenderBox::staticY):
45665         (WebCore::RenderBox::setStaticX):
45666         (WebCore::RenderBox::setStaticY):
45667         (WebCore::RenderBox::calcAbsoluteHorizontal):
45668         (WebCore::RenderBox::calcAbsoluteVertical):
45669         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
45670         (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
45671         * rendering/RenderBox.h:
45672         * rendering/RenderLayer.cpp:
45673         (WebCore::RenderLayer::RenderLayer):
45674         * rendering/RenderLayer.h:
45675         (WebCore::RenderLayer::staticX):
45676         (WebCore::RenderLayer::staticY):
45677         (WebCore::RenderLayer::setStaticX):
45678         (WebCore::RenderLayer::setStaticY):
45679         * rendering/RenderObject.cpp:
45680         (WebCore::RenderObject::RenderObject):
45681         * rendering/RenderObject.h:
45682         (WebCore::):
45683         (WebCore::RenderObject::hasOverrideSize):
45684         (WebCore::RenderObject::setHasOverrideSize):
45685         * rendering/RenderWidget.cpp:
45686         (WebCore::RenderWidget::destroy):
45688 2007-03-31  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45690         Not reviewed - gdk build fix.
45692         * platform/gdk/TemporaryLinkStubs.cpp:
45693         (Font::selectionRectForComplexText):
45694         (Font::drawComplexText):
45696 2007-03-31  Alexey Proskuryakov  <ap@webkit.org>
45698         Reviewed by Darin.
45700         http://bugs.webkit.org/show_bug.cgi?id=12778
45701         REGRESSION: Nightly won't load Curl plugin for full page use
45703         * dom/DOMImplementation.cpp:
45704         (WebCore::DOMImplementation::createDocument): Re-order cases to give more priority to plugins.
45705         This also fixes Adobe SVG Viewer and any plugins that register XML MIME types.
45706         Added a case for XHTML to avoid enumerating plugins.
45708 2007-03-31  David Hyatt  <hyatt@apple.com>
45710         Fix for bug 13234, layout of selected justified text is broken.  Rework TextRuns to avoid having
45711         from/to members.  Let those be passed in only by the functions that need them (drawing and selection rect).
45713         Reviewed by mitz
45715         fast/text/justified-selection-at-edge.html
45717         * platform/Font.cpp:
45718         (WebCore::WidthIterator::WidthIterator):
45719         (WebCore::WidthIterator::advance):
45720         (WebCore::Font::canUseGlyphCache):
45721         (WebCore::Font::drawSimpleText):
45722         (WebCore::Font::drawText):
45723         (WebCore::Font::floatWidth):
45724         (WebCore::Font::floatWidthForSimpleText):
45725         (WebCore::Font::selectionRectForText):
45726         (WebCore::Font::selectionRectForSimpleText):
45727         (WebCore::Font::offsetForPositionForSimpleText):
45728         * platform/Font.h:
45729         (WebCore::TextRun::m_len):
45730         * platform/graphics/GraphicsContext.cpp:
45731         (WebCore::GraphicsContext::drawText):
45732         (WebCore::GraphicsContext::drawHighlightForText):
45733         * platform/graphics/GraphicsContext.h:
45734         * platform/mac/FontMac.mm:
45735         (WebCore::addDirectionalOverride):
45736         (WebCore::overrideLayoutOperation):
45737         (WebCore::ATSULayoutParameters::initialize):
45738         (WebCore::Font::selectionRectForComplexText):
45739         (WebCore::Font::drawComplexText):
45740         (WebCore::Font::floatWidthForComplexText):
45741         (WebCore::Font::offsetForPositionForComplexText):
45742         * platform/qt/FontQt.cpp:
45743         (WebCore::Font::drawComplexText):
45744         (WebCore::Font::floatWidthForComplexText):
45745         * platform/qt/TemporaryLinkStubs.cpp:
45746         (Font::selectionRectForComplexText):
45747         * rendering/EllipsisBox.cpp:
45748         (WebCore::EllipsisBox::paint):
45749         * rendering/InlineTextBox.cpp:
45750         (WebCore::InlineTextBox::selectionRect):
45751         (WebCore::InlineTextBox::paint):
45752         (WebCore::InlineTextBox::paintSelection):
45753         (WebCore::InlineTextBox::paintMarkedTextBackground):
45754         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
45755         (WebCore::InlineTextBox::paintTextMatchMarker):
45756         (WebCore::InlineTextBox::offsetForPosition):
45757         (WebCore::InlineTextBox::positionForOffset):
45758         * rendering/RenderListMarker.cpp:
45759         (WebCore::RenderListMarker::paint):
45760         (WebCore::RenderListMarker::calcMinMaxWidth):
45761         (WebCore::RenderListMarker::getRelativeMarkerRect):
45762         * rendering/RenderMenuList.cpp:
45763         (WebCore::RenderMenuList::updateOptionsWidth):
45764         * rendering/RenderText.cpp:
45765         (WebCore::RenderText::widthFromCache):
45766         (WebCore::RenderText::width):
45768 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45770         Reviewed by Darin.
45772         - fix http://bugs.webkit.org/show_bug.cgi?id=13243
45773               <rdar://problem/5103226>
45774           REGRESSION (r20506): Repro crash/assert when using scroll wheel on a list box taller than its contents
45776         * platform/ScrollBar.cpp:
45777         (WebCore::Scrollbar::setValue): Cleaned up a little.
45778         (WebCore::Scrollbar::scroll): Changed to apply the minimum and maximum constraints
45779         in the right order, and cleaned up a little.
45781 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45783         Reviewed by Darin.
45785         - fix http://bugs.webkit.org/show_bug.cgi?id=13242
45786           REGRESSION: Repro crash when specifying the content property for an image
45788         Test: fast/images/text-content-crash.html
45790         * html/HTMLImageElement.cpp:
45791         (WebCore::HTMLImageElement::parseMappedAttribute): Added a check that the
45792         renderer is an image.
45793         (WebCore::HTMLImageElement::attach): Ditto.
45795 2007-03-31  Mark Rowe  <mrowe@apple.com>
45797         Reviewed by Darin.
45799         A more correct fix for http://bugs.webkit.org/show_bug.cgi?id=13129
45800         Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup
45802         The previous attempt at a fix in r20343 attempted to conditionally expose the 'count'
45803         method.  It did not work which resulted in 'count' always being hidden.  This change
45804         disables -[WebScriptObject count] completely until it can be determined whether it is
45805         needed and how to support it without breaking third-party applications.
45807         * bindings/objc/WebScriptObject.mm:
45808         (-[WebScriptObject count]):
45809         * bindings/objc/WebScriptObjectPrivate.h:
45811 2007-03-31  Nicholas Shanks  <webkit@nickshanks.com>
45813         Reviewed by Adele.
45815         http://bugs.webkit.org/show_bug.cgi?id=13184
45816         HTMLImageElement longdesc should be complete resolved URL
45818         Test: fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
45820         * html/HTMLImageElement.cpp:
45821         (WebCore::HTMLImageElement::longDesc): Return absolute URL.
45822         Behaviour now matches Firefox and Opera.
45824 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45826         Reviewed by Hyatt.
45828         - fix http://bugs.webkit.org/show_bug.cgi?id=13209
45829           REGRESSION (r18756-18765): Incomplete list marker repaint when resizing list item
45831         Test: fast/repaint/list-marker-2.html
45833         A list marker can increase the horizontal overflow after layoutInlineChildren(),
45834         so made that function return only the vertical bounds of the repaint rect. As the
45835         horizontal bounds, made layoutBlock() just use the overflow bounds after layout.
45837         * rendering/RenderBlock.cpp:
45838         (WebCore::RenderBlock::layoutBlock):
45839         * rendering/RenderBlock.h:
45840         * rendering/bidi.cpp:
45841         (WebCore::RenderBlock::layoutInlineChildren):
45843 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45845         Reviewed by Hyatt.
45847         - http://bugs.webkit.org/show_bug.cgi?id=13178
45848           Helvetica zero-width space has non-zero width
45850         Test: fast/text/wide-zero-width-space.html
45852         * platform/FontData.cpp:
45853         (WebCore::FontData::FontData): Force the ZERO WIDTH SPACE glyph to have width
45854         0, unless the SPACE character maps to the same glyph.
45856 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45858         Reviewed by Darin.
45860         - fix http://bugs.webkit.org/show_bug.cgi?id=8016
45861           REPRO: Safari hangs loading 18 MB page (deeply nested DOM tree)
45863         Test: fast/tokenizer/lessthan-terminates-tags-and-attrs.html
45865         * html/HTMLTokenizer.cpp:
45866         (WebCore::HTMLTokenizer::parseTag): Made "<" terminate tag and attribute
45867         names. This matches Firefox.
45869 2007-03-31  Alexey Proskuryakov  <ap@webkit.org>
45871         Debug build fix.
45873         * xml/XPathValue.cpp:
45874         (WebCore::XPath::): Define Value::adopt.
45876 2007-03-30  Alexey Proskuryakov  <ap@webkit.org>
45878         Reviewed by Darin.
45880         http://bugs.webkit.org/show_bug.cgi?id=13021
45881         XPath can be very slow
45883         This patch finally makes us faster than Firefox 2.0 on this test case.
45885         * xml/XPathFunctions.cpp:
45886         (WebCore::XPath::FunConcat::evaluate): Use a Vector buffer for faster appending.
45887         (WebCore::XPath::FunId::evaluate): Move the result NodeSet into Value instead of copying it.
45888         (WebCore::XPath::FunLocalName::evaluate): Cosmetic changes.
45889         (WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
45890         (WebCore::XPath::FunName::evaluate): Ditto.
45891         (WebCore::XPath::FunNormalizeSpace::evaluate): Ditto.
45893         * xml/XPathValue.cpp:
45894         (WebCore::XPath::Value::toNodeSet):
45895         (WebCore::XPath::Value::modifiableNodeSet):
45896         (WebCore::XPath::Value::toBoolean):
45897         (WebCore::XPath::Value::toNumber):
45898         (WebCore::XPath::Value::toString):
45899         * xml/XPathValue.h:
45900         (WebCore::XPath::ValueData::ValueData):
45901         (WebCore::XPath::Value::Value):
45902         Made Value copying faster by putting large data members into a separate refcounted ValueData class.
45903         Added provisions for moving a NodeSet in and out of Value without copying.
45904         Made construction safer by moving bool version to a template constructor.
45905         Removed an (almost) unused default constructor.
45907         * xml/XPathPredicate.h: Store a Value for literal string and number expressions to avoid 
45908         constructing one each time.
45910         * xml/XPathPath.cpp:
45911         (WebCore::XPath::Filter::evaluate):
45912         (WebCore::XPath::LocationPath::evaluate):
45913         (WebCore::XPath::Path::evaluate):
45914         * xml/XPathPath.h:
45915         * xml/XPathPredicate.cpp:
45916         (WebCore::XPath::NumericOp::evaluate):
45917         (WebCore::XPath::Union::evaluate):
45918         * xml/XPathResult.cpp:
45919         (WebCore::XPathResult::snapshotItem):
45920         * xml/XPathStep.cpp:
45921         (WebCore::XPath::Step::evaluate):
45922         (WebCore::XPath::Step::nodesInAxis):
45923         * xml/XPathStep.h:
45924         Got rid of unnecessary NodeSet copying in many cases.
45926 2007-03-30  Justin Garcia  <justin.garcia@apple.com>
45928         Reviewed by john
45930         <rdar://problem/5076323> Only one To Do can be created by a selection in a message
45932         When Mail's ToDoify operation called moveToEndOfDocument: 
45933         with a selection that started just before a ToDo, we'd 
45934         move them to the end of the document, not to the end
45935         of the editable root, because we incorrectly checked
45936         for the editability of positions before ToDos.  Then Mail
45937         would refuse to create a ToDo because the selection was 
45938         outside of the region where they allowed editing.
45940         * editing/SelectionController.cpp:
45941         (WebCore::SelectionController::modifyExtendingRightForward):
45942         Check the position for editability, not the position's node,
45943         since there are editable positions of the form [node, offset]
45944         where node is contenteditable=false.
45945         Re-use pos.  Nothing that happens after it's created can invalidate
45946         it or the position and affinity used to create it.
45947         (WebCore::SelectionController::modifyMovingRightForward): Ditto.
45948         (WebCore::SelectionController::modifyExtendingLeftBackward): Ditto.
45949         (WebCore::SelectionController::modifyMovingLeftBackward): Ditto.
45950         * rendering/RenderBlock.cpp:
45951         (WebCore::RenderBlock::paintCaret): Ditto.
45953 2007-03-30  Adele Peterson  <adele@apple.com>
45955         Reviewed by Darin.
45957         Added DeleteWordBackward and DeleteWordForward to execCommand.
45959         * editing/Editor.cpp:
45960         (WebCore::execDeleteWordBackward):
45961         (WebCore::execDeleteWordForward):
45962         (WebCore::CommandEntry::):
45964 2007-03-30  Simon Hausmann  <hausmann@kde.org>
45966         Reviewed by Zack
45968         * WebCore.pro: Fix release Qt builds.
45970 2007-03-30  Antti Koivisto  <antti@apple.com>
45972         Reviewed by bdash.
45974         Spotted an int that should be float in previous patch.
45976         * platform/Font.cpp:
45977         (WebCore::WidthIterator::advance):
45979 2007-03-30  Antti Koivisto  <antti@apple.com>
45981         Reviewed by Hyatt.
45983         Render tree memory savings, part 1
45984         
45985         - Eliminate caching of monospace char width from RenderText. This optimization is not needed
45986           anymore since Font already caches space width (RenderText -4 bytes)
45987         - Eliminate caching of tab width from RenderBlock. Similary this optimization has become
45988           obsolete (RenderBlock -4 bytes)
45990         * platform/Font.cpp:
45991         (WebCore::WidthIterator::advance):
45992         (WebCore::Font::spaceWidth):
45993         * platform/Font.h:
45994         (WebCore::Font::tabWidth):
45995         * platform/TextStyle.h:
45996         (WebCore::TextStyle::TextStyle):
45997         (WebCore::TextStyle::allowTabs):
45998         * rendering/InlineTextBox.cpp:
45999         (WebCore::InlineTextBox::selectionRect):
46000         (WebCore::InlineTextBox::paint):
46001         (WebCore::InlineTextBox::paintSelection):
46002         (WebCore::InlineTextBox::paintMarkedTextBackground):
46003         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
46004         (WebCore::InlineTextBox::paintTextMatchMarker):
46005         (WebCore::InlineTextBox::offsetForPosition):
46006         (WebCore::InlineTextBox::positionForOffset):
46007         * rendering/RenderBlock.cpp:
46008         (WebCore:::RenderFlow):
46009         (WebCore::RenderBlock::setStyle):
46010         * rendering/RenderBlock.h:
46011         * rendering/RenderObject.cpp:
46012         * rendering/RenderObject.h:
46013         * rendering/RenderText.cpp:
46014         (WebCore::RenderText::RenderText):
46015         (WebCore::RenderText::setStyle):
46016         (WebCore::RenderText::widthFromCache):
46017         (WebCore::RenderText::trimmedMinMaxWidth):
46018         (WebCore::RenderText::calcMinMaxWidthInternal):
46019         (WebCore::RenderText::setTextInternal):
46020         (WebCore::RenderText::width):
46021         * rendering/RenderText.h:
46022         (WebCore::RenderText::allowTabs):
46023         * rendering/bidi.cpp:
46025 2007-03-30  David Hyatt  <hyatt@apple.com>
46027         Fix (take 2) for bug 4334, flickering when floating elements gain/lose transparency.
46029         Reviewed by mitz
46031         * rendering/RenderBlock.cpp:
46032         * rendering/RenderBlock.h:
46033         * rendering/RenderBox.cpp:
46034         (WebCore::RenderBox::setStyle):
46036 2007-03-29  Mitz Pettel  <mitz@webkit.org>
46038         Reviewed by Darin.
46040         - fix http://bugs.webkit.org/show_bug.cgi?id=13166
46041           REGRESSION (2005-10-16 - 2005-10-19): Ampersands showing up in the last column of the Gmail contacts table
46043         Test: fast/tokenizer/write-partial-entity.html
46045         * html/HTMLTokenizer.cpp:
46046         (WebCore::HTMLTokenizer::parseTag): Reordered to avoid resetting the buffer position
46047         after script execution which can write to the buffer.
46049 2007-03-29  Justin Garcia  <justin.garcia@apple.com>
46051         Reviewed by john
46053         <rdar://problem/5099303> Deleting after a ToDo puts the caret in the wrong position
46054         
46055         We were failing to create the correct selection 
46056         for DeleteSelectionCommand because the selection extension 
46057         operations don't skip over non-editable content for editable 
46058         selections.
46060         * editing/SelectionController.cpp:
46061         (WebCore::SelectionController::modifyExtendingRightForward):
46062         When extending an editable selection, don't extend into
46063         non-editable content.
46064         (WebCore::SelectionController::modifyExtendingLeftBackward):
46065         Ditto.
46067 2007-03-29  Patti Hoa  <patti@apple.com>
46069         Reviewed by harrison.
46071         <rdar://problem/4918397> Exception raise inspecting note contents in the background
46072         * WebCore.xcodeproj/project.pbxproj:
46073         * bridge/mac/WebCoreAXObject.mm:
46074         (-[WebCoreAXObject subrole]):
46075         (-[WebCoreAXObject title]):
46076         Check that attachment supports the attribute before requesting it.
46078 2007-03-29  Justin Garcia  <justin.garcia@apple.com>
46080         Reviewed by john
46082         <rdar://problem/5032066> Delete should work between ToDos
46083         
46084         Stop selecting the table when the user attempts to delete
46085         the line break just after it, instead, extend the selection
46086         into the last table cell.
46087         Let deletion merge content into table cells (as long as 
46088         its not from another table cell).  
46089         Start calling shouldInsertNode:replacingDOMRange:givenAction: 
46090         when moving content with moveParagraphs, so that Mail can 
46091         modify content before it is moved into a ToDo during a delete.
46093         * editing/CompositeEditCommand.cpp:
46094         (WebCore::CompositeEditCommand::moveParagraphs): Ask the
46095         delegate before performing the move.  This will let Mail
46096         prevent styles from entering a ToDo.
46097         Added a FIXME about adding a new WebViewInsertAction
46098         * editing/DeleteSelectionCommand.cpp:
46099         (WebCore::DeleteSelectionCommand::initializePositionData):
46100         Allow merging into table cells from content not in a table.
46101         * editing/SelectionController.cpp:
46102         (WebCore::SelectionController::modifyExtendingRightForward):
46103         Don't select the table when extending by character/word from
46104         just before it.  This code was here to make it easier to select
46105         tables in order to delete them, but the deletion UI makes it 
46106         largely unnecessary.
46107         (WebCore::SelectionController::modifyExtendingLeftBackward):
46108         Ditto.
46109         * editing/TypingCommand.cpp:
46110         (WebCore::isFirstPositionAfterTable): Added.
46111         (WebCore::isLastPositionBeforeTable): Ditto.
46112         (WebCore::TypingCommand::deleteKeyPressed): When pressing
46113         the delete key with a caret at the beginning of a paragraph
46114         just after a table, move the paragraph into the last table
46115         cell.
46116         Do not do this if it would mean moving a block table.
46117         Removed some old irrelevant comments.
46118         * editing/htmlediting.cpp: Removed unused functions.
46119         * editing/htmlediting.h:
46121 2007-03-29  Adam Treat  <adam@staikos.net>
46123         Reviewed and committed by George Staikos.
46125         Remove redundant line.
46127         * platform/qt/FontDataQt.cpp:
46128         (WebCore::FontData::platformInit):
46130 2007-03-29  Adam Treat  <adam@staikos.net>
46132         Reviewed by David Hyatt, committed by George Staikos.
46134         Test: fast/text/justified-selection.html
46136         Take into account the entire run length to get a proper selection.
46138         * platform/Font.cpp:
46139         (WebCore::WidthIterator::WidthIterator):
46141 2007-03-29  David Hyatt  <hyatt@apple.com>
46143         Fix for <rdar://problem/4545060>, technorati and arstechnica fail because of getComputedStyle not
46144         reporting display:none properly when it is set.  This is bugzilla bug 13103.
46146         Reviewed by mitz
46148         * css/CSSComputedStyleDeclaration.cpp:
46149         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
46151 2007-03-28  Oliver Hunt  <oliver@apple.com>
46153         Reviewed by Hyatt.
46155         Rename DocLoader::setPasteInProgress, etc to more generic 
46156         setAllowStaleResources, etc
46158         * editing/Editor.cpp:
46159         (WebCore::Editor::paste):
46160         * loader/DocLoader.cpp:
46161         (WebCore::DocLoader::DocLoader):
46162         (WebCore::DocLoader::checkForReload):
46163         * loader/DocLoader.h:
46164         (WebCore::DocLoader::setAllowStaleResources):
46165         * page/DragController.cpp:
46166         (WebCore::DragController::concludeDrag):
46168 2007-03-28  Oliver Hunt  <oliver@apple.com>
46170         Reviewed by Anders and Steve.
46172         Add a flag to DocLoader to prevent it from reloading 
46173         when performing a paste or drop operation.
46174         
46175         Remove m_cachePolicy from CachedResource as it is never used
46176         
46177         Fixes rdar://problem/5044366 : REGRESSION: Repro ASSERT failures 
46178         dragging image into GMail message in _web_writeImage and 
46179         documentFragmentFromDragData
46181         * editing/Editor.cpp:
46182         (WebCore::Editor::paste):
46183           prevent the docloader from reloading resources on paste
46184         * html/HTMLImageLoader.cpp:
46185         (WebCore::HTMLImageLoader::updateFromElement):
46186         * loader/Cache.cpp:
46187         (WebCore::createResource):
46188         * loader/CachedCSSStyleSheet.cpp:
46189         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
46190         * loader/CachedCSSStyleSheet.h:
46191         * loader/CachedImage.cpp:
46192         (WebCore::CachedImage::CachedImage):
46193         * loader/CachedImage.h:
46194         * loader/CachedResource.cpp:
46195         (WebCore::CachedResource::CachedResource):
46196         * loader/CachedResource.h:
46197         * loader/CachedScript.cpp:
46198         (WebCore::CachedScript::CachedScript):
46199         * loader/CachedScript.h:
46200         * loader/CachedXBLDocument.cpp:
46201         (WebCore::CachedXBLDocument::CachedXBLDocument):
46202         * loader/CachedXBLDocument.h:
46203         * loader/CachedXSLStyleSheet.cpp:
46204         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
46205         * loader/CachedXSLStyleSheet.h:
46206         * loader/DocLoader.cpp:
46207         (WebCore::DocLoader::DocLoader):
46208            Tidy up constructor initialise new field
46209         (WebCore::DocLoader::checkForReload):
46210            Prevent reload when pasting
46211         * loader/DocLoader.h:
46212         (WebCore::DocLoader::setPasteInProgress):
46213           new field and setter
46214         * page/DragController.cpp:
46215         (WebCore::DragController::concludeDrag):
46216           prevent the docloader from reloading resources on drop
46218 2007-03-27  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
46220         Not reviewed - fix typo in gdk build.
46222         * platform/gdk/ScrollViewGdk.cpp:
46223         (WebCore::ScrollView::contentsToWindow):
46225 2007-03-28  Maciej Stachowiak  <mjs@apple.com>
46226         
46227         Reviewed by Darin.
46228         
46229         - fixed <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
46230                 
46231         Handle scrolling external scrollviews around the webview during
46232         autoscroll or when scrolling into view.
46233         
46234         This should also restore performance on BenchJS test 6 lost due to Tim's partial fix.
46236         * page/FrameView.cpp:
46237         (WebCore::FrameView::scrollRectIntoViewRecursively):
46238         * page/FrameView.h:
46239         * platform/ScrollView.h:
46240         * platform/gdk/ScrollViewGdk.cpp:
46241         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46242         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46243         * platform/mac/ScrollViewMac.mm:
46244         (WebCore::ScrollView::visibleContentRect):
46245         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46246         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46247         (WebCore::ScrollView::updateContents):
46248         * platform/qt/ScrollViewQt.cpp:
46249         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46250         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46251         * platform/win/ScrollViewWin.cpp:
46252         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46253         * platform/win/TemporaryLinkStubs.cpp:
46254         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46255         * rendering/RenderLayer.cpp:
46256         (WebCore::RenderLayer::scrollRectToVisible):
46257        
46258 2007-03-28  Jungshik Shin  <jungshik.shin@gmail.com>
46260         Reviewed  and landed by Darin
46262         Get rid of some misuses of |islower| and |tolower| for non-ASCII characters.
46263         http://bugs.webkit.org/show_bug.cgi?id=13138
46265         * platform/StringImpl.cpp:
46266         (WebCore::StringImpl::isLower):
46267         (WebCore::StringImpl::lower):
46268         (WebCore::StringImpl::equalIgnoringCase):
46270 2007-03-28  Antti Koivisto  <antti@apple.com>
46272         Reviewed by Hyatt.
46274         Fix <rdar://problem/5092653>
46275         REGRESSION: Image decoding making scrolling slow
46276         
46277         If decoder gave back a null frame (which I think happens regularly if you don't have full frame 
46278         data yet for image that does not decode incrementally) m_decodedSize was incremented anyway. This
46279         led to massive growth in calculated image size and eventually made cache prune constantly. 
46280         
46281         No test, I don't know how to make one for this.
46283         * platform/graphics/BitmapImage.cpp:
46284         (WebCore::BitmapImage::cacheFrame):
46286 2007-03-28  Adele Peterson  <adele@apple.com>
46288         Reviewed by Kevin M.
46290         WebCore part of fix for <rdar://problem/5095515> VitalSource Bookshelf should not pass return statements into stringByEvaluatingJavaScriptFromString
46292         * page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
46293         Convert return value to a string.  This matches the behavior in Safari 2.0.
46295 2007-03-28  Alexey Proskuryakov  <ap@webkit.org>
46297         Reviewed by Darin.
46299         http://bugs.webkit.org/show_bug.cgi?id=13190
46300         XPath incorrectly handles namespaces on attributes
46302         * xml/XPathStep.cpp:
46303         (WebCore::XPath::Step::nodesInAxis): Added a special case for faster attribute lookup; gives a slight but 
46304         measurable performance improvement for bug 13021.
46305         (WebCore::XPath::Step::nodeMatches): Fixed NameTest for attribute nodes.
46307         * xml/XPathStep.h:
46308         (WebCore::XPath::Step::NodeTest::NodeTest):
46309         (WebCore::XPath::Step::NodeTest::namespaceURI):
46310         (WebCore::XPath::Step::nodeTest):
46311         (WebCore::XPath::Step::setNodeTest):
46312         Move m_namespaceURI to NodeTest, where it belongs. Removed unused m_nodeTestData (oops!).
46314         * xml/XPathGrammar.y:
46315         * xml/XPathPath.cpp:
46316         (WebCore::XPath::LocationPath::optimizeStepPair):
46317         Accounted for the above change.
46319 2007-03-28  Oliver Hunt  <oliver@apple.com>
46321         rs=Hyatt.
46323         Rollout local changes :-/
46325         * loader/Cache.cpp:
46326         (WebCore::Cache::pruneAllResources):
46327         (WebCore::Cache::remove):
46329 2007-03-28  Oliver Hunt  <oliver@apple.com>
46331         Reviewed by Hyatt.
46333         Roll out r20511 due to incredible badness
46335         * loader/Cache.cpp:
46336         (WebCore::Cache::pruneAllResources):
46337         (WebCore::Cache::remove):
46339 2007-03-27  Oliver Hunt  <oliver@apple.com>
46341         Reviewed by Adam.
46343         Don't enforce text-selection drag delay when we are
46344         going to drag an image anyway.
46346         Fixes rdar://problem/4668935
46348         * page/EventHandler.cpp:
46349         (WebCore::EventHandler::handleDrag):
46351 2007-03-27  Justin Garcia  <justin.garcia@apple.com>
46353         Build fix
46354         
46355         * editing/markup.cpp:
46356         (WebCore::startMarkup):
46358 2007-03-27  Justin Garcia  <justin.garcia@apple.com>
46360         Reviewed by darin
46361         
46362         <rdar://problem/5091898> REGRESSION: GMail Editor: A line of underlined text copied with Select All pastes with wrong font family
46363         
46364         createMarkup skipped elements if they were blocks
46365         when called from moveParagraphs (because that function 
46366         must receive only inline content).  This patch adds 
46367         code to inline these blocks instead of skipping them 
46368         so that we don't lose any of the style that they 
46369         contribute to the copied markup.
46371         * editing/markup.cpp:
46372         (WebCore::startMarkup): Add an inlineBlocks option.
46373         Make sure to overwrite display:block coming from
46374         a style sheet or the inline style declaration.
46375         (WebCore::createMarkup): Don't refuse to include a 
46376         specialCommonAncestor that's a block if we were asked 
46377         to include only inline content, since we can now inline 
46378         block elements in startMarkup.
46380 2007-03-27  Adele Peterson  <adele@apple.com>
46382         Reviewed by Hyatt.
46384         Fix for <rdar://problem/5026141> REGRESSION: Aperture Viewer Flashes when switching from Index Page to Detail page in Web Gallery
46386         This disables the paint that occurs after WebCore finishes loading the document.  We should reenable this when we
46387         move the dispatchDidFinishLoad delegate callback to happen around the same time as the JS onload call.  See <rdar://problem/5092361>.
46389         * dom/Document.cpp: (WebCore::Document::implicitClose):
46391 2007-03-26  Justin Garcia  <justin.garcia@apple.com>
46393         Reviewed by darin
46394         
46395         <rdar://problem/5065910> REGRESSION: In Mail and GMail, Can't apply color to pasted line of text
46396         <rdar://problem/5084241> After deleting a paragraph of colored text, can't change text color
46397         <rdar://problem/5065605> REGRESSION: Text copied with Select All + Copy loses color on Paste
46398         <rdar://problem/4916887> GMAIL: Can't apply color to text once it becomes indented
46400         * css/CSSComputedStyleDeclaration.cpp:
46401         (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
46402         If a node's text fill color is invalid, then its children use 
46403         their font-color as their text fill color (they don't inherit 
46404         it).  Likewise for stroke color.
46406 2007-03-27  Anders Carlsson  <acarlsson@apple.com>
46408         * platform/ScrollBar.h:
46409         Use wtf/MathExtras.h instead of math.h
46411 2007-03-27  Zack Rusin  <zrusin@trolltech.com>
46413         Fix the compile - when using math.h functions
46414         actually include the header with them.
46416         * platform/ScrollBar.h:
46418 2007-03-27  Oliver Hunt  <oliver@apple.com>
46420         Reviewed by Maciej.
46422         The WebArchiver needs all the subresources of a document to be accessible
46423         through the DocLoader, so we can't remove a CachedResource simultaneously
46424         from the global Cache and all DocLoaders, just because it needs to be 
46425         reloaded in one.
46427         Fixes rdar://problem/5044366
46429         * loader/Cache.cpp:
46430         (WebCore::Cache::remove):
46431            Don't evict the resource from all DocLoaders
46432         * manual-tests/test-iframes-loading-the-same-resource.html: Added.
46433            Alas it wasn't possible to make a nice layout test, even this manual test
46434            is not entirely deterministic
46436 2007-03-27  Mark Rowe  <mrowe@apple.com>
46438         Build fix.
46440         * platform/GlyphBuffer.h:
46441         (WebCore::GlyphBuffer::clear):
46443 2007-03-27  Dave Hyatt  <hyatt@apple.com>
46445         Add support for glyph offsets to the GlyphBuffer.
46446        
46447         Reviewed by olliej
46449         * platform/Font.cpp:
46450         (WebCore::Font::drawGlyphBuffer):
46451         * platform/GlyphBuffer.h:
46452         (WebCore::GlyphBuffer::clear):
46453         (WebCore::GlyphBuffer::swap):
46454         (WebCore::GlyphBuffer::offsetAt):
46455         (WebCore::GlyphBuffer::add):
46457 2007-03-27  Antti Koivisto  <antti@apple.com>
46459         Keep buildbot happy.
46461         * platform/mac/PlatformScrollBarMac.mm:
46462         (WebCore::PlatformScrollbar::scrollbarHit):
46464 2007-03-26  Antti Koivisto  <antti@apple.com>
46466         Reviewed by Darin.
46467         
46468         On Mac, support fine grained wheel events generated by trackpad and Mighty Mouse.
46469         http://bugs.webkit.org/show_bug.cgi?id=13134
46470         <rdar://problem/5076249?
46472         * WebCore.exp:
46473             Export _wkGetWheelEventDeltas
46474         * page/EventHandler.cpp:
46475         (WebCore::EventHandler::handleWheelEvent):
46476             Remove (0, 0) scroll event hack, it is not needed anymore.
46477             Do per-pixel scrolling for fine grained events.
46478         * platform/PlatformWheelEvent.h:
46479         (WebCore::PlatformWheelEvent::isContinuous):
46480             Add new m_isContinuous boolean to indicate fine grained wheel events.
46481         * platform/ScrollBar.cpp:
46482         (WebCore::Scrollbar::Scrollbar):
46483         (WebCore::Scrollbar::setValue):
46484         (WebCore::Scrollbar::setSteps):
46485         (WebCore::Scrollbar::scroll):
46486         * platform/ScrollBar.h:
46487         (WebCore::Scrollbar::value):
46488             Use float to represent current position to support finer grained scrolling.
46489             Add ScrollByPixel, remove ScrollByWheel (which was same as ScrollByLine anyway)
46490         * platform/ScrollTypes.h:
46491         (WebCore::):
46492         * platform/gdk/WheelEventGdk.cpp:
46493         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46494             Initalize m_isContinuous
46495         * platform/mac/WebCoreSystemInterface.h:
46496         * platform/mac/WebCoreSystemInterface.mm:
46497             Add wkGetWheelEventDeltas for getting fine grained wheel events
46498         * platform/mac/WheelEventMac.mm:
46499         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46500             Get the wheel deltas using new wkGetWheelEventDeltas interface
46501         * platform/qt/WheelEventQt.cpp:
46502         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46503             Initalize m_isContinuous
46504         * rendering/RenderListBox.cpp:
46505         (WebCore::RenderListBox::calcHeight):
46506             Pass item height to scrollbar
46508 2007-03-26  Geoffrey Garen  <ggaren@apple.com>
46510         Reviewed by Darin Adler.
46512         Fixed <rdar://problem/5088234> REGRESSION: Crash occurs at WebCore::Node::
46513         createRendererIfNeeded() when changing map views with MS Virtual Earth 
46514         (http://www.ziprealty.com/)
46515         
46516         The cause of the crash was the insertion of a <script> element whose
46517         script removed it from the document. The <script> element would then be 
46518         garbage when the insertion routine went on to attach() it.
46519         
46520         The solution here is to check that an element is still your child before
46521         trying to attach() it. This matches the style of checks we do elsewhere
46522         in the node insertion and removal code.
46524         * dom/ContainerNode.cpp:
46525         (WebCore::ContainerNode::insertBefore):
46526         (WebCore::ContainerNode::replaceChild):
46527         (WebCore::ContainerNode::appendChild):
46529 2007-03-26  David Carson  <dacarson@gmail.com>
46531         Reviewed by Darin, landed by Anders.
46533         Manual test case for: REGRESSION (r19559): Java applet crash
46534         http://bugs.webkit.org/show_bug.cgi?id=13142
46535         <rdar://problem/5080340>
46537         * manual-tests/liveconnect-applet-get-boolean.html: Added.
46538         * manual-tests/resources/CheckerApplet.class: Added.
46539         * manual-tests/resources/CheckerApplet.java: Added.
46541 2007-03-26  Mitz Pettel  <mitz@webkit.org>
46543         Reviewed and landed by Darin.
46545         - fix http://bugs.webkit.org/show_bug.cgi?id=13194
46546           <rdar://problem/5087738>
46547           REGRESSION: Selection rects are wrong for images in search results from images.google.com
46549         Test: fast/replaced/selection-rect-in-table-cell.html
46551         * rendering/RenderReplaced.cpp:
46552         (WebCore::RenderReplaced::selectionRect):
46554 2007-03-26  Geoffrey Garen  <ggaren@apple.com>
46556         Removed now-stale #includes of <assert.h>.
46557         
46558         * WebCorePrefix.h:
46559         * config.h:
46560         * css/CSSGrammar.y:
46561         * platform/Arena.cpp:
46562         * platform/KURL.cpp:
46563         * platform/SegmentedString.h:
46564         * rendering/DataRef.h:
46565         * rendering/RenderArena.cpp:
46567 2007-03-26  Geoffrey Garen  <ggaren@apple.com>
46569         Reviewed by Kevin McCulough.
46571         Global replace of "assert(" with "ASSERT(" to assist debugging. Removed
46572         one instance of commented-out code containing "assert(" instead of replacing it.
46574 2007-03-25  Antti Koivisto  <antti@apple.com>
46576         Reviewed by Adam.
46578         Fix <rdar://problem/5049842>
46579         Gmail Editor: Dragging message text in the message body results in a crash at WebCore::Frame::eventHandler()
46581         Null check frame in m_dragTarget, it might be gone already.
46583         * page/EventHandler.cpp:
46584         (WebCore::EventHandler::updateDragAndDrop):
46585         (WebCore::EventHandler::cancelDragAndDrop):
46586         (WebCore::EventHandler::performDragAndDrop):
46588 2007-03-25  Alexey Proskuryakov  <ap@webkit.org>
46590         Reviewed by Darin.
46592         A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
46593         XPath can be very slow
46595         * xml/XPathExpression.cpp:
46596         (WebCore::XPathExpression::evaluate): Reset a reference to the context node, as this may prevent the whole document
46597         from being destroyed in time.
46599         * dom/Attr.cpp:
46600         (WebCore::Attr::createTextChild): Instead of calling appendChild(), just do the few operations it really needs to perform.
46601         * dom/ContainerNode.h:
46602         (WebCore::ContainerNode::fastSetFirstChild):
46603         (WebCore::ContainerNode::fastSetLastChild):
46604         Added operations that let Attr hack internal ContainerNode data (evil, but fast!).
46606         * xml/XPathStep.cpp:
46607         (WebCore::XPath::Step::evaluate):
46608         (WebCore::XPath::Step::nodesInAxis):
46609         (WebCore::XPath::Step::nodeMatches):
46610         * xml/XPathStep.h:
46611         Merged node testing into axis enumeration. This saves a lot of Vector resizing and passing, and is necessary for future 
46612         optimizations (sometimes, we can just pick the single result node instead of enumerating and filtering the whole axis).
46614 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46616         Reviewed by Darin.
46618         - fix http://bugs.webkit.org/show_bug.cgi?id=13156
46619           REGRESSION (r19621): Pasting breakable content where wrapped line is too long to fit in a textarea fails to draw a horizontal scrollbar
46621         Test: fast/text/midword-break-after-breakable-char.html
46623         Breaking in the middle of the word
46624         is allowed only if no breaking opportunity between words has occurred yet. The
46625         first position on the line should not be considered "between words" even if
46626         it is a breaking opportunity.
46627         
46628         * rendering/bidi.cpp:
46629         (WebCore::RenderBlock::findNextLineBreak): Changed according to the above. Also
46630         cleaned up a couple of lines.
46632 2007-03-24  David Hyatt  <hyatt@apple.com>
46634         Fix for bugzilla bug 13187, place a hard limit on the amount of decoded data that WebCore will keep
46635         around even on live pages (pages being displayed in tabs/windows or in the back/forward cache).
46636         Images will decode to paint and once the decoded data exceeds the cache size, the decoded data will be
46637         tossed.
46639         Refine the flushing algorithm to apply the two-pass decode/evict model to each LRU-SP queue individually, rather
46640         than to all the lists at once.  This allows the cache to evict large encoded resources before flushing small
46641         or frequently accessed decoded onces.
46643         Added information on live/decoded data to the cache statistics.
46645         Reviewed by darin
46647         * loader/Cache.cpp:
46648         (WebCore::Cache::Cache):
46649         (WebCore::Cache::pruneLiveResources):
46650         (WebCore::Cache::pruneAllResources):
46651         (WebCore::Cache::setMaximumSize):
46652         (WebCore::Cache::remove):
46653         (WebCore::Cache::lruListFor):
46654         (WebCore::Cache::removeFromLRUList):
46655         (WebCore::Cache::insertInLRUList):
46656         (WebCore::Cache::liveLRUListFor):
46657         (WebCore::Cache::removeFromLiveResourcesList):
46658         (WebCore::Cache::insertInLiveResourcesList):
46659         (WebCore::Cache::addToLiveResourcesSize):
46660         (WebCore::Cache::removeFromLiveResourcesSize):
46661         (WebCore::Cache::adjustSize):
46662         (WebCore::Cache::getStatistics):
46663         * loader/Cache.h:
46664         (WebCore::Cache::TypeStatistic::TypeStatistic):
46665         * loader/CachedImage.cpp:
46666         (WebCore::CachedImage::decodedSizeWillChange):
46667         (WebCore::CachedImage::decodedSizeChanged):
46668         * loader/CachedImage.h:
46669         * loader/CachedResource.cpp:
46670         (WebCore::CachedResource::CachedResource):
46671         (WebCore::CachedResource::ref):
46672         (WebCore::CachedResource::deref):
46673         (WebCore::CachedResource::setEncodedSize):
46674         (WebCore::CachedResource::liveResourceAccessed):
46675         * loader/CachedResource.h:
46676         (WebCore::CachedResource::liveAccessCount):
46677         (WebCore::CachedResource::resetLiveAccessCount):
46678         (WebCore::CachedResource::increaseLiveAccessCount):
46679         * platform/graphics/BitmapImage.cpp:
46680         (WebCore::BitmapImage::destroyDecodedData):
46681         (WebCore::BitmapImage::cacheFrame):
46682         * platform/graphics/ImageObserver.h:
46683         * rendering/RenderBox.cpp:
46684         (WebCore::RenderBox::paintBackgroundExtended):
46685         * rendering/RenderImage.cpp:
46686         (WebCore::RenderImage::paint):
46687         * rendering/RenderListMarker.cpp:
46688         (WebCore::RenderListMarker::paint):
46689         * rendering/RenderObject.cpp:
46690         (WebCore::RenderObject::paintBorderImage):
46692 2007-03-24  Darin Adler  <darin@apple.com>
46694         Reviewed by Mitz.
46696         - fix http://bugs.webkit.org/show_bug.cgi?id=13123
46697           CSS selectors that use :lang, :not, and namespaces do not serialize correctly
46699         Test: fast/css/css-selector-text.html
46701         * css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText): Add the namespace
46702         prefix for tag or attribute names, the sub-selector for :not, and the argument
46703         for :lang.
46705 2007-03-24  Brady Eidson  <beidson@apple.com>
46707         Reviewed by Adam
46709         <rdar://problem/5086210> - Move RetainPtr to WTF
46711         * ForwardingHeaders/wtf/RetainPtr.h: Added.
46712         * WebCore.xcodeproj/project.pbxproj: Removed WebCore/RetainPtr.h
46713         
46714         * history/HistoryItem.h: Changed #include to <wtf/RetainPtr.h>
46715         * history/PageCache.h: Ditto
46716         * page/mac/WebCoreFrameBridge.mm: Ditto
46717         * platform/ContextMenu.h: Ditto
46718         * platform/ContextMenuItem.h: Ditto
46719         * platform/DragImage.h: Ditto
46720         * platform/FileChooser.h: Ditto
46721         * platform/PlatformKeyboardEvent.h: Ditto
46722         * platform/PopupMenu.h: Ditto
46723         * platform/SharedBuffer.h: Ditto
46724         * platform/cf/RetainPtr.h: Removed.
46725         * platform/graphics/Icon.h: Changed #include
46726         * platform/mac/ClipboardMac.h: Ditto
46727         * platform/mac/PasteboardMac.mm: Ditto
46728         * platform/mac/WidgetMac.mm: Ditto
46729         * platform/network/AuthenticationChallenge.h: Ditto
46730         * platform/network/ResourceError.h: Ditto
46731         * platform/network/ResourceHandle.h: Ditto
46732         * platform/network/ResourceRequest.h: Ditto
46733         * platform/network/ResourceResponse.h: Ditto
46734         * rendering/RenderThemeMac.mm: Ditto
46736 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46738         Fix for <rdar://problem/5086797>, layoutPending is now reporting incorrect results, which will lead
46739         to all sorts of layout issues.  This is in bugzilla as 13179.
46741         Reviewed by hyatt
46743         - fix http://bugs.webkit.org/show_bug.cgi?id=13179
46744           REGRESSION (r20410): In debug builds, loading a certain page is suspended until redisplay is forced
46746         Moved the root->needsLayout() check from layoutPending() to needsLayout()
46747         to restore the behavior before r20324.
46749         * page/FrameView.cpp:
46750         (WebCore::FrameView::layoutPending):
46751         (WebCore::FrameView::needsLayout):
46753 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46755         Reviewed by Adele.
46757         - fix http://bugs.webkit.org/show_bug.cgi?id=13180
46758               <rdar://problem/5084478>
46759           Another debug build crash from ASSERTION FAILED: !needsLayout()
46761         No test possible because updateRendering() is always called after script
46762         execution.
46764         * page/FrameView.cpp:
46765         (WebCore::FrameView::layout): Get the layout root after calling recalcStyle()
46766         since a style recalc may result in needing to do start layout at the root.
46768 2007-03-24  Nikolas Zimmermann  <zimmermann@kde.org>
46770         Not reviewed. Build fix.
46772         Fix FloatRect vs. IntRect confusion.
46774         * rendering/RenderSVGImage.cpp:
46775         (WebCore::RenderSVGImage::nodeAtPoint):
46777 2007-03-25  Mark Rowe  <mrowe@apple.com>
46779         Fix incorrect radar number.
46781         * platform/network/mac/ResourceHandleMac.mm:
46782         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
46784 2007-03-23  Nikolas Zimmermann  <zimmermann@kde.org>
46786         Reviewed by Oliver.
46788         Fix all known RenderSVGImage problems.
46790         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12126 (RenderSVGImage seems to suffer from integer overflow)
46791         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12442 (raster images disappearing during script execution (SVG))
46792         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12572 (WebKit does not properly invalidate image region after image load)
46794         Added test: svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html
46796         In RenderSVGImage::paint, do not call shouldPaint() as this will never work properly for SVG renderers, as shouldPaint
46797         doesn't take into account any special SVG transformation (localTransform/absoluteTransform). Just remove the call.
46799         Fix hit detection on RenderSVGImage - it didn't work properly at all. No idea why I didn't notice before.
46800         Thanks Andreas Neumann once again for writing excellent bug reports and pointing me to them :-)
46802         The carto.net navigation tools work as expected now, and also the "dock like" image effect example.
46804         * rendering/RenderSVGImage.cpp:
46805         (WebCore::RenderSVGImage::paint):
46806         (WebCore::RenderSVGImage::nodeAtPoint):
46808 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46810         Reviewed by Dave Hyatt.
46812         - http://bugs.webkit.org/show_bug.cgi?id=13177
46813           Suppress control characters in the ATSUI code path
46815         * platform/mac/FontMac.mm:
46816         (WebCore::overrideLayoutOperation):
46817         (WebCore::ATSULayoutParameters::initialize):
46819 2007-03-24  David Hyatt  <hyatt@apple.com>
46821         Fix for <rdar://problem/5086400>, images scrolled offscreen continue to animate.  Safari 2 would
46822         halt animations when images were no longer visible.
46824         Reviewed by mjs, olliej
46826         * platform/graphics/BitmapImage.cpp:
46827         (WebCore::BitmapImage::advanceAnimation):
46829 2007-03-24  David Hyatt  <hyatt@apple.com>
46831         Fix for <rdar://problem/508328>, sluggish text entry in search field.  Make sure
46832         our size actually changed before we decide to do a full repaint because of background/border
46833         complexities.
46835         Reviewed by aroben
46837         * rendering/RenderObject.cpp:
46838         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
46840 2007-03-23  Dave Hyatt  <hyatt@apple.com>
46842         Fix for <rdar://problem/5048219>, spurious glyphs in gmail.   This is bugzilla bug 13136, which
46843         will remain open to cover patching the complex text path.
46844         
46845         Reviewed by aroben
46847         * platform/Font.cpp:
46848         (WebCore::Font::glyphDataForCharacter):
46849         * platform/Font.h:
46850         (WebCore::Font::treatAsZeroWidthSpace):
46851         * platform/GlyphPageTreeNode.cpp:
46852         (WebCore::GlyphPageTreeNode::initializePage):
46854 2007-03-23  Mitz Pettel  <mitz@webkit.org>
46856         Reviewed by Adele.
46858         - fix http://bugs.webkit.org/show_bug.cgi?id=13153
46859           REGRESSION: Visual highlighting of pre-populated blank line in textarea is broken
46861         - fix a bug where selecting across a soft line break did not highlight to
46862           the end of the first line if it contained skipped whitespace
46864         Test: fast/text/selection-hard-linebreak.html
46866         * rendering/InlineTextBox.cpp:
46867         (WebCore::InlineTextBox::selectionState): Changed to treat a selection that ends on the
46868         end of a hard line break as if it ends after the line break. Fixed the case of a selection
46869         that starts and ends in the same text object as the box but does not intersect it
46870         to return SelectionNone instead of selectionBoth.
46872 2007-03-23  Mitz Pettel  <mitz@webkit.org>
46874         Reviewed by Adele.
46876         - fix http://bugs.webkit.org/show_bug.cgi?id=13124
46877           REGRESSION: Reproducible crash in Widget::getView
46879         Test: fast/frames/hover-timer-crash.html
46881         * page/Frame.cpp:
46882         (WebCore::Frame::setView): Added a call to EventHandler::clear().
46884 2007-03-23  Justin Garcia  <justin.garcia@apple.com>
46886         Reviewed by adele
46888         <rdar://problem/5078739> 
46889         Crash in in ReplaceSelectionCommand if the fragment contains only a style span
46891         * editing/ReplaceSelectionCommand.cpp:
46892         (WebCore::ReplaceSelectionCommand::doApply): Check 
46893         for an empty fragment after removing a redundant
46894         style span instead of before.
46896 2007-03-23  David Hyatt  <hyatt@apple.com>
46898         <rdar://problem/5085063>
46900         Fix non-looping animation on cuteoverload.com. Just always flush
46901         decoded data for large animated images to avoid our cache getting
46902         out of sync with the image source.
46904         Reviewed by ggaren
46906         * platform/graphics/BitmapImage.cpp:
46907         (WebCore::BitmapImage::advanceAnimation):
46909 2007-03-23  Adele Peterson  <adele@apple.com>
46911         Reviewed by Darin.
46913         Fix for <rdar://problem/5061024> REGRESSION: Returning false from onkeypress event on Input is ignored when key is Tab
46914         http://bugs.webkit.org/show_bug.cgi?id= 13020
46916         No known way to add a layout test for this.  We would need a way to know exactly how the event was consumed.
46918         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler):
46919           If the keypress event has its default behavior prevented, then we should consider the keydown event handled.
46921 2007-03-23  Justin Garcia  <justin.garcia@apple.com>
46923         Reviewed by darin
46925         <rdar://problem/5080333> 
46926         REGRESSION: Selection changes when changing the alignment of an image
46927         
46928         Regression occurred when we started using moveParagraphs
46929         to move content in applyBlockStyle.  moveParagraphs 
46930         moves by copying, deleting and reinserting content, and
46931         so must be accompanied by selection preservation code.
46932         That code uses rangeFromLocationAndLength and rangeLength,
46933         which use TextIterators, which don't emit anything for images 
46934         and other replaced elements, causing this bug.
46936         * editing/ApplyStyleCommand.cpp:
46937         (WebCore::ApplyStyleCommand::applyBlockStyle): Ask rangeLength 
46938         and rangeFromLocationAndLength to request that their
46939         TextIterators emit spaces for replaced elements.
46940         Use rangeCompliantEquivalent()s when creating a Range from
46941         VisiblePositions, since some VisiblePositions have illegal
46942         deepEquivalent()s.
46943         * editing/CompositeEditCommand.cpp:
46944         (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
46945         * editing/TextIterator.cpp:
46946         (WebCore::TextIterator::TextIterator):
46947         (WebCore::TextIterator::handleReplacedElement): Emit
46948         a space if requested.
46949         (WebCore::TextIterator::representNodeOffsetZero): Emit
46950         ranges before m_node, not around m_lastTextNode.  These
46951         ranges should represent the part of the document associated
46952         with the emitted character. 
46953         (WebCore::TextIterator::rangeLength): Take in the new bool.
46954         (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
46955         Also, don't loop an extra time after finding the end of the
46956         range when we're looking for zero length ranges.  This appeared
46957         to be a workaround for the bugs fixed in representNodeOffsetZero
46958         in this patch.
46959         * editing/TextIterator.h:
46961 2007-03-24  Mark Rowe  <mrowe@apple.com>
46963         Rubber-stamped by Darin.
46965         * Configurations/WebCore.xcconfig: Remove unnecessary INFOPLIST_PREPROCESS.
46967 2007-03-23  Darin Adler  <darin@apple.com>
46969         * html/HTMLBodyElement.cpp: Fix comment typo.
46971 2007-03-23  Adam Treat  <adam@staikos.net>
46973         Reviewed and committed by George.
46975         Patch from Adam Treat to make the Qt build work without SVG and XSLT.
46976         XMLNames is required in any case.
46978         * WebCore.pro:
46980 2007-03-23  Darin Adler  <darin@apple.com>
46982         Reviewed by Hyatt.
46984         - <rdar://problem/5074439> handle margins on frame and iframe elements
46985           without involving FrameView, FrameLoader, etc.
46987         * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::insertedIntoDocument):
46988         Grab the margin from the frame directly here. There was no real benefit
46989         to doing this via FrameView. Later we can delete quite a bit of unneeded code
46990         here and in WebKit that exists only to set up the margin values in FrameView,
46991         which are now unused.
46993 2007-03-23  Adele Peterson  <adele@apple.com>
46995         Reviewed by Darin.
46997         Fix for <rdar://problem/5080428> REGRESSION: getting value for hidden input element fails after the fix for Bug 11866
46998         http://bugs.webkit.org/show_bug.cgi?id=13121
47000         Rolled out the change for 11866 that made hidden input elements store the value separately from the value attribute.
47001         Added an m_originalValue field that gets set when the element is done being parsed (in closeRenderer).  In reset,
47002         use the m_originalValue for hidden input elements.
47004         * html/HTMLInputElement.cpp:
47005         (WebCore::HTMLInputElement::closeRenderer):
47006         (WebCore::HTMLInputElement::reset):
47007         (WebCore::HTMLInputElement::setValue):
47008         (WebCore::HTMLInputElement::storesValueSeparateFromAttribute):
47009         * html/HTMLInputElement.h:
47011 2007-03-23  Mitz Pettel  <mitz@webkit.org>
47013         Reviewed by Dave Hyatt.
47015         - fix http://bugs.webkit.org/show_bug.cgi?id=13157
47016               <rdar://problem/5083995>
47017           List markers positioned incorrectly and don't repaint properly on Oxford homepage
47019         Test: fast/lists/marker-image-error.html
47021         * rendering/RenderListMarker.cpp:
47022         (WebCore::RenderListMarker::imageChanged): Mark ourselves for relayout if
47023         the image failed to load, since that means we will use a bullet instead.
47025 2007-03-23  Zack Rusin  <zrusin@trolltech.com>
47027         Fix the compile.
47029         * platform/graphics/qt/ImageSourceQt.cpp:
47031 2007-03-22  Dave Hyatt  <hyatt@apple.com>
47033         Fix for <rdar://problem/5083072>.
47035         * page/Frame.cpp:
47036         (WebCore::Frame::setPrinting):
47037         (WebCore::Frame::forceLayoutWithPageWidthRange):
47038         * page/Frame.h:
47039         * page/mac/WebCoreFrameBridge.mm:
47040         (-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
47042 2007-03-22  Anders Carlsson  <acarlsson@apple.com>
47044         Reviewed by Ada.
47046         <rdar://problem/5074974>
47047         CrashTracer: [USER] repro crash in Safari at com.apple.WebCore: WebCore::FrameLoader::activeDocumentLoader const + 6
47048         
47049         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
47050         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
47051         Don't use ResourceResponse:isHTTP here since that only looks at the protocol instead of if the response came from a 
47052         HTTP server (and not a web archive).
47054 2007-03-22  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
47056         Not reviewed - gdk build fix.
47058         * platform/graphics/cairo/ImageSourceCairo.cpp:
47060 2007-03-22  Dave Hyatt  <hyatt@apple.com>
47062         Fix for <rdar://problem/5083473>.  Make sure wheeling still forwards to the frame view even
47063         when no node is hit.  Technically not ever hitting a node is a regression from the RenderView
47064         size changes (making it be the size of the initial containing block according to CSS2.1), but
47065         we should still handle this case gracefully in case it comes up again.
47066        
47067         Reviewed by olliej
47069         * page/EventHandler.cpp:
47070         (WebCore::EventHandler::handleWheelEvent):
47072 2007-03-22  Justin Garcia  <justin.garcia@apple.com>
47074         Reviewed by kevin
47076         <rdar://problem/5081257> 
47077         REGRESSION: New Mail signatures start out empty
47079         * editing/VisiblePosition.cpp:
47080         (WebCore::VisiblePosition::canonicalPosition): Allow
47081         descent from positions inside the document into an 
47082         editable body.
47084 2007-03-22  Brady Eidson  <beidson@apple.com>
47086         Reviewed by Adele and John
47088         <rdar://5043528> - Prepare for new API
47089         
47090         * platform/network/ResourceHandle.cpp:
47091         (WebCore::ResourceHandle::clearAuthentication): Clear CF type
47093 2007-03-22  Beth Dakin  <bdakin@apple.com>
47095         Patch by Hyatt, reviewed and committed by me.
47097         Does not reproduce consistently, so a layout test does not seem 
47098         possible.
47100         Fix for <rdar://problem/5082421> Constantly hitting ASSERT(!
47101         needsLayout()) in RenderView::paint()
47103         * page/FrameView.cpp:
47104         (WebCore::FrameView::layoutPending): It is not enough to ask if the 
47105         layout timer is active. There may be times that we don't have a 
47106         body yet so we cannot schedule layout yet, but the root still needs 
47107         layout.  
47109 2007-03-22  John Sullivan  <sullivan@apple.com>
47111         Reviewed by Darin
47112         
47113         Followup for recent fix to 5079700, found by assertion added to Safari.
47115         * page/mac/FrameMac.mm:
47116         (WebCore::Frame::searchForLabelsBeforeElement):
47117         Fixed another place in this method where an empty NSString was being returned instead of nil.
47118         Cleaned up the style a little too.
47120 2007-03-22  David Hyatt  <hyatt@apple.com>
47122         Remove unnecessary destroyFrameAtIndex call.  Now that we throw away
47123         the image source, it is no longer needed.
47125         Reviewed by beth
47127         * platform/graphics/BitmapImage.cpp:
47128         (WebCore::BitmapImage::destroyDecodedData):
47130 2007-03-22  David Harrison  <harrison@apple.com>
47132         Reviewed by Geoff, Darin.
47134         <rdar://problem/5077892> In RapidWeaver 3.5.1, a crash occurs when attempting to load Safari Bookmarks in iMedia Browser
47135         
47136         * platform/mac/ThreadCheck.mm:
47137         (WebCore::_WebCoreThreadViolationCheck):
47138         Change default on Tiger to NSLog rather than raise an exception.
47140 2007-03-22  Darin Adler  <darin@apple.com>
47142         Reviewed by Brady.
47144         - use binary_search instead of hash table; slightly better performance and
47145           less memory use
47147         * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
47148         Use binary_search.
47150 2007-03-22  Darin Adler  <darin@apple.com>
47152         Reviewed by Adele.
47154         - fix <rdar://problem/5074630> detachChildren call should move from WebKit to WebCore
47156         * loader/FrameLoader.cpp: (WebCore::FrameLoader::setDocumentLoader):
47157         Add a call to detachChildren() after the call to prepareForDataSourceReplacement().
47158         There was no reason for this crucial loading step to be left to the client.
47160 2007-03-22  David Hyatt  <hyatt@apple.com>
47162         Minor refactoring and cleanup of the bridge calls that want to control layout settings on the RenderView.
47163         Have the bridge talk through the FrameView instead of just asking for the RenderView directly.
47165         Add an assert to help catch situations where the RenderView needs layout at paint time, since this is a known
47166         catastrophic scenario that will (much of the time) result in a crash in RenderTableSection::paint.
47168         Reviewed by aroben
47170         * page/FrameView.cpp:
47171         (WebCore::FrameView::adjustViewSize):
47172         (WebCore::FrameView::needsLayout):
47173         (WebCore::FrameView::setNeedsLayout):
47174         * page/FrameView.h:
47175         * page/mac/WebCoreFrameBridge.mm:
47176         (-[WebCoreFrameBridge needsLayout]):
47177         (-[WebCoreFrameBridge setNeedsLayout]):
47178         * rendering/RenderView.cpp:
47179         (WebCore::RenderView::paint):
47181 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47183         Reviewed by Beth Dakin.
47184         
47185         Re-worked the fix in r20375. 'M' and 'm' are not the only commands that
47186         accept "extra" coordinates -- virtually all commands accept them.
47188         * ksvg2/svg/SVGParserUtilities.cpp:
47189         (WebCore::SVGPathParser::parseSVG):
47191 2007-03-21  David Harrison  <harrison@apple.com>
47193         Reviewed by hyatt.
47195         <rdar://problem/5072460> CrashTracer: [USER] 1 crashes in Xcode at com.apple.ImageIO.framework: getBandProcPNG + 168
47197         An NSData object was being alloc/init'd, then returned callers who cast the pointer as a
47198         CFDataRef, including calling CFRelease on it. The problem is that under garbage collection, the NS
47199         retain count is ignored (it's always 0), but the CFRetain and CFRelease are not ignored. This
47200         caused the object to be over-released. The solution that works in both GC and non-GC is to "transfer"
47201         the initial NS retain count to the CF retain count, using HardRetainWithNSRelease.
47202         
47203         The creator of the NSData was SharedBuffer::createNSData. The callers were PDFDocumentImage::dataChanged()
47204         and ImageSource::setData(). This particular crash involved the ImageSource::setData() case.
47206         * platform/SharedBuffer.h:
47207         Declare createCFData().
47208         
47209         * platform/graphics/cg/ImageSourceCG.cpp:
47210         (WebCore::ImageSource::setData):
47211         Call createCFData instead of createNSData.
47212         
47213         * platform/graphics/cg/PDFDocumentImage.cpp:
47214         (WebCore::PDFDocumentImage::dataChanged):
47215         Call createCFData instead of createNSData.
47216         
47217        * platform/mac/SharedBufferMac.mm:
47218         (WebCore::SharedBuffer::createCFData):
47219         Implement createCFData(). Use HardRetainWithNSRelease for gc safety.
47220         
47221 2007-03-21  Mitz Pettel  <mitz@webkit.org>
47223         Reviewed by Darin.
47225         - fix http://bugs.webkit.org/show_bug.cgi?id=13145
47226           Regression: Scrollbar not resizing after display none
47228         Test: fast/dynamic/view-overflow.html
47230         * rendering/RenderView.cpp:
47231         (WebCore::RenderView::layout): Reset overflowHeight() and overflowWidth()
47232         before calling docHeight() and docWidth(), since the former act as a lower
47233         bound for the latter.
47235 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47237         Reviewed by Beth Dakin.
47238         
47239         A little cleanup based work I've been doing on the SVG parsers.
47241         * ksvg2/svg/SVGParserUtilities.h:
47242         (WebCore::skipString):
47243         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Moved checkString into
47244         SVGParserUtilities.h, so it could be with all its friends. Renamed 
47245         "checkString" to "skipString" to match the rest of the code and to be 
47246         clear about which functions move the buffer pointer.
47247         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
47248         * ksvg2/svg/SVGTransformable.cpp:
47249         (WebCore::SVGTransformable::parseTransformAttribute): Changed gotos into 
47250         returns. Removed unnecessary magic number.
47252 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47254         Reviewed by Beth Dakin.
47255         
47256         Fixed <rdar://problem/5078471> SVG rgb color parser runs past end of 
47257         buffer when running fuzzing test
47259         * ksvg2/svg/SVGColor.cpp:
47260         (WebCore::parseNumberOrPercent): Check for past the end condition.
47261         (WebCore::SVGColor::colorFromRGBColorString): Reversed "read past end
47262         of buffer, then check if you're past the end" logic.
47264 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47266         Reviewed by Beth Dakin.
47267         
47268         Fixed <rdar://problem/5079410> SVG path parser hangs, exhausts memory when 
47269         running fuzzer test
47271         * ksvg2/svg/SVGParserUtilities.cpp:
47272         (WebCore::SVGPathParser::parseSVG): Don't assume that extra digits are
47273         always preceded by an 'M' or an 'm'.
47275 2007-03-21  John Sullivan  <sullivan@apple.com>
47277         Reviewed by Adam
47278         
47279         - fixed <rdar://problem/5079700> REGRESSION (r19702): Name/password aren't autofilled 
47280           or saved for .Mac homepage login
47282         * page/mac/FrameMac.mm:
47283         (WebCore::Frame::searchForLabelsBeforeElement):
47284         don't count empty strings as valid results
47286 2007-03-21  Justin Garcia  <justin.garcia@apple.com>
47288         Reviewed by darin
47290         * editing/markup.cpp:
47291         (WebCore::styleFromMatchedRulesAndInlineDecl): 
47292         Release the RefPtr to avoid increasing/decreasing
47293         the refcount unnecessarily.
47294         (WebCore::propertyMissingOrEqualToNone): Added and used
47295         instead of converting values to strings.
47296         (WebCore::elementHasTextDecorationProperty): 
47297         (WebCore::createMarkup):
47299 2007-03-21  Justin Garcia  <justin.garcia@apple.com>
47301         Reviewed by oliver
47303         <rdar://problem/5075944> 
47304         REGRESSION: Partially selected underlined content pastes as plain text
47305         
47306         We stopped adding markup for all the ancestors
47307         of lastClosed up to the commonAncestorBlock
47308         because it was adding a lot of unnecessary markup.
47309         This caused us to lose underlining when copying a 
47310         partially selected underlined element (even though 
47311         we put all styles that the copied markup inherits 
47312         into a style span, because the text-decoration 
47313         isn't inheritable).
47315         * editing/markup.cpp:
47316         (WebCore::styleFromMatchedRulesAndInlineDecl): Moved
47317         code here.
47318         (WebCore::elementHasTextDecorationProperty): Added.
47319         (WebCore::createMarkup): If the copied markup has a
47320         text-decoration because some common ancestor has
47321         a text-decoration property set, include that ancestor
47322         and all its descendants in the copied markup.
47324 2007-03-21  Oliver Hunt  <oliver@apple.com>
47326         Reviewed by Antti.
47328         Update a few SVG attribute parsers to be more defensive against
47329         reading beyond the end of input. 
47331         Fixes rdar://problem/5077218 -- SVG transform parser runs past
47332         end of buffer when running fuzzing test
47334         * ksvg2/svg/SVGParserUtilities.cpp:
47335         (WebCore::SVGPathParser::parseSVG):
47336         * ksvg2/svg/SVGParserUtilities.h:
47337         (WebCore::skipOptionalSpacesOrDelimiter):
47338         * ksvg2/svg/SVGTransformable.cpp:
47339         (WebCore::parseTransformParamList):
47340         (WebCore::SVGTransformable::parseTransformAttribute):
47342 2007-03-21  Alexey Proskuryakov  <ap@webkit.org>
47344         Reviewed by Mitz.
47346         http://bugs.webkit.org/show_bug.cgi?id=13140
47347         Crash after loading SVG fragment with XMLHttpRequest (Yosemite Map Geology Layer)
47349         Test: svg/carto.net/frameless-svg-parse-error.html
47351         * ksvg2/misc/SVGDocumentExtensions.cpp:
47352         (WebCore::SVGDocumentExtensions::reportError): Added a null check.
47353         (WebCore::SVGDocumentExtensions::reportWarning): Ditto.
47355 2007-03-21  Beth Dakin  <bdakin@apple.com>
47357         Reviewed by Geoff.
47359         Fix for <rdar://problem/5072678> Crash in
47360         RenderLayer::scrollRectToVisible with MallocScribble enabled
47362         I tried to fix this earlier today but my fix caused a regression
47363         scrolling through RSS pages. It turns out that sometimes scroll
47364         events need to propagate immediately, and sometimes they must be
47365         delayed or they risk deleting objects that are expected to be
47366         around after the event has propagated. Mitz's original fix made
47367         sheduleEvent() only delay events that happen during layout. This
47368         fix marks two other places in addition to layout where events also
47369         need to be delayed. These two places are places that were marked
47370         with FIXMEs that Mitz removed in his original patch. (There was a
47371         third FIXME in RenderLayer::updateScrollInfoAfterLayout() but that
47372         case is only called through layout and is covered by Mitz's
47373         original patch.)
47375         * page/FrameView.cpp:
47376         (WebCore::FrameView::~FrameView): Added assertion.
47377         (WebCore::FrameView::layout): Call new functions to increment and 
47378         decrement the queued events count.
47379         (WebCore::FrameView::pauseScheduledEvents):
47380         (WebCore::FrameView::resumeScheduledEvents): Decrement queued 
47381         events count and dispatch events if the count has zeroed.
47382         * page/FrameView.h:
47383         * rendering/RenderLayer.cpp:
47384         (WebCore::RenderLayer::scrollRectToVisible):
47385         (WebCore::Marquee::start):
47387 2007-03-21  Mitz Pettel  <mitz@webkit.org>
47389         Reviewed by John Sullivan.
47391         - fix http://bugs.webkit.org/show_bug.cgi?id=13130
47392           REGRESSION: Sometimes a frame resizer keeps following the mouse after mouseup
47394         * rendering/RenderFrameSet.cpp:
47395         (WebCore::RenderFrameSet::userResize): Reordered the code to allow resizing
47396         to be terminated by a mouseup event regardless of whether the frameset needs
47397         layout.
47399 2007-03-20  Anders Carlsson  <acarlsson@apple.com>
47401         Reviewed by Oliver.
47403         <rdar://problem/5077252> 
47404         In NetNewsWire 2.1.1 and 3.0d62, a crash occurs after triple-clicking a link on the page
47405         
47406         * loader/FrameLoader.cpp:
47407         (WebCore::FrameLoader::load):
47408         Move the m_inStopAllLoaders check to the load function that's common for loading a request or substitute data.
47410 2007-03-20  Brady Eidson  <beidson@apple.com>
47412         Reviewed by Anders.
47414         <rdar://problem/5073391> and http://bugs.webkit.org/show_bug.cgi?id=13137
47416         Crash in IconDatabase when private browsing is enabled.
47418         The problem was caused by http://trac.webkit.org/projects/webkit/changeset/20182 
47419         which changed many uses of char[] and Vector<char> to SharedBuffer.  The patch
47420         tended to literally replace a Vector<char> with RefPtr<SharedBuffers> but forgot
47421         to enforce the concept that Vector<char>'s always exist, whereas RefPtr<SharedBuffers>
47422         can be null.  This led to derefs.
47424         I took the opportunity to rework the iconDB functions to live in a SharedBuffer 
47425         world, as that didn't exist when they were originally written - now they just return
47426         SharedBuffers instead of taking a Vector<char>& as a parameter
47428         * loader/icon/IconDatabase.cpp:
47429         (WebCore::IconDatabase::imageDataForIconURL): Return a SharedBuffer
47430         (WebCore::IconDatabase::iconForPageURL): Null check the SharedBuffer before asking
47431           it if it's empty
47432         (WebCore::IconDatabase::imageDataForIconURLQuery): Return a new SharedBuffer
47434         * loader/icon/IconDatabase.h: Return SharedBuffer's instead of taking Vector<char>&'s
47436 2007-03-20  Adam Roben  <aroben@apple.com>
47438         Rubberstamped by Adele.
47440         Roll out r20348 because it was causing crashes.
47442         * page/FrameView.cpp:
47443         (WebCore::FrameViewPrivate::FrameViewPrivate):
47444         (WebCore::FrameView::layout):
47445         (WebCore::FrameView::scheduleEvent):
47447 2007-03-20  Timothy Hatcher  <timothy@apple.com>
47449         Reviewed by Kevin Decker.
47451         Rolling out part of r19828 that caused a scrolling regression in Mail.
47453         <rdar://problem/4820817> Message jumps around when trying to select text
47455         * platform/mac/ScrollViewMac.mm:
47456         (WebCore::ScrollView::visibleContentRect):
47457         (WebCore::ScrollView::updateContents):
47459 2007-03-20  Brady Eidson  <beidson@apple.com>
47461         Reviewed by John
47463         <rdar://5071341> - Crash in IconLoader::finishLoading()
47464         
47465         Though the reproducibility of the crash is still elusive, there's been a crasher likely uncovered 
47466         Hyatt's recent caching changings to the IconLoader.  This crash tends to hit on sites without favicons,
47467         that serve up complex 404 pages, often when the load is cancelled or redirected.  Occasionally, it *seems*
47468         the IconLoader is getting failed/cancelled twice.
47469         
47470         This patch adds some assertions and a "fail gracefully in a release build" check that will have to
47471         serve us until we know more about the cause.
47473         * loader/icon/IconLoader.cpp:
47474         (WebCore::IconLoader::didFail): Add an assertion to catch this case
47475         (WebCore::IconLoader::finishLoading): Add an assertion to catch the case, and fail
47476           gracefully in debug builds.  Also add an efficiency check to not commit to the DB if there is no
47477           IconURL
47479 2007-03-20  Antti Koivisto  <antti@apple.com>
47481         Reviewed by Darin.
47483         - fix http://bugs.webkit.org/show_bug.cgi?id=10747
47484         REGRESSION: Using two fingers on a trackpad to scroll inside a text area makes the whole page move
47485         <rdar://problem/5045710>
47486         
47487         Eat smooth scroll events in WebCore if pointer is over scrollable area. Not
47488         really a good fix, smooth scrolling should be supported properly. It should do for now.
47490         * page/EventHandler.cpp:
47491         (WebCore::EventHandler::handleWheelEvent):
47492         * rendering/RenderListBox.cpp:
47493         (WebCore::RenderListBox::isScrollable):
47494         * rendering/RenderListBox.h:
47495         * rendering/RenderObject.cpp:
47496         (WebCore::RenderObject::isScrollable):
47497         * rendering/RenderObject.h:
47498         * rendering/RenderTextControl.cpp:
47499         (WebCore::RenderTextControl::isScrollable):
47500         * rendering/RenderTextControl.h:
47502 2007-03-20  Beth Dakin  <bdakin@apple.com>
47504         Reviewed by Geoff.
47506         Covered by existing test case.
47508         Fix for <rdar://problem/5072678> Crash in 
47509         RenderLayer::scrollRectToVisible with MallocScribble enabled
47511         This removes some code that was added with http://bugs.webkit.org/
47512         show_bug.cgi?id=8360. This code was not needed to fix that bug, but 
47513         the idea behind it was that there are times when it is safe for 
47514         scheduleEvent() to propagate the event immediately. The 
47515         MallocScribble crash revealed that this assumption was a bit too 
47516         broad; the cause of the crash was that we were propagating events 
47517         immediately when it was not safe. Mitz and I discussed this online 
47518         and we agree that the safest solution is to revert to the old 
47519         behavior here, and always delay the propagation of the event. 
47521         * page/FrameView.cpp:
47522         (WebCore::FrameViewPrivate::FrameViewPrivate):
47523         (WebCore::FrameView::layout):
47524         (WebCore::FrameView::scheduleEvent):
47526 2007-03-20  Brady Eidson  <beidson@apple.com>
47528         Reviewed by John Sullivan
47530         Add some very helpful logging to the IconLoader's SubresourceLoaderClient impl.
47532         * loader/icon/IconLoader.cpp:
47533         (WebCore::IconLoader::didReceiveResponse):
47534         (WebCore::IconLoader::didReceiveData):
47535         (WebCore::IconLoader::didFail):
47536         (WebCore::IconLoader::didFinishLoading):
47538 2007-03-20  Justin Garcia  <justin.garcia@apple.com>
47540         Reviewed by darin
47542         <rdar://problem/5071074> 
47543         REGRESSION: Links are pasted as plain text at certain positions
47544         
47545         moveParagraphs calls createMarkup without annotation, which leaves
47546         out anchor elements that aren't fully selected.
47548         * editing/CompositeEditCommand.cpp:
47549         (WebCore::CompositeEditCommand::moveParagraphs): We don't want 
47550         createMarkup to do full annotation here.  Doing so could include 
47551         special ancestor blocks, which would prevent the copied content 
47552         from appearing in the destination paragraph when it's re-inserted.  
47553         Annotation would also inline styles from style sheets,  which is 
47554         unnecessary because the content is being moved to the same 
47555         document it's being moved from.
47556         Added a new bool to createMarkup that when true allows markup for 
47557         special ancestors as long as they are inline when annotation is off.
47558         * editing/markup.cpp:
47559         (WebCore::createMarkup): Don't set specialCommonAncestor if annotation
47560         is off, unless it's inline and we've been told it's ok to include such
47561         elements.
47562         * editing/markup.h:
47564 2007-03-20  Alexey Proskuryakov  <ap@webkit.org>
47566         Reviewed by Darin.
47568         http://bugs.webkit.org/show_bug.cgi?id=12497
47569         Implement XPath result ordering.
47571         XPath::NodeVector typedef is replaced with a real XPath::NodeSet class that knows how 
47572         to sort itself, and can remember whether it has been already sorted.
47574         * CMakeLists.txt:
47575         * WebCore.pro:
47576         * WebCore.xcodeproj/project.pbxproj:
47577         * WebCoreSources.bkl:
47578         Added XPathNodeSet files.
47580         * xml/XPathExpression.cpp: Fixed includes.
47582         * xml/XPathFunctions.cpp:
47583         (WebCore::XPath::FunId::evaluate): Mark the resulting node-set as unsorted.
47584         (WebCore::XPath::FunLocalName::evaluate): Replacing NodeVector with NodeSet.
47585         (WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
47586         (WebCore::XPath::FunName::evaluate): Ditto.
47587         (WebCore::XPath::FunCount::evaluate): Ditto.
47588         (WebCore::XPath::FunSum::evaluate): Ditto.
47590         * xml/XPathNodeSet.cpp: Added.
47591         (WebCore::XPath::parentWithDepth):
47592         (WebCore::XPath::sortBlock):
47593         (WebCore::XPath::NodeSet::sort): Sort the node-set in document order.
47594         (WebCore::XPath::NodeSet::reverse): Reverse the order (useful for making axes such as 
47595         parent or ancestor sorted).
47596         (WebCore::XPath::NodeSet::firstNode): Returns the first node in document order; currently
47597         implemented via fully sorting the node-set, but this can obviously be optimized.
47598         (WebCore::XPath::NodeSet::anyNode): Added for symmetry with firstNode().
47599         
47600         * xml/XPathNodeSet.h: Added.
47601         (WebCore::XPath::NodeSet::NodeSet):
47602         (WebCore::XPath::NodeSet::operator=):
47603         (WebCore::XPath::NodeSet::size):
47604         (WebCore::XPath::NodeSet::isEmpty):
47605         (WebCore::XPath::NodeSet::operator[]):
47606         (WebCore::XPath::NodeSet::reserveCapacity):
47607         (WebCore::XPath::NodeSet::clear):
47608         (WebCore::XPath::NodeSet::swap):
47609         (WebCore::XPath::NodeSet::append):
47610         (WebCore::XPath::NodeSet::markSorted):
47611         (WebCore::XPath::NodeSet::isSorted):
47612         Most of these methods just call Vector counterparts. 
47614         * xml/XPathParser.cpp: Updated the copyright notice.
47616         * xml/XPathPath.cpp:
47617         (WebCore::XPath::Filter::evaluate): Replacing NodeVector with NodeSet.
47618         (WebCore::XPath::Path::evaluate): Ditto.
47619         (WebCore::XPath::LocationPath::evaluate): Replacing NodeVector with NodeSet. This function
47620         always marks the result as unsorted, because it is hard to tell whether a step breaks node order.
47621         Identifying and implementing special cases when it is not necessary to do so is an important
47622         future optimization.
47624         * xml/XPathPath.h: Replacing NodeVector with NodeSet.
47625         * xml/XPathPredicate.cpp:
47626         (WebCore::XPath::EqTestOp::compare): Replacing NodeVector with NodeSet.
47627         (WebCore::XPath::Union::evaluate): Replacing NodeVector with NodeSet. Currently, Union just
47628         marks the result as unordered; we can consider using merge sort to avoid this.
47630         * xml/XPathResult.cpp:
47631         (WebCore::XPathResult::XPathResult): Replacing NodeVector with NodeSet.
47632         (WebCore::XPathResult::singleNodeValue): Ditto.
47633         (WebCore::XPathResult::snapshotLength): Ditto.
47634         (WebCore::XPathResult::iterateNext): Ditto.
47635         (WebCore::XPathResult::snapshotItem): Ditto.
47636         (WebCore::XPathResult::convertTo): Ditto. Sort the result when requested to.
47638         * xml/XPathResult.h: Replacing NodeVector with NodeSet.
47640         * xml/XPathStep.cpp:
47641         (WebCore::XPath::Step::evaluate): If the input is not sorted, mark the output as such, too.
47642         (WebCore::XPath::Step::nodesInAxis): Fixed a number of bugs when enumerating with an
47643         attribute context node.
47644         (WebCore::XPath::Step::nodeTestMatches): Replacing NodeVector with NodeSet.
47645         * xml/XPathStep.h: Ditto.
47647         * xml/XPathUtil.cpp:
47648         (WebCore::XPath::isValidContextNode): XPath data model doesn't put attribute data into child
47649         nodes, so passing such node as a context could cause problems.
47651         * xml/XPathUtil.h: Removed NodeVector typedef.
47653         * xml/XPathValue.cpp:
47654         (WebCore::XPath::Value::Value):
47655         (WebCore::XPath::Value::toNodeSet):
47656         (WebCore::XPath::Value::toBoolean):
47657         (WebCore::XPath::Value::toNumber):
47658         (WebCore::XPath::Value::toString):
47659         * xml/XPathValue.h:
47660         (WebCore::XPath::Value::):
47661         (WebCore::XPath::Value::isNodeSet):
47662         Replacing NodeVector with NodeSet.
47664 2007-03-21  Mark Rowe  <mrowe@apple.com>
47666         Build fix.
47668         * bindings/objc/WebScriptObject.mm:
47669         (-[WebScriptObject methodForSelector:]):
47670         (-[WebScriptObject respondsToSelector:]):
47672 2007-03-21  Mark Rowe  <mrowe@apple.com>
47674         Reviewed by Tim Hatcher.
47676         Fix for http://bugs.webkit.org/show_bug.cgi?id=13129.
47677         Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup.
47679         Some cross-language scripting bridges use the presence of -(int)count to determine
47680         whether to treat objects as sequence-like.  All WebScriptObject's exposed this method
47681         which lead to non-collection WebScriptObject's being mishandled by PyObjC.  We now
47682         expose -count only when the object we wrap looks like a collection from a JavaScript
47683         point of view (eg, it has a length property).
47685         * bindings/objc/WebScriptObject.mm:
47686         (-[WebScriptObject _shouldRespondToCount]):
47687         (-[WebScriptObject methodForSelector:]):
47688         (-[WebScriptObject respondsToSelector:]):
47689         (-[WebScriptObject _count]):
47690         * bindings/objc/WebScriptObjectPrivate.h:
47692 2007-03-20  Darin Adler  <darin@apple.com>
47694         * page/EventHandler.cpp: (WebCore::EventHandler::handleMouseMoveEvent):
47695         Fix obvious typo in the change from last night -- forgot to assign to the variable.
47697 2007-03-20  Dave Hyatt  <hyatt@apple.com>
47699         Refactor fonts a bit for portability.
47700        
47701         Reviewed by aroben
47703         * platform/Font.cpp:
47704         (WebCore::Font::drawSimpleText):
47705         (WebCore::Font::drawGlyphBuffer):
47706         (WebCore::Font::floatWidthForSimpleText):
47707         * platform/Font.h:
47708         * platform/FontData.h:
47709         (WebCore::FontData::isSystemFont):
47710         (WebCore::FontData::scriptCache):
47711         * platform/GlyphBuffer.h:
47712         (WebCore::GlyphBuffer::add):
47714 2007-03-20  Anders Carlsson  <acarlsson@apple.com>
47716         Reviewed by Adam.
47718         Stub out a couple of CFNetwork backend functions.
47719         
47720         * platform/network/ResourceHandle.h:
47722 2007-03-19  Oliver Hunt  <oliver@apple.com>
47724         Reviewed by Ada.
47726         Protect against possibility of JS detaching a frame (and losing its view)
47727         midway through a mouse move.
47729         * page/EventHandler.cpp:
47730         (WebCore::EventHandler::handleMouseMoveEvent):
47732 2007-03-19  Alexey Proskuryakov  <ap@webkit.org>
47734         Reviewed by Darin.
47736         http://bugs.webkit.org/show_bug.cgi?id=13107
47737         XPath should raise an exception when trying to parse an unknown function
47739         Test: fast/xpath/invalid-functions.html
47741         * xml/XPathFunctions.cpp:
47742         (WebCore::XPath::createFunction): Return 0 if the function couldn't be created.
47743         * xml/XPathGrammar.y: Handle nulls returned from createFunction().
47745 2007-03-19  Adele Peterson  <adele@apple.com>
47747         Reviewed by Beth.
47749         Fix for http://bugs.webkit.org/show_bug.cgi?id=13087
47750         <rdar://problem/5064316> REGRESSION: Allow setting the checked attribute in js and in markup for unnamed radio buttons (dominos.com)
47752         Test: fast/forms/radio_checked_name.html
47754         We were matching a WinIE quirk that does not allow a user to check and uncheck an unnamed radio button.  But they still
47755         allow the checked attribute to be set in html, and changed in javascript.  So this change matches that behavior.
47757         * html/HTMLInputElement.cpp:
47758         (WebCore::HTMLInputElement::parseMappedAttribute): We no longer need a special call to setChecked when parsing the name
47759          attribute, since we setChecked will now work with unnamed radio buttons.
47760         (WebCore::HTMLInputElement::preDispatchEventHandler): Added comment.
47761         (WebCore::HTMLInputElement::setChecked): Don't check for the unnamed radio button case here.
47762         (WebCore::HTMLInputElement::postDispatchEventHandler): Don't call setChecked for unnamed radio buttons.
47763         (WebCore::HTMLInputElement::defaultEventHandler): ditto.
47765 2007-03-19  Adam Roben  <aroben@apple.com>
47767         Rubberstamped by Oliver.
47769         * bridge/JavaScriptStatistics.cpp: Added missing header for
47770         correctness.
47772 2007-03-19  Andrew Wellington  <proton@wiretapped.net>
47774         Reviewed by Maciej.
47776         Really set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
47778         * WebCore.xcodeproj/project.pbxproj:
47780 2007-03-19  Justin Garcia  <justin.garcia@apple.com>
47782         Reviewed by darin
47783         
47784         <rdar://problem/5071074> 
47785         REGRESSION: Links that aren't fully selected copy and paste as only text
47786         
47787         We stopped adding markup for all commonAncestorBlocks
47788         and the ancestors of lastClosed up to them because it 
47789         was adding a lot of unnecessary markup.
47791         * editing/markup.cpp:
47792         (WebCore::createMarkup): Also include markup for nodes
47793         up to an enclosing anchor.  Cleaned up the code for
47794         including special common ancestors a bit.
47796 2007-03-19  Nikolas Zimmermann  <zimmermann@kde.org>
47798         Reviewed by Lars Knoll.
47800         Fix crash when opening a SVG document which contains SVG elements, but no <svg> root element.
47801         Moving the mouse was crashing WebKit. Fixes svg/hixie/dynamic/006.xml.
47803         * rendering/RenderObject.cpp:
47804         (WebCore::RenderObject::updateHitTestResult):
47806 2007-03-19  Mitz Pettel  <mitz@webkit.org>
47808         Reviewed by Hyatt.
47810         - fix http://bugs.webkit.org/show_bug.cgi?id=13117
47811         REGRESSION (r14658): Flickering text fields when updating via javascript
47813         * page/Frame.cpp:
47814         (WebCore::Frame::forceLayout): Added a flag to allow partial relayout.
47815         * page/Frame.h:
47816         * page/mac/WebCoreFrameBridge.mm:
47817         (-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]): Allow partial relayout
47818         if not adjusting view size.
47819         (-[WebCoreFrameBridge needsLayout]): Changed to check for pending subtree
47820         layout instead of just whether the root needs layout.
47822 2007-03-18  Nikolas Zimmermann  <zimmermann@kde.org>
47824         Reviewed by Maciej.
47826         Make JS function calls on POD-types (ie. SVGLength) take effect.
47827         Calling ie. newValueInSpecifiedUnits on SVGLength works as expected.
47829         This worked fine before we switched to SVGLength POD type, so this
47830         can be considered as P1 regression fix.
47832         Partly fix svg/hixie/dynamic/005-broken.svg. We match Opera now though
47833         it's not yet completly fixed. Setting baseVal attribute on SVGAnimatedString
47834         doesn't work as expected - needs a seperated fix.
47836         * bindings/scripts/CodeGeneratorJS.pm:
47838 2007-03-19  Adele Peterson  <adele@apple.com>
47840         Reviewed by Adam.
47842         Adding comments and a little cleanup from my last checkin.
47844         * html/HTMLSelectElement.cpp:
47845         (WebCore::HTMLSelectElement::setSelectedIndex): Removed commented out assert.  Added comment about how we use onChange.
47846         (WebCore::HTMLSelectElement::selectAll): Added comment about how we use saveLastSelection and onChange.
47847         (WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
47848         (WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
47849         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
47850         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
47851         (WebCore::HTMLSelectElement::menuListOnChange): Added assert that usesMenuList() is true.
47852         (WebCore::HTMLSelectElement::listBoxOnChange): Added assert that usesMenuList() is false.
47853         (WebCore::HTMLSelectElement::saveLastSelection): Added early return for menu lists.
47855 2007-03-19  Mitz Pettel  <mitz@webkit.org>
47857         Reviewed by Tim Hatcher.
47859         - fix http://bugs.webkit.org/show_bug.cgi?id=13091
47860           REGRESSION (r20075): Wrong text style and pixel break in Apple Store Locator HUD
47862         Test: fast/innerHTML/additional-inline-style.html
47864         * editing/markup.cpp:
47865         (WebCore::startMarkup): Changed to add inline style based on CSS rules only
47866         in AnnotateForInterchange mode.
47868 2007-03-19  Zack Rusin  <zrusin@trolltech.com>
47870         Compile fix.
47872         * platform/qt/ScrollViewQt.cpp:
47873         (WebCore::ScrollView::update):
47875 2007-03-19  Adam Roben  <aroben@apple.com>
47877         Reviewed by Hyatt and Maciej.
47879         Renamed WebCoreJavaScript to JavaScriptStatistics and made it C++ as
47880         part of <rdar://problem/5071653>.
47882         All layout tests pass.
47884         * WebCore.exp: Updated.
47885         * WebCore.xcodeproj/project.pbxproj: Updated.
47886         * bridge/JavaScriptStatistics.cpp: Moved from
47887         bridge/mac/WebCoreJavaScript.mm, and converted to C++.
47888         (WebCore::collect):
47889         (WebCore::JavaScriptStatistics::objectCount):
47890         (WebCore::JavaScriptStatistics::interpreterCount):
47891         (WebCore::JavaScriptStatistics::protectedObjectCount):
47892         (WebCore::JavaScriptStatistics::rootObjectTypeCounts):
47893         (WebCore::JavaScriptStatistics::garbageCollect):
47894         (WebCore::JavaScriptStatistics::garbageCollectOnAlternateThread):
47895         (WebCore::JavaScriptStatistics::shouldPrintExceptions):
47896         (WebCore::JavaScriptStatistics::setShouldPrintExceptions):
47897         * bridge/JavaScriptStatistics.h: Added.
47898         * bridge/mac/WebCoreJavaScript.h: Removed.
47899         * bridge/mac/WebCoreJavaScript.mm: Removed.
47901 2007-03-18  Maciej Stachowiak  <mjs@apple.com>
47903         Reviewed by Mark.
47905         - avoid static construction (and global variable access) in a smarter, more portable way,
47906         to later enable MUTLI_THREAD mode to work on other platforms and compilers.
47907         
47908         * bindings/js/JSCustomXPathNSResolver.cpp:
47909         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
47910         * bindings/js/JSHTMLInputElementBase.cpp:
47911         (WebCore::JSHTMLInputElementBaseFunction::JSHTMLInputElementBaseFunction):
47912         * bindings/js/JSHTMLOptionElementConstructor.cpp:
47913         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
47914         * bindings/js/JSXMLHttpRequest.cpp:
47915         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
47916         * bindings/js/JSXSLTProcessor.cpp:
47917         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
47918         * bindings/js/kjs_dom.cpp:
47919         (KJS::DOMNamedNodeMap::getOwnPropertySlot):
47920         (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
47921         * bindings/js/kjs_events.cpp:
47922         (KJS::JSAbstractEventListener::handleEvent):
47923         * bindings/js/kjs_html.cpp:
47924         (KJS::HTMLElementFunction::HTMLElementFunction):
47925         (KJS::JSHTMLCollection::getOwnPropertySlot):
47926         * bindings/js/kjs_window.cpp:
47927         (KJS::ScheduledAction::execute):
47928         * bindings/objc/WebScriptObject.mm:
47929         * bindings/scripts/CodeGeneratorJS.pm:
47931 2007-03-18  Andrew Wellington  <proton@wiretapped.net>
47933         Reviewed by Mark Rowe
47935         Set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
47937         * WebCore.xcodeproj/project.pbxproj:
47939 2007-03-18  David Hyatt  <hyatt@apple.com>
47941         Fix for REGRESSION bug 13108, frame borders being painted when they shouldn't be.  Rework both frame borders
47942         and resizing to be more like other browsers.
47944         Reviewed by ggaren
47946         fast/frames/no-frame-borders.html
47948         * html/HTMLFrameElement.cpp:
47949         (WebCore::HTMLFrameElement::HTMLFrameElement):
47950         (WebCore::HTMLFrameElement::attach):
47951         (WebCore::HTMLFrameElement::parseMappedAttribute):
47952         * html/HTMLFrameElement.h:
47953         (WebCore::HTMLFrameElement::hasFrameBorder):
47954         * html/HTMLFrameElementBase.cpp:
47955         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
47956         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
47957         * html/HTMLFrameElementBase.h:
47958         * html/HTMLFrameSetElement.cpp:
47959         (WebCore::HTMLFrameSetElement::attach):
47960         * html/HTMLFrameSetElement.h:
47961         (WebCore::HTMLFrameSetElement::hasFrameBorder):
47962         * html/HTMLIFrameElement.cpp:
47963         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
47964         * rendering/RenderFrame.cpp:
47965         (WebCore::RenderFrame::edgeInfo):
47966         * rendering/RenderFrame.h:
47967         * rendering/RenderFrameSet.cpp:
47968         (WebCore::RenderFrameSet::paint):
47969         (WebCore::RenderFrameSet::GridAxis::resize):
47970         (WebCore::RenderFrameSet::fillFromEdgeInfo):
47971         (WebCore::RenderFrameSet::computeEdgeInfo):
47972         (WebCore::RenderFrameSet::edgeInfo):
47973         (WebCore::RenderFrameSet::layout):
47974         (WebCore::RenderFrameSet::startResizing):
47975         (WebCore::RenderFrameSet::continueResizing):
47976         (WebCore::RenderFrameSet::canResizeRow):
47977         (WebCore::RenderFrameSet::canResizeColumn):
47978         (WebCore::RenderFrameSet::splitPosition):
47979         (WebCore::RenderFrameSet::hitTestSplit):
47980         (WebCore::RenderFrameSet::dump):
47981         * rendering/RenderFrameSet.h:
47982         (WebCore::):
47983         (WebCore::FrameEdgeInfo::FrameEdgeInfo):
47984         (WebCore::FrameEdgeInfo::preventResize):
47985         (WebCore::FrameEdgeInfo::allowBorder):
47986         (WebCore::FrameEdgeInfo::setPreventResize):
47987         (WebCore::FrameEdgeInfo::setAllowBorder):
47989 2007-03-19  Mark Rowe  <mrowe@apple.com>
47991         Rubber-stamped by Brady.
47993         Update references to bugzilla.opendarwin.org with bugs.webkit.org.
47995         * ChangeLog:
47996         * WebCore.vcproj/WebCore/build-generated-files.sh:
47997         * manual-tests/ATSU-bad-layout.html:
47998         * manual-tests/accidental-strict-mode.html:
47999         * manual-tests/applet-param-no-name.html:
48000         * manual-tests/bidi-parens.html:
48001         * manual-tests/bugzilla-3855.html:
48002         * manual-tests/bugzilla-4840.html:
48003         * manual-tests/bugzilla-6821.html:
48004         * manual-tests/containing-block-position-chage.html:
48005         * manual-tests/contenteditable-link.html:
48006         * manual-tests/css3-cursor-fallback-quirks.html:
48007         * manual-tests/css3-cursor-fallback-strict.html:
48008         * manual-tests/custom-cursors.html:
48009         * manual-tests/dictionary-scrolled-iframe.html:
48010         * manual-tests/dom-manipulation-on-resize.html:
48011         * manual-tests/drag-image-to-address-bar.html:
48012         * manual-tests/empty-link-target.html:
48013         * manual-tests/empty-title-popup.html:
48014         * manual-tests/first-line-style-crash.html:
48015         * manual-tests/invalid-mouse-event.html:
48016         * manual-tests/left-overflow-repaint.html:
48017         * manual-tests/linkjump-3.html:
48018         * manual-tests/log-keypress-events.html:
48019         * manual-tests/named-window-blank-target.html:
48020         * manual-tests/plain-text-paste.html:
48021         * manual-tests/plugin-controller-datasource.html:
48022         * manual-tests/pre-tab-selection-rect.html:
48023         * manual-tests/redirection-target.html:
48024         * manual-tests/redraw-page-cache-visited-links.html:
48025         * manual-tests/reset-initiatedDrag.html:
48026         * manual-tests/resources/named-window-blank-target-step2.html:
48027         * manual-tests/resources/named-window-blank-target-step3.html:
48028         * manual-tests/resources/named-window-blank-target-step4.html:
48029         * manual-tests/resources/redraw-page-cache-visited-links-2.html:
48030         * manual-tests/scrollbar-hittest.html:
48031         * manual-tests/scrollbar-hittest2.html:
48032         * manual-tests/subview-click-assertion.html:
48033         * manual-tests/tabbing-input-google.html:
48034         * manual-tests/text-field-autoscroll.html:
48035         * manual-tests/textarea-after-stylesheet-link.html:
48036         * manual-tests/textarea-focus.html:
48037         * manual-tests/whitespace-pre-affinity.html:
48039 2007-03-18  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48041         Not reviewed - gdk build fix.
48043         * platform/gdk/ScrollViewGdk.cpp:
48044         (WebCore::ScrollView::update): add a stub
48046 2007-03-18  Brady Eidson  <beidson@apple.com>
48048         Reviewed by Hyatt
48050         http://bugs.webkit.org/show_bug.cgi?id=13111
48051         When stopped a load before it completes, partial images become the 
48052         broken image icon
48054         * loader/loader.cpp:
48055         (WebCore::Loader::didFail): Split off into a method that knows the 
48056           difference between failed and cancelled.  If a load is cancelled,
48057           don't call error() on the object - only remove it from the cache
48058         (WebCore::Loader::cancelRequests): Call didFail(loader, true)
48059         * loader/loader.h: Added didFail(SubresourceLoader*, bool cancelled)
48061 2007-03-18  Mitz Pettel  <mitz@webkit.org>
48063         Reviewed by Adele.
48065         - fix http://bugs.webkit.org/show_bug.cgi?id=13101
48066           REGRESSION (NativeTextField): Specifying word-wrap:break-word makes text field wrap
48068         Test: fast/forms/input-text-word-wrap.html
48070         * rendering/RenderTextControl.cpp:
48071         (WebCore::RenderTextControl::createInnerTextStyle): Force the inner block to
48072         'word-wrap:normal'.
48074 2007-03-18  Dan Waylonis  <waylonis@mac.com>
48076         Reviewed by Tim Hatcher.
48078         Fix http://bugs.webkit.org/show_bug.cgi?id=13005
48079         Bug 13005: WebScriptObject +throwException needs NULL check.
48081         Add checking for NULL interpreter before throwing exception.
48083         * bindings/objc/WebScriptObject.mm:
48084         (+[WebScriptObject throwException:]):
48086 2007-03-18  Geoffrey Garen  <ggaren@apple.com>
48088         Reviewed by Oliver Hunt.
48089         
48090         Fixed http://bugs.webkit.org/show_bug.cgi?id=13106
48091         REGRESSION: Incomplete document.all implementation breaks abtelectronics.com 
48092         (Style Change Through JavaScript Blanks Content)
48093         
48094         When indexing into collections, treat the empty string as an invalid argument,
48095         instead of the number 0.
48097         * bindings/js/kjs_html.cpp:
48098         (KJS::JSHTMLCollection::getOwnPropertySlot):
48099         (KJS::JSHTMLCollection::callAsFunction):
48100         (KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
48102 2007-03-18  David Hyatt  <hyatt@apple.com>
48104         Use fillRect instead of drawLine, since drawLine has some odd behavior (it's only used for borders).
48106         Reviewed by aroben
48108         * platform/graphics/IntRect.h:
48109         * rendering/RenderFrameSet.cpp:
48110         (WebCore::RenderFrameSet::paintColumnBorder):
48111         (WebCore::RenderFrameSet::paintRowBorder):
48113 2007-03-18  David Hyatt  <hyatt@apple.com>
48115         Change the frameborder color to be light gray for framesets.
48117         Reviewed by aroben
48119         * rendering/RenderFrameSet.cpp:
48120         (WebCore::borderFillColor):
48121         (WebCore::RenderFrameSet::paintColumnBorder):
48122         (WebCore::RenderFrameSet::paintRowBorder):
48124 2007-03-18  David Hyatt  <hyatt@apple.com>
48126         Make iframes work properly with frameborder="0".
48128         Reviewed by aroben
48130         * html/HTMLIFrameElement.cpp:
48131         (WebCore::HTMLIFrameElement::mapToEntry):
48132         (WebCore::HTMLIFrameElement::parseMappedAttribute):
48134 2007-03-18  David Hyatt  <hyatt@apple.com>
48136         Add a 2px border by default to <iframe>s for compatibility with other browsers.
48138         Reviewed by aroben
48140         * css/html4.css:
48142 2007-03-18  David Hyatt  <hyatt@apple.com>
48144         Move frame borders out of WebKit and into WebCore.
48146         Reviewed by aroben, olliej
48148         * bridge/mac/FrameViewMac.mm:
48149         * css/html4.css:
48150         * html/HTMLFrameSetElement.cpp:
48151         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
48152         (WebCore::HTMLFrameSetElement::mapToEntry):
48153         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
48154         (WebCore::HTMLFrameSetElement::attach):
48155         * html/HTMLFrameSetElement.h:
48156         (WebCore::HTMLFrameSetElement::hasBorderColor):
48157         * page/FrameView.cpp:
48158         (WebCore::FrameViewPrivate::FrameViewPrivate):
48159         * page/FrameView.h:
48160         * page/mac/WebCoreFrameBridge.h:
48161         * platform/graphics/IntRect.h:
48162         (WebCore::IntRect::topLeft):
48163         (WebCore::IntRect::topRight):
48164         (WebCore::IntRect::bottomLeft):
48165         (WebCore::IntRect::bottomRight):
48166         * rendering/RenderFrame.cpp:
48167         (WebCore::RenderFrame::viewCleared):
48168         * rendering/RenderFrameSet.cpp:
48169         (WebCore::borderStartEdgeColor):
48170         (WebCore::borderEndEdgeColor):
48171         (WebCore::RenderFrameSet::paintColumnBorder):
48172         (WebCore::RenderFrameSet::paintRowBorder):
48173         (WebCore::RenderFrameSet::paint):
48174         * rendering/RenderFrameSet.h:
48175         * rendering/RenderPartObject.cpp:
48176         (WebCore::RenderPartObject::viewCleared):
48177         * rendering/RenderView.cpp:
48178         (WebCore::RenderView::repaintViewRectangle):
48180 2007-03-17  David Hyatt  <hyatt@apple.com>
48182         Make onload do an explicit paint when a top-level document is ready (to ensure that a first paint always
48183         happens before any timers set by the onload can fire).
48185         Reviewed by aroben
48187         * dom/Document.cpp:
48188         (WebCore::Document::implicitClose):
48189         * platform/ScrollView.h:
48190         * platform/mac/ScrollViewMac.mm:
48191         (WebCore::ScrollView::update):
48193 2007-03-17  Dave Hyatt  <hyatt@apple.com>
48195         Prevent starvation of user input and painting when processing timers.
48196         If we are already in the processing of a custom timer message, don't allow that
48197         processing to do another PostMessage.  Force SetTimer to be used instead.
48198       
48199         Reviewed by ggaren
48201        * platform/win/SharedTimerWin.cpp:
48202         (WebCore::TimerWindowWndProc):
48203         (WebCore::setSharedTimerFireTime):
48205 2007-03-17  Geoffrey Garen  <ggaren@apple.com>
48207         Reviewed by Beth Dakin.
48209         Fixed <rdar://problem/5070967> REGRESSION (r20211): Repro crash when 
48210         closing View Source window
48211         
48212         I award myself 0 points, and may God have mercy on my soul.
48214         * bindings/js/kjs_proxy.cpp:
48215         (WebCore::KJSProxy::~KJSProxy):
48217 2007-03-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48219         Not reviewed - gdk build fix.
48221         * platform/gdk/TemporaryLinkStubs.cpp:
48222         (Pasteboard::writeURL):
48224 2007-03-17  David Hyatt  <hyatt@apple.com>
48226         Fix tiny PLT regression.  Don't examine the border/background data for RenderImage when images change
48227         unless we actually have a border/background.
48229         Reviewed by Brady
48231         * rendering/RenderImage.cpp:
48232         (WebCore::RenderImage::imageChanged):
48234 2007-03-17  Nikolas Zimmermann  <zimmermann@kde.org>
48236         Reviewed by Sam Weinig.
48238         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13046 (CSS styles on hover and focus are broken for <use>)
48239         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> CSS styles broken)
48240         Added test: svg/custom/use-css-events.svg
48242         In general this fixes the peepo.co.uk website.
48244         Forgot to pass the actual StyleChange to the recalcStyle() function,
48245         when calling it on the shadow tree root element.
48247         * ksvg2/svg/SVGUseElement.cpp:
48248         (WebCore::SVGUseElement::recalcStyle):
48250 2007-03-17  Timothy Hatcher  <timothy@apple.com>
48252         Reviewed by Mark Rowe.
48254         Made Version.xcconfig smarter when building for different configurations.
48255         Now uses the 522+ OpenSource version for Debug and Release, while using the
48256         full 522.4 version for Production builds. The system prefix is also computed
48257         based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
48259         * Configurations/Version.xcconfig:
48260         * Configurations/WebCore.xcconfig:
48262 2007-03-17  Antti Koivisto  <antti@apple.com>
48264         Reviewed by Adele.
48266         Fix http://bugs.webkit.org/show_bug.cgi?id=12595
48267         REGRESSION: Can't add item to cart at lnt.com (JS type error)
48268         <rdar://problem/4722863>
48269         
48270         Emulate Firefox behavior where form elements accessed by a name
48271         can be accessed with that name later even if the name changes or
48272         even if element is removed from the document.
48273         
48274         This is loosely based on Darin's earlier patch for the same problem but
48275         is much less expansive. It takes somewhat different approach to more closely
48276         mimic Firefox behavior. Includes expanded test case.
48278         * bindings/js/JSHTMLFormElementCustom.cpp:
48279         (WebCore::JSHTMLFormElement::canGetItemsForName):
48280             Use new the HTMLFormElement::getNamedElements() method
48281         (WebCore::JSHTMLFormElement::nameGetter):
48282             Use new the HTMLFormElement::getNamedElements() method
48283         * html/HTMLFormElement.cpp:
48284         (WebCore::HTMLFormElement::HTMLFormElement):
48285         (WebCore::HTMLFormElement::~HTMLFormElement):
48286         (WebCore::HTMLFormElement::elementForAlias):
48287         (WebCore::HTMLFormElement::addElementAlias):
48288             Maintain a map of known element aliases
48289         (WebCore::HTMLFormElement::getNamedElements):
48290             Get a list of elements matching the name, based both their
48291             current names and known aliases (earlier names).
48292             Keep the alias list in sync.
48293         * html/HTMLFormElement.h:
48295 2007-03-17  Adele Peterson  <adele@apple.com>
48297         Reviewed by Hyatt.
48299         Fix for <rdar://problem/4990050> REGRESSION: onchange gets fired when clicking on a programmatically selected element in a listbox
48300         http://bugs.webkit.org/show_bug.cgi?id=12725
48302         Test: updated fast/forms/listbox-onchange.html
48304         Added HTMLSelectElement::saveLastSelection that is called before changing a selection that could result
48305         in onChange being called.  m_lastOnChangeIndex and m_lastOnChangeSelection no longer have to be up-to date all the time, 
48306         they just have to be up-to-date before we execute an action that may trigger onChange.
48308         * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::setSelectedState): Added.
48309           The HTMLSelectElement will only set an option's selected state with this method.  This ensures
48310           that notifyOptionSelected won't get called when the call originates from the select element.
48311         * html/HTMLOptionElement.h:
48313         * html/HTMLSelectElement.cpp:
48314         (WebCore::HTMLSelectElement::deselectItems): Calls setSelectedState.
48315         (WebCore::HTMLSelectElement::setSelectedIndex): ditto. Don't update the last selection variables here.  Scroll to the new selection.
48316          The scrolling call used to only be in notifyOptionSelected.  There's no reason we shouldn't scroll when the selection is set through
48317          the HTMLSelectElement.
48318         (WebCore::HTMLSelectElement::setValue): Call setSelectedIndex to update all options selected state.
48319         (WebCore::HTMLSelectElement::restoreState): Call setSelectedState.
48320         (WebCore::HTMLSelectElement::selectAll): Call saveLastSelection before making the selection, and calling onChange.
48321         (WebCore::HTMLSelectElement::recalcListItems): Call setSelectedState.  Don't need to save selection here anymore, 
48322          since it will get saved before we call onChange.
48323         (WebCore::HTMLSelectElement::reset): ditto.
48324         (WebCore::HTMLSelectElement::dispatchFocusEvent): Added. Call saveLastSelection for menu lists, since onChange can be fired
48325          on blur.
48326         (WebCore::HTMLSelectElement::dispatchBlurEvent): Call menuListOnChange.
48327         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Call saveLastSelection before showing the popup window.
48328         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):  Call saveLastSelection during mousedown (to prepare for an 
48329          onchange during mouseup, or after autoscroll).
48330         (WebCore::HTMLSelectElement::updateListBoxSelection): Call setSelectedState.
48332         (WebCore::HTMLSelectElement::menuListOnChange): Added. Compares the m_lastOnChangeIndex to the selectedIndex().
48333         (WebCore::HTMLSelectElement::listBoxOnChange): Move the m_lastOnChangeSelection creation to saveLastSelection.
48334         (WebCore::HTMLSelectElement::saveLastSelection): Added. Sets m_lastOnChangeIndex or m_lastOnChangeSelection.
48335         * html/HTMLSelectElement.h:
48336         * platform/PopupMenu.h:
48338 2007-03-16  Oliver Hunt  <oliver@apple.com>
48340         Reviewed by Hyatt.
48342         The old canSaveAsWebArchive call was necessary as stand alone
48343         images used to be rendered by ImageDocument.
48345         Fixes rdar://problem/5061252
48347         * dom/Clipboard.cpp:
48348         * dom/Clipboard.h:
48349         (WebCore::Clipboard::setDragHasStarted):
48350         * page/DragClient.h:
48351         (WebCore::DragClient::declareAndWriteDragImage):
48352         * platform/mac/ClipboardMac.mm:
48353         (WebCore::ClipboardMac::declareAndWriteDragImage):
48355 2007-03-16  Anders Carlsson  <acarlsson@apple.com>
48357         Reviewed by Maciej.
48359         <rdar://problem/4869095>
48360         default content type changed for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
48361         
48362         * xml/xmlhttprequest.cpp:
48363         (WebCore::XMLHttpRequest::send):
48365 2007-03-16  Brady Eidson  <beidson@apple.com>
48367         Rubberstamped by Tim Hatcher
48369         Update the hash table header for Window object properties
48371         * bindings/js/kjs_window.cpp:
48373 2007-03-16  Brady Eidson  <beidson@apple.com>
48375         Reviewed by Anders
48377         <rdar://problem/5061826> and
48378         http://bugs.webkit.org/show_bug.cgi?id=12863
48379         Implement window.stop()
48381         * bindings/js/kjs_window.cpp:
48382         (KJS::WindowFunc::callAsFunction): Add case Window::Stop
48383         * bindings/js/kjs_window.h:
48384         (KJS::Window::): Add "Stop"
48386 2007-03-16  Geoffrey Garen  <ggaren@apple.com>
48388         Reviewed by Brady Eidson.
48390         Fixed dir creation to account for already existing dirs and missing leading
48391         dirs in path.
48392         
48393         * loader/icon/IconDatabase.cpp:
48394         (WebCore::makeAllDirectories):
48396 2007-03-16  David Hyatt  <hyatt@apple.com>
48398         Fix for 13084, assertion failure in the Cache.  Convert the client list
48399         to a HashCountedSet so that multiple refs and derefs are allowed.
48401         Fix RenderImage so that if it has the same image used as a background/border
48402         and as the foreground that it will repaint properly (can be tested using
48403         border-image and a foreground image).
48405         Optimize list marker so that it doesn't waste time in the base class method,
48406         since list markers don't support background or border images.
48408         Reviewed by andersca
48410         * ChangeLog:
48411         * loader/CachedResource.cpp:
48412         (WebCore::CachedResource::ref):
48413         * loader/CachedResource.h:
48414         * loader/CachedResourceClientWalker.cpp:
48415         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
48416         * loader/CachedResourceClientWalker.h:
48417         * rendering/RenderImage.cpp:
48418         (WebCore::RenderImage::imageChanged):
48419         * rendering/RenderListMarker.cpp:
48420         (WebCore::RenderListMarker::imageChanged):
48422 2007-03-16  Geoffrey Garen  <ggaren@apple.com>
48424         Reviewed by Anders Carlsson.
48425         
48426         Fixed <rdar://problem/5065399> REGRESSION: leaks in Frame::bindingRootObject 
48427         seen on buildbot
48429         The problem was that we were initializing the same WebScriptObject twice.
48430         This caused it to leak its original set of ivars.
48431         
48432         I think some refactoring could prevent this situation from arising in the
48433         first place, but I'm just adding a check at the call site for now, to do 
48434         the simplest thing.
48436         * bindings/objc/WebScriptObject.mm:
48437         (-[WebScriptObject _setImp:originRootObject:rootObject:]): Added ASSERTs
48438         against multiple calls.
48440         * bindings/objc/WebScriptObjectPrivate.h: Renamed _initializeWithObjectImp
48441         to setImp because "init" vs "initialize" was a too subtle indication that
48442         one was a Cocoa initializer and one was not.
48444 2007-03-16  Lars Knoll <lars@trolltech.com>
48446         don't use #import in .cpp files.
48448         * editing/qt/EditorQt.cpp:
48450 2007-03-16  Lars Knoll <lars@trolltech.com>
48452         Fix the Qt build once again.
48454         * platform/qt/PasteboardQt.cpp:
48455         (WebCore::Pasteboard::Pasteboard):
48456         (WebCore::Pasteboard::writeSelection):
48457         (WebCore::Pasteboard::plainText):
48458         (WebCore::Pasteboard::documentFragment):
48459         (WebCore::Pasteboard::writeURL):
48460         (WebCore::Pasteboard::writeImage):
48461         (WebCore::Pasteboard::clear):
48463 2007-03-15  Shrikant Gangoda  <shrikant.gangoda@celunite.com>
48465         Gdk build fix.
48467         * loader/gdk/FrameLoaderClientGdk.cpp:
48468         (WebCore::FrameLoaderClientGdk::blockedError):
48469         * loader/gdk/FrameLoaderClientGdk.h:
48471 2007-03-15  Beth Dakin  <bdakin@apple.com>
48473         Reviewed by Geoff.
48475         Fix for http://bugs.webkit.org/show_bug.cgi?id=13088 REGRESSION
48476         (r19761-19779): Copy image no longer includes image address 
48477         (rdar://5067927)
48479         writeURL() does not need an isImage parameter. Now that it accepts 
48480         the types as a parameter, we can just declare the appropriate image 
48481         types within writeImage and send them to writeURL(). Also, 
48482         declaring the types twice is what broke this.
48484         * platform/Pasteboard.h:
48485         * platform/mac/PasteboardMac.mm:
48486         (WebCore::Pasteboard::writeURL):
48487         (WebCore::Pasteboard::writeImage):
48489 2007-03-15  Adele Peterson  <adele@apple.com>
48491         Reviewed by Kevin Decker.
48493         Fix for <rdar://problem/4926179> Text in menulist control should never update if menu is open
48495         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
48496           Only setTextFromOption if the menu isn't visible.
48498 2007-03-15  Brady Eidson  <beidson@apple.com>
48500         Reviewed by Oliver
48502         A few platform specific tweaks
48504         * platform/cf/RetainPtr.h:
48505         (WebCore::RetainPtr::releaseRef): Fixed releaseRef to work with CF
48506         
48507         * platform/network/ResourceHandle.h: Added a "releaseRef" style call
48509 2007-03-15  Maciej Stachowiak  <mjs@apple.com>
48511         Reviewed by Geoff and Steve.
48513         * config.h: Remove unneeded hack.
48515 2007-03-15  Justin Garcia  <justin.garcia@apple.com>
48517         Reviewed by john
48518         
48519         <rdar://problem/5062376> 
48520         REGRESSION: In Mail and Gmail, can't change alignment to text after it has been applied
48521         
48522         Bring back the remove step in applyBlockStyle.  It's 
48523         necessary because addBlockStyleIfNeeded assumes that 
48524         the properties it adds aren't already on the block that 
48525         it adds them to.
48527         * editing/ApplyStyleCommand.cpp:
48528         (WebCore::ApplyStyleCommand::applyBlockStyle): 
48529         Bring back the remove step (added a testcase).
48530         Don't do the add step if m_removeOnly is true (no testcase
48531         because there aren't any clients using removeOnly functionality
48532         to remove styles yet, only styled elemets).
48533         Moved the code for creating new blocks up one level
48534         to this function so that we can pass blocks to removeCSSStyle.
48535         When converting VisiblePositions to indices and vice versa,
48536         use the highest node in the shadow tree if we're in one as
48537         the scope (working on a testcase).
48538         (WebCore::ApplyStyleCommand::addBlockStyle): Moved code to
48539         applyBlockStyle.
48540         * editing/ApplyStyleCommand.h: 
48542 2007-03-15  Brady Eidson  <beidson@apple.com>
48544         Reviewed by Maciej
48546         <rdar://problem/4429701>
48547         Implements a port blocking black list that matches Firefox's
48549         * loader/FrameLoader.cpp:
48550         (WebCore::FrameLoader::blockedError): Call through to the client for blockedError 
48551         * loader/FrameLoader.h:
48553         * loader/FrameLoaderClient.h: Get the "port blocked" error for the current platform
48555         * loader/ResourceLoader.cpp:
48556         (WebCore::ResourceLoader::wasBlocked): ResourceHandleClient method to pass on the didFail(error)
48557         (WebCore::ResourceLoader::blockedError): Following the pattern of "CancelledError()", get the 
48558           error to fail with for the didFail() call
48559         * loader/ResourceLoader.h:
48561         * platform/graphics/svg/SVGImageEmptyClients.h:
48562         (WebCore::SVGEmptyFrameLoaderClient::blockedError): Added stub
48564         * platform/network/ResourceHandle.cpp:
48565         (WebCore::ResourceHandle::create): If the port is blocked, create the handle but schedule it for
48566           deferred failure on a timer
48567         (WebCore::ResourceHandle::scheduleBlockedFailure): Do the timer scheduling
48568         (WebCore::ResourceHandle::fireBlockedFailure): Fire the timer here
48569         (WebCore::ResourceHandle::portAllowed): Implements checking of Mozilla's
48570         * platform/network/ResourceHandle.h:
48571         * platform/network/ResourceHandleClient.h:
48572         (WebCore::ResourceHandleClient::wasBlocked): Virtual for clients to get the "blocked" message
48574 2007-03-15  Beth Dakin  <bdakin@apple.com>
48576         Reviewed by Hyatt.
48578         Fix for <rdar://problem/5065396> REGRESSION: leaks in 
48579         RenderBlock::layoutInlineChildren seen on buildbot
48581         This leak appeared after http://trac.webkit.org/projects/webkit/
48582         changeset/20188. This change shifted line boxes around in 
48583         removeChild(). But since removeChild() calls 
48584         setNeedsLayoutAndMinMaxRecalc(), all of the line boxes will be 
48585         removed once we actually lay out anyway. So this patch fixes the 
48586         leak by deleting the line boxes instead of shifting them around. 
48588         * editing/IndentOutdentCommand.cpp:
48589         (WebCore::IndentOutdentCommand::outdentParagraph): Call into 
48590         updateLayout(). This fixes an assertion I got in editing/
48591         execCommand/4976800.html This is very similar to the line box fix I 
48592         made recently (http://trac.webkit.org/projects/webkit/changeset/
48593         20177). We need to update layout before relying on VisiblePositions 
48594         after removing a node.
48595         * rendering/RenderBlock.cpp:
48596         (WebCore::RenderBlock::deleteLinesForBlock): New helper function 
48597         since this functionality is needed in three places now.
48598         (WebCore::RenderBlock::makeChildrenNonInline): Call into new 
48599         deleteLinesForBlock().
48600         (WebCore::RenderBlock::removeChild): Same.
48601         * rendering/RenderBlock.h:
48603 2007-03-15  Timothy Hatcher  <timothy@apple.com>
48605         Reviewed by John.
48607         * Factored out most of our common build settings into .xcconfig files. Anything that was common in
48608           each build configuration was factored out into the shared .xcconfig file.
48609         * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
48610         * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
48611         * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
48613         * Configurations/Base.xcconfig: Added.
48614         * Configurations/DebugRelease.xcconfig: Added.
48615         * Configurations/Version.xcconfig: Added.
48616         * Configurations/WebCore.xcconfig: Added.
48617         * Info.plist:
48618         * WebCore.xcodeproj/project.pbxproj:
48620 2007-03-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48622         Not reviewed - gdk build fixes.
48624         * platform/gdk/EditorClientGdk.cpp:
48625         (WebCore::EditorClientGdk::handleKeypress):
48626         * platform/graphics/cairo/ImageSourceCairo.cpp:
48627         (WebCore::ImageSource::setData):
48628         * platform/graphics/gdk/ImageGdk.cpp:
48629         (WebCore::Image::loadPlatformResource):
48631 2007-03-14  Justin Garcia  <justin.garcia@apple.com>
48633         Reviewed by john
48634         
48635         ~2x speed up of 5k rich text paste:
48636         http://shakespeare.mit.edu/hamlet/full.html        
48638         * editing/ReplaceSelectionCommand.cpp:
48639         (WebCore::ReplaceSelectionCommand::doApply): Remove the top 
48640         level style span if it's unnecessary before inserting
48641         into the document, it's faster than doing it after.
48642         * editing/ReplaceSelectionCommand.h: Exposed 
48643         ReplacementFragment::removeNodePreservingChildren so that
48644         the style span can be removed using non-undoable removes,
48645         like the rest of the removes done on the ReplacementFragment.
48646         * editing/markup.cpp:
48647         (WebCore::createMarkup): Make the style span the top level
48648         element, otherwise it's useless.  This also facilitates the
48649         optimization mentioned above.
48650         When including markup for a fully selected root, include markup
48651         for all the nodes beneath that fully selected root, to preserve 
48652         the structure and appearance of the copied markup.  Did this
48653         by merging with the code for adding markup for descendants of
48654         special commonAncestorBlocks.
48656 2007-03-15  Beth Dakin  <bdakin@apple.com>
48658         Rubber-stamped by Adele.
48660         Rolling out http://trac.webkit.org/projects/webkit/changeset/20148 
48661         (which is a fix for http://bugs.webkit.org/show_bug.cgi?id=12595 
48662         and rdar://4722863) because it causes a horrible memory-trasher. 
48664         * bindings/js/JSHTMLFormElementCustom.cpp:
48665         (WebCore::JSHTMLFormElement::canGetItemsForName):
48666         (WebCore::JSHTMLFormElement::nameGetter):
48667         * bindings/js/kjs_dom.cpp:
48668         (KJS::):
48669         (KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
48670         (KJS::DOMNamedNodesCollection::lengthGetter):
48671         (KJS::DOMNamedNodesCollection::indexGetter):
48672         (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
48673         * bindings/js/kjs_dom.h:
48674         (KJS::DOMNamedNodesCollection::classInfo):
48675         * bindings/js/kjs_html.cpp:
48676         (KJS::JSHTMLCollection::getNamedItems):
48677         * dom/ChildNodeList.cpp:
48678         (WebCore::ChildNodeList::ChildNodeList):
48679         (WebCore::ChildNodeList::length):
48680         (WebCore::ChildNodeList::item):
48681         (WebCore::ChildNodeList::nodeMatches):
48682         * dom/ChildNodeList.h:
48683         * dom/NameNodeList.cpp:
48684         (WebCore::NameNodeList::NameNodeList):
48685         (WebCore::NameNodeList::item):
48686         (WebCore::NameNodeList::nodeMatches):
48687         * dom/NameNodeList.h:
48688         (WebCore::NameNodeList::rootNodeAttributeChanged):
48689         * dom/Node.cpp:
48690         (WebCore::TagNodeList::TagNodeList):
48691         (WebCore::TagNodeList::nodeMatches):
48692         (WebCore::Node::registerNodeList):
48693         (WebCore::Node::unregisterNodeList):
48694         * dom/Node.h:
48695         * dom/NodeList.cpp:
48696         (WebCore::NodeList::NodeList):
48697         (WebCore::NodeList::~NodeList):
48698         (WebCore::NodeList::recursiveLength):
48699         (WebCore::NodeList::itemForwardsFromCurrent):
48700         (WebCore::NodeList::itemBackwardsFromCurrent):
48701         (WebCore::NodeList::recursiveItem):
48702         (WebCore::NodeList::itemWithName):
48703         (WebCore::NodeList::rootNodeChildrenChanged):
48704         * dom/NodeList.h:
48705         (WebCore::NodeList::rootNodeAttributeChanged):
48706         * html/HTMLFormElement.cpp:
48707         (WebCore::HTMLFormElement::HTMLFormElement):
48708         (WebCore::HTMLFormElement::~HTMLFormElement):
48709         (WebCore::HTMLFormElement::formData):
48710         (WebCore::HTMLFormElement::parseMappedAttribute):
48711         (WebCore::HTMLFormElement::removeFormElement):
48712         * html/HTMLFormElement.h:
48713         * html/HTMLGenericFormElement.cpp:
48714         (WebCore::HTMLGenericFormElement::parseMappedAttribute):
48715         (WebCore::HTMLGenericFormElement::insertedIntoTree):
48716         * html/HTMLGenericFormElement.h:
48717         * html/HTMLInputElement.cpp:
48718         (WebCore::HTMLInputElement::parseMappedAttribute):
48720 2007-03-15  Geoffrey Garen  <ggaren@apple.com>
48722         Added an assert to help catch a bug. Hopefully someone will hit it!
48723         
48724         * bindings/js/kjs_proxy.cpp:
48725         (WebCore::KJSProxy::~KJSProxy):
48727 2007-03-14  Oliver Hunt  <oliver@apple.com>
48729         Reviewed by Adele.
48731         Fix for rdar://problem/5061737.
48732         
48733         This was a regression from the original Objective-C -> C++ conversion
48734         for the drag logic.  We don't need to call Range::startNode as we just
48735         need the document that contains the range.   
48737         * page/DragController.cpp:
48738         (WebCore::documentFragmentFromDragData):
48740 2007-03-14  Mitz Pettel  <mitz@webkit.org>
48742         Reviewed by Hyatt.
48744         - http://bugs.webkit.org/show_bug.cgi?id=13071
48745           REGRESSION: Plain text files no longer wrap lines longer than the width of the browser window
48747         Test: fast/loader/text-document-wrapping.html
48749         * loader/TextDocument.cpp:
48750         (WebCore::TextTokenizer::write): Specified word-wrap:break-word for the <pre> element.
48752 2007-03-14  Mitz Pettel  <mitz@webkit.org>
48754         Reviewed by Hyatt.
48756         - fix http://bugs.webkit.org/show_bug.cgi?id=13072
48757           REGRESSION (r15617): white-space: pre-wrap breaks off the last character of a wide word
48759         Test: fast/text/whitespace/pre-wrap-last-char.html
48761         * rendering/bidi.cpp:
48762         (WebCore::RenderBlock::findNextLineBreak): Undid the change from r15617.
48764 2007-03-14  David Hyatt  <hyatt@apple.com>
48766         Add asserts to help catch double refs and double derefs of CachedResources.
48768         Reviewed by mjs
48770         * loader/CachedResource.cpp:
48771         (WebCore::CachedResource::ref):
48772         (WebCore::CachedResource::deref):
48774 2007-03-14  Alice Liu  <alice.liu@apple.com>
48776         Rubber-stamped by Hyatt.
48778         Adding null check to prevent the crash that happens on 2nd run of iBench HTML load test
48780         * loader/icon/IconDataCache.cpp:
48781         (WebCore::IconDataCache::writeToDatabase):
48783 === Safari-5522.4 ===
48785 2007-03-14  Adele Peterson  <adele@apple.com>
48787         Reviewed by Adam.
48789         Fix for <rdar://problem/5062898> REGRESSION: autocomplete window in text fields doesn't come up
48791         When we moved the initialization of a bunch of variables in the HTMLFormElement constructor, m_autocomplete accidently got initialized to false.
48793         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::HTMLFormElement):
48795 2007-03-14  Steve Falkenburg  <sfalken@apple.com>
48797         Reviewed by Adam.
48799         Added missing null check in case this is called on a subframe
48800         that hasn't started loading.
48802         * page/Frame.cpp:
48803         (WebCore::Frame::setMarkedTextMatchesAreHighlighted): Check for a null document.
48805 2007-03-14  Antti Koivisto  <antti@apple.com>
48807         Reviewed by Geoff.
48809         Fix http://bugs.webkit.org/show_bug.cgi?id=13060
48810         REGRESSION: Repro ASSERT failure in Cache::adjustSize running layout tests
48811         <rdar://5060208>
48812         
48813         Script evaluation may have dereffed the CachedScript object already, causing double deref and
48814         eventually m_liveResourcesSize underflow.
48816         * html/HTMLScriptElement.cpp:
48817         (WebCore::HTMLScriptElement::notifyFinished):
48819 2007-03-14  Adele Peterson  <adele@apple.com>
48821         Reviewed by Darin.
48823         Added InsertTab, InsertBacktab, InsertLineBreak, and InsertNewline to the editing command table.
48824         Added Event parameter to execCommand, and to all of the enabled and exec functions.  Right now,
48825         the event is only used by the newly added commands.  But in the future, many (and possibly all) of
48826         these editing commands will need to consider the event so they are applied to the correct selection.
48828         * WebCore.exp:
48829         * editing/Editor.cpp:
48830         (WebCore::execCopy):
48831         (WebCore::execCut):
48832         (WebCore::execDelete):
48833         (WebCore::execBackwardDelete):
48834         (WebCore::execForwardDelete):
48835         (WebCore::execMoveBackward):
48836         (WebCore::execMoveBackwardAndModifySelection):
48837         (WebCore::execMoveUpByPageAndModifyCaret):
48838         (WebCore::execMoveDown):
48839         (WebCore::execMoveDownAndModifySelection):
48840         (WebCore::execMoveForward):
48841         (WebCore::execMoveForwardAndModifySelection):
48842         (WebCore::execMoveDownByPageAndModifyCaret):
48843         (WebCore::execMoveLeft):
48844         (WebCore::execMoveLeftAndModifySelection):
48845         (WebCore::execMoveRight):
48846         (WebCore::execMoveRightAndModifySelection):
48847         (WebCore::execMoveToBeginningOfDocument):
48848         (WebCore::execMoveToBeginningOfDocumentAndModifySelection):
48849         (WebCore::execMoveToBeginningOfSentence):
48850         (WebCore::execMoveToBeginningOfSentenceAndModifySelection):
48851         (WebCore::execMoveToBeginningOfLine):
48852         (WebCore::execMoveToBeginningOfLineAndModifySelection):
48853         (WebCore::execMoveToBeginningOfParagraph):
48854         (WebCore::execMoveToBeginningOfParagraphAndModifySelection):
48855         (WebCore::execMoveToEndOfDocument):
48856         (WebCore::execMoveToEndOfDocumentAndModifySelection):
48857         (WebCore::execMoveToEndOfSentence):
48858         (WebCore::execMoveToEndOfSentenceAndModifySelection):
48859         (WebCore::execMoveToEndOfLine):
48860         (WebCore::execMoveToEndOfLineAndModifySelection):
48861         (WebCore::execMoveToEndOfParagraph):
48862         (WebCore::execMoveToEndOfParagraphAndModifySelection):
48863         (WebCore::execMoveParagraphBackwardAndModifySelection):
48864         (WebCore::execMoveParagraphForwardAndModifySelection):
48865         (WebCore::execMoveUp):
48866         (WebCore::execMoveUpAndModifySelection):
48867         (WebCore::execMoveWordBackward):
48868         (WebCore::execMoveWordBackwardAndModifySelection):
48869         (WebCore::execMoveWordForward):
48870         (WebCore::execMoveWordForwardAndModifySelection):
48871         (WebCore::execMoveWordLeft):
48872         (WebCore::execMoveWordLeftAndModifySelection):
48873         (WebCore::execMoveWordRight):
48874         (WebCore::execMoveWordRightAndModifySelection):
48875         (WebCore::execPaste):
48876         (WebCore::execSelectAll):
48877         (WebCore::execToggleBold):
48878         (WebCore::execToggleItalic):
48879         (WebCore::execRedo):
48880         (WebCore::execUndo):
48881         (WebCore::execInsertTab):
48882         (WebCore::execInsertBacktab):
48883         (WebCore::execInsertNewline):
48884         (WebCore::execInsertLineBreak):
48885         (WebCore::enabled):
48886         (WebCore::canPaste):
48887         (WebCore::hasEditableSelection):
48888         (WebCore::hasEditableRangeSelection):
48889         (WebCore::hasRangeSelection):
48890         (WebCore::hasRichlyEditableSelection):
48891         (WebCore::canRedo):
48892         (WebCore::canUndo):
48893         (WebCore::CommandEntry::):
48894         (WebCore::Editor::toggleBold):
48896         (WebCore::Editor::execCommand): Added optional event parameter.
48897         (WebCore::Editor::insertText): Added.  Calls handleTextInputEvent.
48898         (WebCore::Editor::insertTextWithoutSendingTextEvent): Renamed from insertText.
48899          Performs the actual insertion without dispatching any event.
48900         * editing/Editor.h:
48901         * page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
48902           Call insertTextWithoutSendingTextEvent.
48904 2007-03-14  Justin Garcia  <justin.garcia@apple.com>
48906         Reviewed by darin
48907         
48908         ~3x speedup pasting 5k lines of rich text:
48909         http://shakespeare.mit.edu/hamlet/full.html
48910         ~2x speedup pasting 10k lines of plain text
48911         
48912         * css/CSSComputedStyleDeclaration.cpp:
48913         (WebCore::computedStyle): Added for convenience.
48914         * css/CSSComputedStyleDeclaration.h:
48915         * editing/ReplaceSelectionCommand.cpp:
48916         (WebCore::ReplaceSelectionCommand::removeRedundantStyles):
48917         The code that pushed down the top level style span had
48918         a bug in it that made it do unnecessary work.  Instead of
48919         fixing the bug I removed the code because it was used to 
48920         help see more redundancies in second level style spans, but 
48921         createMarkup now *only* creates a top level style span.
48922         Only remove redundant styles from style spans and only remove
48923         unstyled elements if they are style spans.  FF doesn't
48924         remove redundant styles from elements, or remove redundant 
48925         font tags on copy/paste.  We could offer this functionality 
48926         through a separate "cleanup" command.
48927         * editing/markup.cpp:
48928         (WebCore::createMarkup): Only add markup for ancestors of 
48929         lastClosed if we're including markup for acommonAncestorBlock 
48930         (we do this for commonAncestorBlocks like tables and lists),
48931         otherwise it's unnecessary/redundant.
48933 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
48935         Reviewed by Ada.
48937         Make sure to call ResourceLoader::didReceiveData to ensure that there's a shared buffer with the resource
48938         data, since SubresourceLoaderClients now make use of that buffer.
48939         
48940         * loader/SubresourceLoader.cpp:
48941         (WebCore::SubresourceLoader::didReceiveData):
48943 2007-03-14  Administrator  <acarlsson@apple.com>
48945         Get the size from the shared buffer.
48946         
48947         * platform/graphics/cg/ImageSourceCG.cpp:
48948         (WebCore::ImageSource::setData):
48949         * platform/graphics/cg/PDFDocumentImage.cpp:
48950         (WebCore::PDFDocumentImage::dataChanged):
48952 2007-03-14  Mitz Pettel  <mitz@webkit.org>
48954         Reviewed by Hyatt, thumbs up by Darin.
48956         - fix http://bugs.webkit.org/show_bug.cgi?id=12782
48957           Reproducible crash in BidiContext::deref
48959         Test: fast/dynamic/anonymous-block-orphaned-lines.html
48961         * rendering/InlineBox.cpp:
48962         (WebCore::InlineBox::root): Added an assertion that we return a root inline box.
48963         * rendering/RenderBlock.cpp:
48964         (WebCore::RenderBlock::removeChild): Added code to adopt the line boxes of
48965         anonymous blocks being destroyed instead of leaving them orphaned, which
48966         is what caused this crash. The boxes will be deleted on the next layout, but
48967         this ensures consistency in the mean time.
48969 2007-03-14  Lars Knoll <lars@trolltech.com>
48971         Reviewed by Antti.
48973         Fix the Qt build.
48974         Add a getter to SharedBuffer that returns a reference to the internal
48975         Vector to avoid an extra copy of the data.
48977         * platform/SharedBuffer.h:
48978         (WebCore::SharedBuffer::buffer):
48979         * platform/graphics/qt/ImageQt.cpp:
48980         (WebCore::Image::loadPlatformResource):
48981         * platform/graphics/qt/ImageSourceQt.cpp:
48982         (WebCore::detectImageFormat):
48983         (WebCore::createDecoder):
48984         (WebCore::ImageSource::setData):
48986 2007-03-14  Antti Koivisto  <antti@apple.com>
48988         Reviewed by Mitz.
48989         
48990         Fix <rdar://problem/5058774>
48991         REGRESSION: In Mail, caret appears oversized when typing in a To Do note
48992         
48993         Horizontal and vertical were switched. Was regression from
48994         http://trac.webkit.org/projects/webkit/changeset/20103
48996         * rendering/RootInlineBox.cpp:
48997         (WebCore::RootInlineBox::addHighlightOverflow):
48999 2007-03-14  David Hyatt  <hyatt@apple.com>
49001         Tweak the data() functions of stylesheets and scripts to be internally consistent.
49003         * loader/CachedCSSStyleSheet.cpp:
49004         (WebCore::CachedCSSStyleSheet::data):
49005         * loader/CachedScript.cpp:
49006         (WebCore::CachedScript::data):
49007         * loader/CachedXSLStyleSheet.cpp:
49008         (WebCore::CachedXSLStyleSheet::data):
49010 2007-03-14  David Hyatt  <hyatt@apple.com>
49012         Fix Radar 5050688.  
49014         For large animated GIFs, destroy and recreate the source for every animation frame.  This keeps
49015         the memory consumption down while giant images are animating.
49017         Reviewed by andersca
49019         * platform/graphics/BitmapImage.cpp:
49020         (WebCore::BitmapImage::BitmapImage):
49021         (WebCore::BitmapImage::destroyDecodedData):
49022         (WebCore::BitmapImage::dataChanged):
49023         (WebCore::BitmapImage::advanceAnimation):
49024         * platform/graphics/BitmapImage.h:
49026 2007-03-14  David Hyatt  <hyatt@apple.com>
49028         Make sure to use CFDataCreateWithBytesNoCopy where we can.
49030         Reviewed by andersca
49032         * platform/graphics/cg/ImageSourceCG.cpp:
49033         (WebCore::ImageSource::setData):
49034         * platform/graphics/cg/PDFDocumentImage.cpp:
49035         (WebCore::PDFDocumentImage::dataChanged):
49037 2007-03-13  David Hyatt  <hyatt@apple.com>
49039         Fix for bugzilla bug 13050 and also radar p1 5050645.
49041         This patch reworks resource loading to avoid having redundant buffers in the icon database and in cached
49042         images in the WebCore cache.  It also avoids overcopying in top-level image documents and in the icon
49043         database.
49045         There is now only one SharedBuffer for a resource and everybody observes that buffer now instead of ever
49046         making their own.  Even ImageIO uses the SharedBuffer while decoding.
49048         The page in 13050 dropped from 145mb down to 45mb of memory use with this change for a stunning savings
49049         of 100mb.
49051         Reviewed by olliej, mjs
49053         * WebCore.exp:
49054         * loader/CachedCSSStyleSheet.cpp:
49055         (WebCore::CachedCSSStyleSheet::data):
49056         * loader/CachedCSSStyleSheet.h:
49057         * loader/CachedImage.cpp:
49058         (WebCore::CachedImage::data):
49059         * loader/CachedImage.h:
49060         * loader/CachedResource.cpp:
49061         (WebCore::CachedResource::CachedResource):
49062         (WebCore::CachedResource::~CachedResource):
49063         * loader/CachedResource.h:
49064         (WebCore::CachedResource::data):
49065         * loader/CachedScript.cpp:
49066         (WebCore::CachedScript::data):
49067         * loader/CachedScript.h:
49068         * loader/CachedXSLStyleSheet.cpp:
49069         (WebCore::CachedXSLStyleSheet::data):
49070         * loader/CachedXSLStyleSheet.h:
49071         * loader/DocLoader.cpp:
49072         (WebCore::DocLoader::checkCacheObjectStatus):
49073         * loader/ImageDocument.cpp:
49074         (WebCore::ImageTokenizer::writeRawData):
49075         (WebCore::ImageTokenizer::finish):
49076         * loader/icon/IconDataCache.cpp:
49077         (WebCore::IconDataCache::setImageData):
49078         (WebCore::IconDataCache::writeToDatabase):
49079         * loader/icon/IconDataCache.h:
49080         * loader/icon/IconDatabase.cpp:
49081         (WebCore::IconDatabase::imageDataForIconURL):
49082         (WebCore::IconDatabase::iconForPageURL):
49083         (WebCore::IconDatabase::setIconDataForIconURL):
49084         (WebCore::IconDatabase::setHaveNoIconForIconURL):
49085         (WebCore::IconDatabase::imageDataForIconURLQuery):
49086         * loader/icon/IconDatabase.h:
49087         * loader/icon/IconLoader.cpp:
49088         (WebCore::IconLoader::startLoading):
49089         (WebCore::IconLoader::didReceiveResponse):
49090         (WebCore::IconLoader::didReceiveData):
49091         (WebCore::IconLoader::didFail):
49092         (WebCore::IconLoader::finishLoading):
49093         (WebCore::IconLoader::clearLoadingState):
49094         * loader/icon/IconLoader.h:
49095         * loader/icon/SQLStatement.cpp:
49096         (WebCore::SQLStatement::getColumnBlobAsVector):
49097         (WebCore::SQLStatement::isExpired):
49098         * loader/icon/SQLStatement.h:
49099         * loader/loader.cpp:
49100         (WebCore::Loader::didFinishLoading):
49101         (WebCore::Loader::didReceiveData):
49102         * page/mac/WebCoreFrameBridge.mm:
49103         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
49104         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
49105         * platform/SharedBuffer.h:
49106         (WebCore::SharedBuffer::isEmpty):
49107         * platform/graphics/BitmapImage.cpp:
49108         (WebCore::BitmapImage::destroyDecodedData):
49109         (WebCore::BitmapImage::dataChanged):
49110         * platform/graphics/BitmapImage.h:
49111         * platform/graphics/Image.cpp:
49112         (WebCore::Image::setData):
49113         * platform/graphics/Image.h:
49114         (WebCore::Image::dataChanged):
49115         (WebCore::Image::data):
49116         * platform/graphics/ImageSource.h:
49117         * platform/graphics/cg/ImageSourceCG.cpp:
49118         (WebCore::ImageSource::setData):
49119         * platform/graphics/cg/PDFDocumentImage.cpp:
49120         (WebCore::PDFDocumentImage::dataChanged):
49121         * platform/graphics/cg/PDFDocumentImage.h:
49122         * platform/graphics/mac/ImageMac.mm:
49123         (WebCore::Image::loadPlatformResource):
49124         * platform/graphics/svg/SVGImage.cpp:
49125         (WebCore::SVGImage::setData):
49126         * platform/mac/PasteboardMac.mm:
49127         (WebCore::fileWrapperForImage):
49129 2007-03-13  Justin Garcia  <justin.garcia@apple.com>
49131         Reviewed by darin
49132         
49133         <rdar://problem/5046875> 
49134         Gmail Editor: Applying alignment to selected text in message also applies alignment to signature
49136         * editing/ApplyStyleCommand.cpp:
49137         (WebCore::ApplyStyleCommand::doApply): Don't call applyBlockStyle unless
49138         there is a block style to apply.
49139         (WebCore::ApplyStyleCommand::applyBlockStyle): Don't do the remove step.
49140         It was unnecessary and removed properties from blocks that could contain 
49141         content outside the range being operated on (added a testcase).
49142         (WebCore::ApplyStyleCommand::addBlockStyleIfNeeded): Used an early return
49143         instead of if-nesting.
49144         * editing/ApplyStyleCommand.h:
49145         * editing/CompositeEditCommand.cpp:
49146         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
49147         Return the new block, if one was created.  Use moveParagraphs to move
49148         paragraphs into the new block, instead of moving nodes.  The old code moved
49149         too much (added a testcase).
49150         * editing/CompositeEditCommand.h:
49152 2007-03-13  Oliver Hunt  <oliver@apple.com>
49154         Reviewed by Brady.
49156         To fix <rdar://problem/5044366> we now pass a NSString
49157         representation of the URL extracted with _web_originalDataAsString
49158         instead of relying on [NSURL absoluteString] in the bridge
49160         * page/mac/WebCoreFrameBridge.h:
49161         * page/mac/WebCoreFrameBridge.mm:
49162         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
49164 2007-03-13  Brady Eidson  <beidson@apple.com>
49166         Reviewed by Anders
49168         <rdar://problem/5048818> - REGRESSION: Incompletely loaded resources being saved to the object cache
49170         Due to a subtle change in loader behavior back in 10904, we would stop all loaders before calling 
49171         didFail() on them in the Cache loader.  As a result, we basically cleared all of the Subresource Loaders 
49172         out of the Cache loader before more properly failing them as errored out.  The result?  Partially loaded
49173         resources being cached.
49174         
49175         Since Loader::didFail() both calls error() on the object *and* removes the loader, the solution is to call 
49176         didFail() for all cancelled loaders instead of *only* removing them from the set of active loaders.
49177         
49178         In addition, pages that didn't completely load were being saved to the back/forward cache.  To fix that,
49179         I added a null check on the DocumentLoader's error to see if the page ended in an error, or did indeed 
49180         completely load.
49182         Note that the layout test for this - if possible - will require other enhancements including possibly adding
49183         support for window.stop().  That task is documented in <rdar://problem/5061826>
49185         * loader/FrameLoader.cpp:
49186         (WebCore::FrameLoader::provisionalLoadStarted): Fixed a few bugs relating to my original BFCache rewrite to
49187           more perfectly restore the original behavior - including only caching HTML documents via the 
49188           m_client->canCachePage() call
49189         (WebCore::FrameLoader::canCachePage): Don't make the call to m_client->canCachePage() as that serves a different
49190           purpose
49191           - Check the mainDocumentError to see if the load ended in error as a further criteria in determining the 
49192           cachability of a page
49194         * loader/loader.cpp:
49195         (WebCore::Loader::cancelRequests): Call didFail(cancelledError()) instead of just removing the loaders from the 
49196           loaders-in-progress set.  This adds the effect of properly cleaning up the cached object.
49198 2007-03-13  Beth Dakin  <bdakin@apple.com>
49200         Rendering part reviewed by Hyatt. Editing part consulted with and 
49201         rubber stamped by Justin and Harrison.
49203         Fix for <rdar://problem/5025925> A hang occurs in Safari when 
49204         attempting to print page at http://www.pcadvisor.co.uk
49206         * rendering/RenderBlock.cpp:
49207         (WebCore::RenderBlock::makeChildrenNonInline): 
49208         RenderBlock::makeChildrenNonInline() takes a block's inline 
49209         children and turns them into block children. If the children had 
49210         line boxes, those boxes were being leaked. In the layout test I 
49211         added with the change (and at pcadvisor.co.uk during printing) 
49212         children were being made non-inline, and then they were being made 
49213         inline again. This meant that some of the children ended up 
49214         pointing to totally stale line boxes that are normally just leaked. 
49215         This caused an infinite loop in RenderFlow::destroy(). This patch 
49216         simply deletes everyone's line boxes in 
49217         RenderBlock::makeChildrenNonInline()
49219         * editing/InsertParagraphSeparatorCommand.cpp:
49220         (WebCore::InsertParagraphSeparatorCommand::doApply): The other part 
49221         of this fix is that I added a call to updateLayout in 
49222         InsertParagraphSeparatorCommand::doApply(). One layout test 
49223         (editing/spelling/spelling.html) was changed by my patch to 
49224         RenderBlock. doApply() inserts a node into the render tree. In at 
49225         least one case in spelling.html, that caused some line boxes to be 
49226         deleted. Back in doApply() this meant that the RenderTree was out-
49227         of-date, and we mistakenly thought we were at the end of the 
49228         paragraph. This caused us to insert a RenderBR() at the end of the 
49229         tree instead of an empty RenderText(). No one seems to know exactly 
49230         why we insert either, or if the change is necessarily a problem. It 
49231         is clear, though, that the RenderTree in doApply() is out-of-date 
49232         after inserting the node and deleting some line boxes, so it seems 
49233         prudent to call into updateLayout().
49235 2007-03-13  Adam Roben  <aroben@apple.com>
49237         Reviewed by Anders.
49239         * platform/FontData.h: Added m_isSystemFont parameter to match NSFont.
49241 2007-03-13  Beth Dakin  <bdakin@apple.com>
49243         Reviewed by Maciej.
49245         Export DocumentLoader::setFrame(). Part of fix for <rdar://
49246         problem/4277074> 8F32: Help Viewer crashed on clicking link - 
49247         KHTMLView::viewportMouseReleaseEvent (12647)
49249         * WebCore.exp:
49251 2007-03-13  Darin Adler  <darin@apple.com>
49253         Reviewed by Maciej.
49255         - fix http://bugs.webkit.org/show_bug.cgi?id=12794
49256           <rdar://problem/5028154> REGRESSION: TripTik planner at aaa.com never
49257           finishes loading due to unclosed canvas tag (12794)
49259         Change <canvas> elements so that their contents are parsed normally,
49260         but not rendered. This change fixes the bug, because normal parsing
49261         rules close the <canvas> element in that case. The special parser
49262         stuff was just getting in the way.
49264         Also do some basic cleanup to the HTML parser. This was motivated by
49265         an earlier version of this patch that made even more changes to the
49266         parser, but the cleanup is still worth landing.
49268         Test: fast/canvas/canvas-hides-fallback.html
49269         Test: fast/canvas/script-inside-canvas-fallback.html
49270         Test: fast/canvas/unclosed-canvas-1.html
49271         Test: fast/canvas/unclosed-canvas-2.html
49272         Test: fast/canvas/unclosed-canvas-3.html
49273         Test: fast/canvas/unclosed-canvas-4.html
49275         * html/HTMLCanvasElement.h: Added a data member to keep track of whether the
49276         renderer is a RenderHTMLCanvas or not.
49277         * html/HTMLCanvasElement.cpp:
49278         (WebCore::HTMLCanvasElement::createRenderer): If JavaScript is enabled, create
49279         a RenderHTMLCanvas. If it's not, let the default code create the default type
49280         of renderer, which will result in fallback content being visible. The
49281         RenderHTMLCanvas class already hides all of its children. Set the m_rendererIsCanvas
49282         boolean accordingly. Since the actual storage for the canvas is allocated lazily
49283         when you actually get a drawing context, we don't need to do anything special
49284         to prevent it when JavaScript is disabled; the relevant functions won't be called.
49285         (WebCore::HTMLCanvasElement::reset): Protect the code that manipulates the
49286         RenderHTMLCanvas with a check of m_rendererIsCanvas. This is the only code inside
49287         the DOM element that relies on the renderer type.
49289         * html/HTMLParser.h: Removed unneeded includes. Marked HTMLParser as
49290         Noncopyable. Changed the Document parameter to the constructor to instead
49291         be HTMLDocument. Renamed discard_until to m_skipModeTag for clarity.
49292         Removed unused noSpaces function and unneeded public doc() function.
49293         Moved data members all down to the end so you can see them together in order.
49294         Renamed map to m_currentMapElement and isindex to m_isindexElement.
49295         Removed unused end and headLoaded data members.  Renamed m_fragment to
49296         m_isParsingFragment to make it clearer that it's a boolean, not a fragment.
49298         * html/HTMLParser.cpp:
49299         (WebCore::HTMLParser::HTMLParser): Changed to use member construction
49300         syntax instead of calling reset(). This is especially helpful in the
49301         fragment case, where calling reset() later on is illegal, so not using
49302         it in the constructor lets us assert.
49303         (WebCore::HTMLParser::~HTMLParser): Did an explicit deref instead of
49304         calling setCurrent for its side effect.
49305         (WebCore::HTMLParser::reset): Updated for member name changes and removal
49306         and to use document instead of doc().
49307         (WebCore::HTMLParser::setCurrent): Use document instead of doc().
49308         (WebCore::HTMLParser::setSkipMode): Added. No longer inline. Now sets the
49309         m_inCanvasBeforeFirstOpenTag data member to false.
49310         (WebCore::HTMLParser::parseToken): Tightened up the skip mode logic at the
49311         top of the function, and added a FIXME about the strange case there where
49312         we don't skip yet stay in skip mode. Updated for renaming and doc().
49313         (WebCore::HTMLParser::insertNode): Updated for renaming and doc().
49314         (WebCore::HTMLParser::handleError): Ditto.
49315         (WebCore::HTMLParser::framesetCreateErrorCheck): Ditto.
49316         (WebCore::HTMLParser::isindexCreateErrorCheck): Changed to use RefPtr.
49317         (WebCore::HTMLParser::noscriptCreateErrorCheck): Updated for renaming and doc().
49318         (WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
49319         (WebCore::HTMLParser::getNode): Removed the special case for canvas here.
49320         Canvas fallback is now handled in the DOM, not the parser. Updated for
49321         renaming and doc().
49322         (WebCore::HTMLParser::allowNestedRedundantTag): Changed a #define into a C++
49323         constant.
49324         (WebCore::HTMLParser::processCloseTag): Updated for renaming and doc().
49325         (WebCore::HTMLParser::isInline): Ditto.
49326         (WebCore::HTMLParser::tagIsOnStack): Added. Used by new canvas logic.
49327         (WebCore::HTMLParser::popBlock): Updated for renaming and doc(). Also renamed
49328         the local variable Elem to elem.
49329         (WebCore::HTMLParser::createHead): Ditto.
49330         (WebCore::HTMLParser::handleIsindex): Changed to use RefPtr.
49331         (WebCore::HTMLParser::startBody): Updated for renaming and doc().
49332         (WebCore::HTMLParser::finished): Ditto.
49334 2007-03-13  David Hyatt  <hyatt@apple.com>
49336         Two more cleanup fixes to the cache.  Don't call destroyDecodedData in the BitmapImage destructor, since
49337         clearing the image source and calling setData on it again causes it to do an extra copy of the encoded
49338         data.  Since we're about to be destroyed this is just wasteful.
49340         When the cache prunes, don't allow it to destroy the decoded data of an image that is still actively loading,
49341         since we've established that ImageIO can actually crash if you yank the rug out from under it like that.
49343         Reviewed by ggaren
49345         * loader/Cache.cpp:
49346         (WebCore::Cache::prune):
49347         * platform/graphics/BitmapImage.cpp:
49348         (WebCore::BitmapImage::~BitmapImage):
49350 2007-03-13  Anders Carlsson  <acarlsson@apple.com>
49352         Try fixing the Qt build.
49353         
49354         * editing/Editor.h:
49355         (WebCore::Editor::setStartNewKillRingSequence):
49357 2007-03-13  David Harrison  <harrison@apple.com>
49359         Reviewed by Justin.
49361         <rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring
49362         <rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
49364         For rdar://5031181, properly extend the selection before the killring handling, and
49365         make sure plainText of that selection returns a linefeed.
49366         
49367         For rdar://5031189, restore Editor::deleteRange() code that continued current killring,
49368         even though the range deletion implicitly stopped it via changing the selection.
49369         
49370         A byproduct of this change is the elimination of RUNDFINDER vs CONTENT TextIterator. The
49371         only difference between the two was whether to emit a newline when the range started
49372         with a blockflow element. No callers actually need that any more.
49374         Tests added:
49375         * editing/pasteboard/emacs-ctrl-k-y-001-expected.checksum: Added.
49376         * editing/pasteboard/emacs-ctrl-k-y-001-expected.png: Added.
49377         * editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
49378         * editing/pasteboard/emacs-ctrl-k-y-001.html: Added.
49380         * editing/Editor.cpp:
49381         (WebCore::Editor::deleteRange):
49382         Clear the "start new kill ring sequence" setting, because it was set to true
49383         when the selection was updated by deleting the range.
49384         
49385         (WebCore::Editor::deleteWithDirection):
49386         If extending the selection to the end of paragraph resulted in a caret selection,
49387         extend by character, to handle the case when the selection started as a caret at
49388         the end of paragraph.
49389         
49390         * editing/TextIterator.cpp:
49391         (WebCore::TextIterator::TextIterator):
49392         Initialize new member variables for tracking handling of the beginning of the range.
49393         
49394         (WebCore::TextIterator::advance):
49395         Call representNodeOffsetZero on the m_endContainer.
49396         Move visibility checks into handleTextNode and handleReplacedElement.
49397         
49398         (WebCore::TextIterator::handleTextNode):
49399         (WebCore::TextIterator::handleTextBox):
49400         Call emitText.
49401         
49402         (WebCore::TextIterator::handleReplacedElement):
49403         Moved visibility check into here.
49404         
49405         (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
49406         
49407         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
49408         (WebCore::TextIterator::representNodeOffsetZero):
49409         New. Emits proper sequence when encountering offset 0 of a node, including the
49410         m_endContainer. Started with code from handleNonTextNode.
49411         
49412         (WebCore::TextIterator::handleNonTextNode):
49413         Call representNodeOffsetZero.
49414         
49415         (WebCore::TextIterator::exitNode):
49416         Similar to shouldRepresentNodeOffsetZero, do not emit the newline if the node
49417         was collapsed, and before any other emitted content.
49418         
49419         (WebCore::TextIterator::emitCharacter):
49420         
49421         (WebCore::TextIterator::emitText):
49422         New. Consolidates code used by handleText and handleTextBox.
49423         
49424         (WebCore::CharacterIterator::CharacterIterator):
49425         Removed RUNFINDER.
49427         (WebCore::WordAwareIterator::WordAwareIterator):
49428         Removed RUNFINDER.
49429         
49430         (WebCore::WordAwareIterator::advance):
49431         Formatting.
49433         (WebCore::TextIterator::rangeLength):
49434         Formatting.
49435         
49436         * editing/TextIterator.h:
49437         Added member variables for tracking handling of the beginning of the range.
49438         Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
49439         
49440         * editing/visible_units.cpp:
49441         (WebCore::nextBoundary):
49442         Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
49444 2007-03-13  David Hyatt  <hyatt@apple.com>
49446         Clean up the null image case in CachedImage::data to make sure the size totals will stay accurate.
49447         I'm not convinced this case can even be hit, but I'm cleaning it up just in case.
49449         * loader/CachedImage.cpp:
49450         (WebCore::CachedImage::data):
49452 2007-03-13  David Hyatt  <hyatt@apple.com>
49454         Reorder the call to allReferencesRemoved, since otherwise the live object size will become
49455         incorrect.
49457         * loader/CachedResource.cpp:
49458         (WebCore::CachedResource::deref):
49460 2007-03-13  Antti Koivisto  <antti@apple.com>
49462         Reviewed by Darin.
49463         
49464         Fix http://bugs.webkit.org/show_bug.cgi?id=11083
49465         REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
49466         <rdar://problem/4757650>
49467         
49468         Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
49470         * page/EventHandler.cpp:
49471         (WebCore::EventHandler::defaultTabEventHandler):
49473 2007-03-13  David Hyatt  <hyatt@apple.com>
49475         Fix two counting errors in the decoded size of objects in the WebCore cache.  We need to explicitly
49476         destroy decoded data when clearing out a partially loaded image that had an error, since the destructor
49477         (although it does destroy the data) disconnects the observer so that the notification doesn't happen.
49479         Some CachedImages aren't in the cache (like image documents).  When the decoded size of such an image
49480         changes we should not notify the cache, since - newsflash - we aren't actually in it.
49482         Reviewed by ggaren
49484         * loader/CachedImage.cpp:
49485         (WebCore::CachedImage::clear):
49486         (WebCore::CachedImage::decodedSizeChanged):
49488 2007-03-13  Darin Adler  <darin@apple.com>
49490         Reviewed by Tim Hatcher and John Sullivan.
49492         - fix <rdar://problem/4915303> CrashTracer: 36 crashes in Safari at
49493           com.apple.AppKit: -[NSView getRectsBeingDrawn:count:] + 502
49495         * page/mac/FrameMac.mm: (WebCore::Frame::imageFromRect):
49496         This was calling drawRect: directly, but NSView's getRectsBeingDrawn:count:
49497         method was never really safe to call unless it was AppKit that called your
49498         drawRect: method. Changed it to call drawSingleRect: instead. A little ugly,
49499         but seems to work and will almost certainly fix the bug.
49501 2007-03-13  Nikolas Zimmermann  <zimmermann@kde.org>
49503         Reviewed by Maciej.
49505         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12974
49507         Call forgetGenericContext in JSSVGPathSeg destructor, otherwhise
49508         we'll hit an ASSERT in a debug build, when running svg/custom/js-update-path-changes.svg
49509         a few dozen times in a single WebKit instance. The ASSERT is good and just warns that
49510         there was already a generic context pointer registered, and the new "to be registered"
49511         object already exists, but pointing to a different object. That's because garbage collection
49512         calls the JSSVGPathSeg destructor, but that didn't cleanup the generic context map.
49514         Only JSSVGPathSeg is hit by this problem, as it's the only non SVGAnimated* type
49515         using the generic context system while using a custom JSSVGPathSegList implementation.
49517         Also cleanup JSSVGPathSegListCustom code to call the static forgetGenericContext
49518         method instead of doing the same using custom code.
49520         * bindings/js/JSSVGPathSegListCustom.cpp:
49521         (WebCore::removeFromPathSegContextMap):
49522         (WebCore::JSSVGPathSegList::clear):
49523         (WebCore::JSSVGPathSegList::removeItem):
49524         * bindings/scripts/CodeGeneratorJS.pm:
49526 2007-03-13  Darin Adler  <darin@apple.com>
49528         Reviewed by Adele.
49530         - fix http://bugs.webkit.org/show_bug.cgi?id=12595
49531           <rdar://problem/4722863> REGRESSION: Can't add item to cart at lnt.com
49532           (JS type error) (12595)
49534         Test: fast/forms/old-names.html
49536         * bindings/js/JSHTMLFormElementCustom.cpp:
49537         (WebCore::JSHTMLFormElement::canGetItemsForName): If the form collection has
49538         nothing for a given name, try the form's oldNamedElement function.
49539         (WebCore::JSHTMLFormElement::nameGetter): Ditto.
49541         * bindings/js/kjs_dom.h: Removed the DOMNamedNodesCollection. Instead we will use
49542         a class derived from NodeList.
49543         * bindings/js/kjs_dom.cpp: Ditto.
49545         * bindings/js/kjs_html.cpp:
49546         (KJS::VectorNodeList::VectorNodeList): Added. Constructor for a new class derived
49547         from NodeList to be used for the named items result from a collection -- uses a
49548         vector of node pointers.
49549         (KJS::VectorNodeList::length): Added.
49550         (KJS::VectorNodeList::item): Added.
49551         (KJS::JSHTMLCollection::getNamedItems): Use VectorNodeList and the existing wrapper
49552         for NodeList rather than a custom JavaScript class, DOMNamedNodesCollection.
49554         * dom/ChildNodeList.h:
49555         * dom/ChildNodeList.cpp:
49556         (WebCore::ChildNodeList::ChildNodeList): Updated to derive from TreeNodeList,
49557         since NodeList is now a simpler class.
49558         (WebCore::ChildNodeList::elementMatches): Updated for name and parameter change.
49560         * dom/NameNodeList.h:
49561         * dom/NameNodeList.cpp:
49562         (WebCore::NameNodeList::NameNodeList): Updated to derive from TreeNodeList,
49563         since NodeList is now a simpler class.
49564         (WebCore::NameNodeList::rootNodeAttributeChanged): Updated for name and
49565         parameter change.
49567         * dom/Node.h: Change register/unregister functions to take TreeNodeList.
49568         * dom/Node.cpp:
49569         (WebCore::TagNodeList::TagNodeList): Updated to derive from TreeNodeList,
49570         since NodeList is now a simpler abstract class.
49571         (WebCore::TagNodeList::elementMatches): Updated for name and parameter change.
49572         (WebCore::Node::registerNodeList): Changed type from NodeList to TreeNodeList.
49573         (WebCore::Node::unregisterNodeList): Ditto.
49575         * dom/NodeList.h: Broke NodeList into a simpler base class and a derived class
49576         with the machinery for iterating a tree, called TreeNodeList.
49577         * dom/NodeList.cpp:
49578         (WebCore::NodeList::~NodeList): Added.
49579         (WebCore::NodeList::itemWithName): Factored out of the old itemWithName.
49580         (WebCore::TreeNodeList::TreeNodeList): Renamed from NodeList.
49581         (WebCore::TreeNodeList::~TreeNodeList): Ditto.
49582         (WebCore::TreeNodeList::recursiveLength): Ditto.
49583         (WebCore::TreeNodeList::itemForwardsFromCurrent): Ditto.
49584         (WebCore::TreeNodeList::itemBackwardsFromCurrent): Ditto.
49585         (WebCore::TreeNodeList::recursiveItem): Ditto.
49586         (WebCore::TreeNodeList::itemWithName): Factored half of this into this function,
49587         the other half in NodeList::itemWithName.
49588         (WebCore::TreeNodeList::rootNodeAttributeChanged): Added. No longer inline.
49589         (WebCore::TreeNodeList::rootNodeChildrenChanged): Renamed from NodeList.
49591         * html/HTMLFormElement.h: Added formElementNameChanged and oldNamedElement
49592         fucntions, and a map called m_oldNames. Also removed m_boundary, which I
49593         thought I had already done.
49594         * html/HTMLFormElement.cpp:
49595         (WebCore::HTMLFormElement::HTMLFormElement): Initialize m_oldNames to 0.
49596         Switched the rest of the members to initialization syntax.
49597         (WebCore::HTMLFormElement::~HTMLFormElement): Delete m_oldNames.
49598         (WebCore::HTMLFormElement::formElementNameChanged): Added. Stores a reference
49599         to one element under each of its old names.
49600         (WebCore::HTMLFormElement::oldNamedElement): Added. Returns the old element
49601         that once had a given name.
49603         * html/HTMLGenericFormElement.h:
49604         * html/HTMLGenericFormElement.cpp:
49605         (WebCore::HTMLGenericFormElement::parseMappedAttribute): When the name
49606         attribute changes, tell the form about the old name.
49607         (WebCore::HTMLGenericFormElement::insertedIntoTree): When telling a form
49608         about an element, also store away the old name so that we can use it
49609         when the name changes later.
49611         * html/HTMLInputElement.cpp:
49612         (WebCore::HTMLInputElement::parseMappedAttribute): Added a call to the
49613         base class in the nameAttr case, so the code in HTMLGenericFormElement
49614         above will get called in the input element case.
49616 2007-03-13  Antti Koivisto  <antti@apple.com>
49618         Reviewed by Alexey.
49620         Alexey spotted a DOS by using string of 64k unbreakable character in
49621         fix for http://bugs.webkit.org/show_bug.cgi?id=12833
49623         * dom/Text.cpp:
49624         (WebCore::Text::createWithLengthLimit):
49626 2007-03-13  Lars Knoll <lars@trolltech.com>
49628         Fix the Qt build
49630         * WebCore.pro:
49632 2007-03-13  Rob Buis  <buis@kde.org>
49634         Reviewed by Darin.
49636         http://bugs.webkit.org/show_bug.cgi?id=12576
49637         WebKit does not support xlink:show attributes
49639         Make an exception for non-empty targets, these should be opened
49640         in a new window, unless the value is _self.
49642         * ksvg2/svg/SVGAElement.cpp:
49643         (WebCore::SVGAElement::defaultEventHandler):
49645 2007-03-13  David Hyatt  <hyatt@apple.com>
49647         - fix cache issues seen in http://bugs.webkit.org/show_bug.cgi?id=13050
49648           6 objects and ~200MB leaked after opening then closing tab
49649           <rdar://problem/5058714>
49651         Double the encoded size of images for now.  We do this to account for a bug in ImageIO where they hold
49652         a separate copy of image data.  See <rdar://problem/5050645>.
49654         Reviewed by aroben.
49656         * loader/CachedImage.cpp:
49657         (WebCore::CachedImage::data):
49659 2007-03-12  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
49661         Not reviewed - gdk build fix.
49663         * platform/gdk/TemporaryLinkStubs.cpp:
49664         (SearchPopupMenu::enabled): add missing stub.
49666 2007-03-12  David Kilzer  <ddkilzer@kilzer.net>
49668         Reviewed by Darin.
49670         - fix http://bugs.webkit.org/show_bug.cgi?id=13045
49671           REGRESSION: Blackboard CourseWare Error with Nightlies after Mar 8
49673         * html/HTMLFormElement.cpp:
49674         (WebCore::getUniqueBoundaryString): Speculative fix: remove dashes from
49675         the boundary prefix that appear after non-dash characters.
49677 2007-03-12  Mitz Pettel  <mitz@webkit.org>
49679         Reviewed by Anders.
49681         - fix http://bugs.webkit.org/show_bug.cgi?id=13015
49682           REGRESSION (r17233-r17241): Repro crash when leaving a page whose unload handler submits a form
49684         Test: fast/loader/onunload-form-submit-crash-2.html
49686         * loader/DocumentLoader.cpp:
49687         (WebCore::DocumentLoader::finishedLoading): Added null check.
49689 2007-03-12  Anders Carlsson  <acarlsson@apple.com>
49691         Reviewed by Darin.
49693         <rdar://problem/4900071>
49694         http://bugs.webkit.org/show_bug.cgi?id=6454
49695         ASSERTION: Navigating 'back' in frameset: !_private->previousItem (6454)
49697         Change back the behavior of checkLoadComplete to traverse the entire frame tree instead of
49698         just the parent frames of the current frame. This is needed in order to reset the previous history item
49699         for all frames when doing a frame navigation. (This was changed in revision 11819)
49700         
49701         * loader/FrameLoader.cpp:
49702         (WebCore::FrameLoader::recursiveCheckLoadComplete):
49703         (WebCore::FrameLoader::checkLoadComplete):
49704         * loader/FrameLoader.h:
49706 2007-03-12  Justin Garcia  <justin.garcia@apple.com>
49708         Reviewed by darin
49709         
49710         <rdar://problem/5056619> 
49711         REGRESSION: Gmail Editor: Dragging text into Reply (textarea) field results in a crash at WebCore::InsertNodeBeforeCommand::doApply()
49712         
49713         * editing/SelectionController.cpp:
49714         (WebCore::removingNodeRemovesPosition): Added.
49715         (WebCore::SelectionController::nodeWillBeRemoved): Clear the
49716         selection if it's inside a shadow tree.
49717         * page/DragController.cpp:
49718         (WebCore::setSelectionToDragCaret): Return false to signal to
49719         clients that a drop shouldn't be performed if the second attempt
49720         to set a selection ends up in non-editable content.
49722 2007-03-12  Darin Adler  <darin@apple.com>
49724         Reviewed by Tim Hatcher.
49726         - fixed JavaScript wrapper classes to be correct for a variety of cases
49727           that a new test uncovered: was broken for at least 5 classes
49729         - fixed Objective-C wrapper classes to be correct for a variety of cases
49730           that a test case uncovered: was broken for ast least 50 classes
49732         - added missing DOM API for creating OverflowEvent and WheelEvent instances
49734         Test: fast/dom/wrapper-classes.html
49736         * DerivedSources.make: Added missing bindings: HTMLCanvasElement for ObjC,
49737         CDATASection, Comment, and EntityReference for JavaScript.
49738         * WebCore.xcodeproj/project.pbxproj: Added those new generated files.
49740         * bindings/js/JSHTMLElementWrapperFactory.cpp:
49741         (WebCore::createJSHTMLWrapper): Corrected the wrapper classes for <keygen>,
49742         which needs an HTMLSelectElement wrapper, and <xmp>, which needs an
49743         HTMLPreElement wrapper.
49745         * bindings/objc/DOMInternal.h: Updated for new naming scheme.
49746         Also moved createDOMWrapper from the KJS namespace to the WebCore namespace.
49747         * bindings/objc/DOMUtility.mm:
49748         (KJS::createDOMWrapper): Broke the core function into a separate one, and
49749         left it in the KJS namespace because Objective-C++ rules make it impossible
49750         for it to work in the WebCore namespace. Used a macro-based implementation
49751         to cut down on repeated code, and added missing cases for Counter,
49752         HTMLOptionsCollection, Range, XPathExpression, XPathResult, Event, RGBColor,
49753         Rect, Window, DOMImplementation, NodeIterator, TreeWalker, and HTMLCollection.
49754         (WebCore::createDOMWrapper): The other half of the function.
49756         * bindings/objc/DOM.mm:
49757         (WebCore::createElementClassMap): Corrected the wrapper classes for
49758         <canvas>, which needs a DOMHTMLCanvasElement wrapper, <del>, which needs
49759         a DOMHTMLModElement wrapper, <embed>, which needs a DOMHTMLEmbedElement
49760         wrapper, <ins>, which needs a DOMHTMLModElement wrapper, <th>, which needs
49761         a DOMHTMLTableCellElement wrapper, and <xmp>, which needs an
49762         DOMHTMLPreElement wrapper.
49763         (+[DOMNode _wrapNode:]): Updated for new naming scheme.
49764         (+[DOMNode _wrapEventTarget:]): Ditto.
49765         (+[DOMNodeFilter _wrapNodeFilter:]): Ditto.
49766         (ObjCNodeFilterCondition::acceptNode): Ditto.
49767         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Ditto.
49768         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Ditto.
49769         (WebCore::ObjCEventListener::handleEvent): Ditto.
49771         * dom/Document.cpp: (WebCore::Document::createEvent):
49772         Added cases for OverflowEvent and WheelEvent.
49774         * dom/OverflowEvent.h: Added empty constructor and initOverflowEvent.
49775         * dom/OverflowEvent.cpp:
49776         (WebCore::OverflowEvent::OverflowEvent): Added.
49777         (WebCore::OverflowEvent::initOverflowEvent): Added.
49778         * dom/OverflowEvent.idl: Added initOverflowEvent.
49780         * bindings/objc/PublicDOMInterfaces.h: Added initOverflowEvent.
49782         * bindings/objc/DOMCSS.mm:
49783         (+[DOMStyleSheet _wrapStyleSheet:]): Updated for new naming scheme.
49784         (+[DOMCSSRule _wrapCSSRule:]): Corrected wrapper for CSSUnknownRule.
49785         (+[DOMCSSValue _wrapCSSValue:]): Updated for new naming scheme.
49787         * bindings/js/kjs_css.h:
49788         (KJS::DOMRGBColor::impl): Added. Used when making an ObjC wrapper.
49789         (KJS::DOMRect::impl): Ditto.
49791         * bindings/js/kjs_dom.cpp: (KJS::toJS): Corrected the wrapper classes for
49792         CDATASection, Comment, and EntityReference.
49794         * bindings/js/kjs_html.cpp: Corrected the class name for HTMLElement
49795         (was "DOMHTMLElement") and HTMLCollection (was "Collection").
49797         * bindings/objc/DOMImplementationFront.h:
49798         * bindings/objc/DOMImplementationFront.cpp:
49799         (WebCore::implementationFront): Added new overload that returns a front given
49800         a JavaScript wrapper. Needed by the code that makes the Objective-C wrapper.
49802         * bindings/objc/WebScriptObject.mm:
49803         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
49804         Updated since createDOMWrapper is now in the WebCore namespace.
49806         * bindings/scripts/CodeGeneratorObjC.pm: Update the naming scheme for the
49807         wrapper creation functions to use _wrapElement: rather then _elementWith:
49808         style. Removed now-unneeded special cases for things that needed to stay
49809         upper-case, since we don't have to do the whole lcfirst thing.
49811         * html/HTMLCanvasElement.idl: Added #if so we can successfully generate the
49812         Objective-C wrapper for this class, even though we can't yet handle the
49813         DOMObject return type.
49815         * html/HTMLOptionsCollection.idl: Added GenerateNativeConverter so we get
49816         an appropriate toJS function.
49818         * bindings/objc/DOMEvents.mm:
49819         (+[DOMEvent _wrapEvent:]):
49820         * bindings/objc/DOMHTML.mm:
49821         (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]):
49822         (-[DOMHTMLDocument createDocumentFragmentWithText:]):
49823         * bindings/objc/DOMObject.mm:
49824         (-[DOMObject sheet]):
49825         * bindings/objc/DOMRGBColor.mm:
49826         (-[DOMRGBColor red]):
49827         (-[DOMRGBColor green]):
49828         (-[DOMRGBColor blue]):
49829         (-[DOMRGBColor alpha]):
49830         (+[DOMRGBColor _wrapRGBColor:]):
49831         * bindings/objc/DOMSVGPathSegInternal.mm:
49832         (+[DOMSVGPathSeg _wrapSVGPathSeg:]):
49833         * bindings/objc/DOMXPath.mm:
49834         (+[DOMNativeXPathNSResolver _wrapXPathNSResolver:]):
49835         * page/mac/WebCoreFrameBridge.mm:
49836         (-[WebCoreFrameBridge nodesFromList:]):
49837         (-[WebCoreFrameBridge elementWithName:inForm:]):
49838         (-[WebCoreFrameBridge formForElement:]):
49839         (-[WebCoreFrameBridge currentForm]):
49840         (-[WebCoreFrameBridge controlsInForm:]):
49841         (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
49842         (-[WebCoreFrameBridge convertNSRangeToDOMRange:]):
49843         (-[WebCoreFrameBridge markDOMRange]):
49844         (-[WebCoreFrameBridge markedTextDOMRange]):
49845         (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]):
49846         (-[WebCoreFrameBridge documentFragmentWithMarkupString:baseURLString:]):
49847         (-[WebCoreFrameBridge documentFragmentWithText:inContext:]):
49848         (-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]):
49849         (-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]):
49850         (-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]):
49851         (-[WebCoreFrameBridge increaseSelectionListLevel]):
49852         (-[WebCoreFrameBridge increaseSelectionListLevelOrdered]):
49853         (-[WebCoreFrameBridge increaseSelectionListLevelUnordered]):
49854         (-[WebCoreFrameBridge dragCaretDOMRange]):
49855         (-[WebCoreFrameBridge editableDOMRangeForPoint:]):
49856         (-[WebCoreFrameBridge characterRangeAtPoint:]):
49857         (-[WebCoreFrameBridge typingStyle]):
49858         (-[WebCoreFrameBridge rangeOfCharactersAroundCaret]):
49859         * platform/mac/ClipboardMac.mm:
49860         (WebCore::ClipboardMac::declareAndWriteDragImage):
49861         * platform/mac/PasteboardMac.mm:
49862         (WebCore::Pasteboard::writeSelection):
49863         Updated for new naming scheme.
49865 2007-03-12  Timothy Hatcher  <timothy@apple.com>
49867         Reviewed by Darin.
49869         <rdar://problem/4990691> REGRESSION: Selecting text in Adium's Messages field causes horizontal shift
49871         Corrected the recursive point conversion and scrolling done in scrollPointRecursively to use the
49872         document view of each NSClipView.
49874         * platform/mac/ScrollViewMac.mm:
49875         (WebCore::ScrollView::scrollPointRecursively): Call convertPoint:fromView: on the document views,
49876         not the clip views as we encounter them. Then call constrainScrollPoint: on the converted point to
49877         constrain to the document view bounds. And finally call scrollPoint: on the document view, not the clip view.
49879 2007-03-12  Antti Koivisto  <antti@apple.com>
49881         Reviewed by Alexey.
49883         Fix http://bugs.webkit.org/show_bug.cgi?id=12833
49884         REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
49885         <rdar://problem/5028159>
49886         
49887         Divide large text blocks (>64kB) over multiple text nodes. This limits linebox searches to
49888         a manageable subset.
49889         
49890         * dom/Text.cpp:
49891         (WebCore::Text::createWithLengthLimit):
49892         * dom/Text.h:
49893         * html/HTMLParser.cpp:
49894         (WebCore::HTMLParser::parseToken):
49895         * loader/TextDocument.cpp:
49896         (WebCore::TextTokenizer::write):
49898 2007-03-12  David Hyatt  <hyatt@apple.com>
49900         Fix a regression in printing.  Printer fonts need to be part of the
49901         font cache key, since printer fonts have different glyph widths.
49902         (Integer antialiasing is used for screen fonts but not for printer fonts.)
49904         Reviewed by aroben
49906         * platform/FontCache.cpp:
49907         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
49908         (WebCore::FontPlatformDataCacheKey::operator==):
49909         (WebCore::computeHash):
49910         (WebCore::FontCache::getCachedFontPlatformData):
49912 2007-03-12  Lars Knoll <lars@trolltech.com>
49914         add missing symbol to fix the Qt build again.
49916         * platform/qt/SearchPopupMenuQt.cpp:
49917         (WebCore::SearchPopupMenu::enabled):
49919 2007-03-12  Adele Peterson  <adele@apple.com>
49921         Reviewed by Oliver.
49923         Adding the ability to enable or disable a SearchPopupMenu.
49925         * platform/SearchPopupMenu.h:
49926         * platform/mac/SearchPopupMenuMac.mm: (WebCore::SearchPopupMenu::enabled):
49927         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::showPopup):
49929 2007-03-12  Rob Buis  <buis@kde.org>
49931         Reviewed by Nikolas Zimmermann.
49933         http://bugs.webkit.org/show_bug.cgi?id=12500
49934         SVG fails to correctly handle all link style selectors
49935         http://bugs.webkit.org/show_bug.cgi?id=12567
49936         <text> elements ignore <a> children
49938         Allow <a> inside svg text and handle xlink:show.
49940         * ksvg2/svg/SVGAElement.cpp:
49941         (WebCore::SVGAElement::createRenderer):
49942         (WebCore::SVGAElement::defaultEventHandler):
49943         (WebCore::SVGAElement::childShouldCreateRenderer):
49944         * ksvg2/svg/SVGAElement.h:
49945         * ksvg2/svg/SVGElement.h:
49946         (WebCore::SVGElement::isTextContent):
49947         * ksvg2/svg/SVGTextContentElement.h:
49948         (WebCore::SVGTextContentElement::isTextContent):
49949         * ksvg2/svg/SVGTextElement.cpp:
49950         (WebCore::SVGTextElement::childShouldCreateRenderer):
49951         * rendering/SVGInlineFlowBox.cpp:
49952         (WebCore::translateBox):
49953         (WebCore::placePositionedBoxesHorizontally):
49954         (WebCore::placeBoxesVerticallyWithAbsBaseline):
49956 2007-03-12  Adele Peterson  <adele@apple.com>
49958         Reviewed by Oliver.
49960         Add a missing parameter to the constructor.
49962         * platform/PlatformKeyboardEvent.h:
49963         * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
49965 2007-03-12  Lars Knoll <lars@trolltech.com>
49967         Fix the Qt build. I still get crashes though :/
49969         * platform/graphics/qt/ImageDecoderQt.cpp:
49970         (WebCore::ImageDecoderQt::clearFrame):
49971         * platform/graphics/qt/ImageDecoderQt.h:
49972         * platform/graphics/qt/ImageSourceQt.cpp:
49973         (WebCore::ImageSource::setData):
49974         (WebCore::ImageSource::frameIsCompleteAtIndex):
49975         (WebCore::ImageSource::clear):
49976         (WebCore::ImageSource::destroyFrameAtIndex):
49977         * platform/qt/ClipboardQt.cpp:
49978         (WebCore::ClipboardQt::ClipboardQt):
49979         * platform/qt/ClipboardQt.h:
49980         * platform/qt/DragDataQt.cpp:
49981         (WebCore::DragData::createClipboard):
49983 2007-03-11  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
49985         Not reviewed - gdk build fixes.
49987         * platform/gdk/EditorClientGdk.cpp:
49988         (WebCore::EditorClientGdk::respondToChangedSelection): add stub
49989         * platform/gdk/EditorClientGdk.h:
49990         * platform/gdk/FrameGdk.cpp:
49991         * platform/gdk/TemporaryLinkStubs.cpp:
49992         (Editor::markMisspellings): add stub
49994 2007-03-11  Alexey Proskuryakov  <ap@webkit.org>
49996         Reviewed by Adele.
49998         http://bugs.webkit.org/show_bug.cgi?id=12560
49999         W3C XPath test Text_Nodes.svg fails
50001         * xml/XPathStep.cpp:
50002         (WebCore::XPath::Step::nodeTestMatches): Revert the fix, as the behavior doesn't appear 
50003         all that desirable as it did at first glance.
50005 2007-03-11  Oliver Hunt  <oliver@apple.com>
50007         Reviewed by hyatt.
50009         Fix for <rdar://problem/5055690> ASSERTION failure on drop into 
50010         editable element with content changed on drop 
50012         After setting the selection for a drop into an editable region 
50013         we make sure the we succeeded.  If we didn't we assume a focus handler
50014         or similar altered the element contents and try again, if the second
50015         attempt fails we bail out.
50017         * page/DragController.cpp:
50018         (WebCore::setSelectionToDragCaret):
50019         (WebCore::DragController::concludeDrag):
50021 2007-03-11  Oliver Hunt  <oliver@apple.com>
50023         Reviewed by Adele.
50025         Moving Frame{Mac}::respondToChangedSelection to Frame.cpp
50026         Added new EditorClient method to handle old bridge function
50027         
50028         * bridge/EditorClient.h:
50029            Added respondToChangedSelection to replace old bridge function
50030         * editing/Editor.cpp:
50031         (WebCore::Editor::respondToChangedSelection):
50032            Add client call to replace old bridge call from Frame::respondToChangedSelection
50033         * editing/SelectionController.cpp:
50034         (WebCore::SelectionController::setSelection):
50035            No longer directly call Editor as Frame::respondToChangedSelection
50036            makes the call
50037         * page/Frame.cpp:
50038         (WebCore::Frame::respondToChangedSelection):
50039            Moved from FrameMac, replaced bridge call with call to Editor
50040         * page/mac/FrameMac.mm:
50041            Moved respondToChangedSelection to Frame.cpp
50042         * page/mac/WebCoreFrameBridge.h:
50043            Removed respondToChangedSelection from bridge
50044         * page/qt/FrameQt.cpp:
50045            Remove stub method for respondToChangedSelection
50047 2007-03-11  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50049         Reviewed by Brady Eidson.
50051         Linux/gdk fix.
50053         * loader/gdk/FrameLoaderClientGdk.cpp:
50054         (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so
50055         that FrameLoader:goBackOrForwards() works.
50057 2007-03-10  Geoffrey Garen  <ggaren@apple.com>
50059         Reviewed by Darin Adler.
50061         Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
50062         JSCore causes a hang @ www.panoramas.dk
50063         
50064         See JavaScriptCore ChangeLog for details.
50065         
50066         * bindings/objc/WebScriptObject.mm:
50067         (_didExecute): Added helpful ASSERT.
50068         (+[WebScriptObject throwException:]): Added missing JSLock.
50070 2007-03-11  Antti Koivisto  <antti@apple.com>
50072         Reviewed by Hyatt.
50074         Optimize linebox memory consumption:
50075         - move all bitfields to baseclass compacting them
50076         - make InlineTextBox::m_truncation unsigned short and make it relative to m_start
50077         - remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead
50078           use a global hashmap to store it if needed
50079         - use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
50080         - move overflow variables in RootInlineBox to a separate struct that is instantiated
50081           only if any of the variables is set to a value that can't trivially be derived from 
50082           box x, y, width and height
50083           
50084         As a result line box objects shrink:
50085             InlineBox: 44 -> 44 bytes
50086             InlineTextBox: 68 -> 60 bytes
50087             InlineFlowBox: 68 -> 64 bytes
50088             RootInlineBox: 128 -> 88 bytes
50089             
50090         The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
50091         Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
50092         <rdar://problem/5028159>
50093         
50094         On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
50095         actually improves selection performance somewhat by improving memory locality.
50097         * rendering/InlineBox.h:
50098         (WebCore::InlineBox::InlineBox):
50099         * rendering/InlineFlowBox.h:
50100         (WebCore::InlineFlowBox::InlineFlowBox):
50101         * rendering/InlineTextBox.cpp:
50102         (WebCore::InlineTextBox::placeEllipsisBox):
50103         (WebCore::InlineTextBox::nodeAtPoint):
50104         (WebCore::InlineTextBox::paint):
50105         (WebCore::InlineTextBox::paintDecoration):
50106         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
50107         (WebCore::InlineTextBox::paintMarkedTextUnderline):
50108         * rendering/InlineTextBox.h:
50109         (WebCore::InlineTextBox::InlineTextBox):
50110         * rendering/RootInlineBox.cpp:
50111         (WebCore::throw):
50112         (WebCore::RootInlineBox::Overflow::operator delete):
50113         (WebCore::RootInlineBox::Overflow::destroy):
50114         (WebCore::RootInlineBox::destroy):
50115         (WebCore::RootInlineBox::detachEllipsisBox):
50116         (WebCore::RootInlineBox::clearTruncation):
50117         (WebCore::RootInlineBox::placeEllipsis):
50118         (WebCore::RootInlineBox::paintEllipsisBox):
50119         (WebCore::RootInlineBox::addHighlightOverflow):
50120         (WebCore::RootInlineBox::nodeAtPoint):
50121         (WebCore::RootInlineBox::adjustPosition):
50122         (WebCore::RootInlineBox::selectionTop):
50123         (WebCore::RootInlineBox::setLineBreakInfo):
50124         (WebCore::RootInlineBox::ellipsisBox):
50125         (WebCore::RootInlineBox::setVerticalOverflowPositions):
50126         (WebCore::RootInlineBox::setHorizontalOverflowPositions):
50127         (WebCore::RootInlineBox::setVerticalSelectionPositions):
50128         * rendering/RootInlineBox.h:
50129         (WebCore::RootInlineBox::RootInlineBox):
50130         (WebCore::RootInlineBox::topOverflow):
50131         (WebCore::RootInlineBox::bottomOverflow):
50132         (WebCore::RootInlineBox::leftOverflow):
50133         (WebCore::RootInlineBox::rightOverflow):
50134         (WebCore::RootInlineBox::lineBreakBidiStatus):
50135         (WebCore::RootInlineBox::selectionBottom):
50136         (WebCore::RootInlineBox::Overflow::Overflow):
50138 2007-03-11  Alexey Proskuryakov  <ap@webkit.org>
50140         Reviewed by Darin.
50142         A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
50143         XPath can be very slow
50145         * xml/XPathExpression.cpp:
50146         (WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.
50148         * xml/XPathExpressionNode.cpp:
50149         (WebCore::XPath::Expression::evaluationContext):
50150         * xml/XPathExpressionNode.h:
50151         (WebCore::XPath::Expression::addSubExpression):
50152         (WebCore::XPath::Expression::subExprCount):
50153         (WebCore::XPath::Expression::subExpr):
50154         * xml/XPathFunctions.cpp:
50155         * xml/XPathFunctions.h:
50156         (WebCore::XPath::Function::setName):
50157         (WebCore::XPath::Function::arg):
50158         (WebCore::XPath::Function::argCount):
50159         (WebCore::XPath::Function::name):
50160         Made one-liners critical for performance inline.
50162         * xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is
50163         essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating
50164         internal data members.
50166         * xml/XPathParser.cpp:
50167         (WebCore::XPath::Parser::parseStatement):
50168         (WebCore::XPath::Parser::registerNodeTest):
50169         (WebCore::XPath::Parser::deleteNodeTest):
50170         * xml/XPathParser.h:
50171         Added support methods for changes in XPathGrammar.y.
50173         * xml/XPathPath.cpp:
50174         (WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
50175         performing vector assignments.
50176         (WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments.
50177         (WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction, 
50178         to simplify the path as it's being built. Currently, the only optimized case is "//*" - it is a basis for
50179         important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit
50180         of XPath 2.0.
50181         (WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair().
50182         (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
50183         * xml/XPathPath.h:
50184         (WebCore::XPath::LocationPath::setAbsolute): A new accessor.
50186         * xml/XPathStep.h:
50187         (WebCore::XPath::Step::NodeTest::):
50188         (WebCore::XPath::Step::NodeTest::NodeTest):
50189         (WebCore::XPath::Step::NodeTest::kind):
50190         (WebCore::XPath::Step::NodeTest::data):
50191         Step::NodeTest is a new sub-class that represents a fully parsed NodeTest.
50192         (WebCore::XPath::Step::axis):
50193         (WebCore::XPath::Step::nodeTest):
50194         (WebCore::XPath::Step::nodeTestData):
50195         (WebCore::XPath::Step::namespaceURI):
50196         (WebCore::XPath::Step::predicates):
50197         (WebCore::XPath::Step::setAxis):
50198         (WebCore::XPath::Step::setNodeTest):
50199         (WebCore::XPath::Step::setNodeTestData):
50200         (WebCore::XPath::Step::setNamespaceURI):
50201         (WebCore::XPath::Step::setPredicates):
50202         New accessors that let optimizeStepPair() manipulate Step data.
50204         * xml/XPathStep.cpp:
50205         (WebCore::XPath::Step::Step): Use the new NodeTest class.
50206         (WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
50207         performing unneeded vector assignments.
50208         (WebCore::XPath::Step::nodesInAxis): Cosmetic changes.
50209         (WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time.
50210         Added a partial implementation of XPath 2.0 element() node test.
50212 2007-03-10  Alexey Proskuryakov  <ap@webkit.org>
50214         Reviewed by Darin.
50216         http://bugs.webkit.org/show_bug.cgi?id=12249
50217         FCKeditor: <hr>, <ul> and <ol> have id="undefined"
50219         This fixes the attached reduction, but not the original issue.
50221         Test: editing/execCommand/default-parameters.html
50223         * dom/Document.h:
50224         * dom/Document.idl:
50225         Make second and third execCommand() parameters optional.
50227 2007-03-10  Adele Peterson  <adele@apple.com>
50229         Reviewed by Maciej.
50231         Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
50232         REGRESSION: textField:doCommandBySelector:inFrame: not being called properly
50234         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
50235           Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.        
50237 2007-03-10  Mitz Pettel  <mitz@webkit.org>
50239         Reviewed by Darin.
50241         - fix http://bugs.webkit.org/show_bug.cgi?id=13013
50242           REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key
50244         Test: fast/forms/listbox-typeahead-scroll.html
50246         * html/HTMLSelectElement.cpp:
50247         (WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's
50248         anchor and end before selecting the option, since the active selection is used to
50249         decide where to scroll when the selection is made.
50250         (WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.
50252 2007-03-10  Mitz Pettel  <mitz@webkit.org>
50254         Reviewed by Darin.
50256         - fix http://bugs.webkit.org/show_bug.cgi?id=12973
50257           REGRESSION: Reproducible assert while loading this test file if css is already in the cache
50259         Test: fast/dom/css-cached-import-rule.html
50261         Replaced some direct calls to document->stylesheetLoaded() with calls to
50262         the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
50263         which notifies the document of the load -- and then updates the sheet's
50264         loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
50265         is still considered pending by the document.
50267         * dom/ProcessingInstruction.cpp:
50268         (WebCore::ProcessingInstruction::parseStyleSheet):
50269         * dom/StyleElement.cpp:
50270         (WebCore::StyleElement::childrenChanged):
50271         * html/HTMLLinkElement.cpp:
50272         (WebCore::HTMLLinkElement::process):
50273         (WebCore::HTMLLinkElement::setCSSStyleSheet):
50274         * ksvg2/svg/SVGStyleElement.cpp:
50275         (WebCore::SVGStyleElement::sheetLoaded):
50276         * ksvg2/svg/SVGStyleElement.h:
50278 2007-03-10  David Kilzer  <ddkilzer@webkit.org>
50280         Reviewed by Darin.
50282         - fix http://bugs.webkit.org/show_bug.cgi?id=9609
50283           REGRESSION: Missing image icon needs to be moved back to WebKit
50285         * WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in
50286         [WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].
50288 2007-03-09  Darin Adler  <darin@apple.com>
50290         Reviewed by Justin.
50292         - fix http://bugs.webkit.org/show_bug.cgi?id=8928
50293           <rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
50294           contenteditable region in an XHTML document (8928)
50296         Test: editing/pasteboard/paste-xml.xhtml
50298         * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Added a check for 0
50299         here, since createContextualFragment can return 0 for XML documents that fail
50300         to parse. In my testing, callers all seem equipped to handle 0.
50302 2007-03-09  Mitz Pettel  <mitz@webkit.org>
50304         Reviewed by Darin.
50306         - fix http://bugs.webkit.org/show_bug.cgi?id=9929
50307           REGRESSION: crash on logging in on mijnpostbank.nl
50309         Test: http/tests/misc/onload-remove-iframe-crash-2.html
50311         The resulted from an iframe's load event handler removing the iframe
50312         from the document.
50314         * dom/Document.cpp:
50315         (WebCore::Document::implicitClose): Bail out early if an event handler
50316         removed the frame.
50317         * loader/FrameLoader.cpp:
50318         (WebCore::FrameLoader::FrameLoader):
50319         (WebCore::FrameLoader::clear):
50320         (WebCore::FrameLoader::checkCompleted): Protect the frame from deletion
50321         by event handlers.
50322         (WebCore::FrameLoader::checkCompletedTimerFired):
50323         (WebCore::FrameLoader::scheduleCheckCompleted):
50324         (WebCore::FrameLoader::detachFromParent): Schedule a completion check
50325         on the parent (in case the child is what has been keeping it from completing).
50326         * loader/FrameLoader.h:
50328 2007-03-08  David Kilzer  <ddkilzer@webkit.org>
50330         Reviewed by Beth.
50332         - fix http://bugs.webkit.org/show_bug.cgi?id=13019
50333           REGRESSION (r20074): Forms don't submit on a variety of websites
50335         No tests added since LayoutTests/fast/forms/document-write.html was timing out
50336         and causing a layout test failure.
50338         * html/HTMLFormElement.cpp:
50339         (WebCore::HTMLFormElement::submit): Removed stray code.
50341 2007-03-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50343         Not reviewed - gdk build fix.
50345         * platform/graphics/cairo/ImageSourceCairo.cpp:
50346         (WebCore::ImageSource::frameIsCompleteAtIndex): add empty stub
50348 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50350         Reviewed by harrison
50351         
50352         <rdar://problem/4903193> 
50353         On particular page, Copy is so slow it seems like a hang
50354         
50355         ~2x speedup copying:
50356         http://shakespeare.mit.edu/henryviii/full.html 
50357         Also produces less bloated markup.
50359         * editing/markup.cpp:
50360         (WebCore::startMarkup): Don't wrap text nodes in style spans.
50361         For Elements, don't inline styles inherited from ancestors.
50362         (WebCore::createMarkup): No longer necessary to find 
50363         the root's default style and pass it to startMarkup.
50364         Add a wrapper span around the markup with the styles
50365         that all nodes in the markup inherit (the inheritable 
50366         styles from the common ancestor container's computed style).
50367         Added a FIXME about unecessary markup for inline ancestors 
50368         up to the commonAncestorBlock.
50370 2007-03-08  Darin Adler  <darin@apple.com>
50372         Reviewed by Adele.
50374         - <rdar://problem/4470381> multipart/form-data boundary security vulnerability
50376         By making the form data boundary a string with some random data in it, we reduce
50377         the possibility that anyone could take advantage of it by creating a file that
50378         intentionally has the boundary string in it.
50380         * html/HTMLFormElement.h: Removed boundary(), setBoundary(), and m_boundary.
50381         Marked a lot more stuff private.
50382         * html/HTMLFormElement.cpp:
50383         (WebCore::HTMLFormElement::HTMLFormElement): Removed code to initialize
50384         m_boundary.
50385         (WebCore::randomNumber): Added. Function that returns a random number, including
50386         seeding the random number generator the first time it's called. For now, usees the more
50387         random function random() on Mac OS X and the more-standard rand() on other platforms.
50388         (WebCore::HTMLFormElement::formData): Take a parameter with the form boundary string,
50389         and use that instead of m_boundary.
50390         (WebCore::getUniqueBoundaryString): Added. Makes a boundary string using random numbers
50391         and base 64 encoding.
50392         (WebCore::HTMLFormElement::submit): Call getUniqueBoundaryString and pass the boundary
50393         string into formData for multipart form posts.
50395 2007-03-08  Maciej Stachowiak  <mjs@apple.com>
50397         Reviewed by Adele.
50398         
50399         <rdar://problem/4646563> REGRESSION: Unable to send text message from Verizon text message website: vtext.com (12588)
50400         http://bugs.webkit.org/show_bug.cgi?id=12588
50402         Carefully revised which focus operations restore previous selection, which clear it, and which
50403         select the whole control contents.
50404         
50405         Tests:
50406         fast/forms/focus-selection-input.html
50407         fast/forms/focus-selection-textarea.html
50408         
50409         * dom/Element.cpp:
50410         (WebCore::Element::focus):
50411         * dom/Element.h:
50412         * html/HTMLInputElement.cpp:
50413         (WebCore::HTMLInputElement::focus):
50414         (WebCore::HTMLInputElement::accessKeyAction):
50415         * html/HTMLInputElement.h:
50416         * html/HTMLLabelElement.cpp:
50417         (WebCore::HTMLLabelElement::focus):
50418         (WebCore::HTMLLabelElement::accessKeyAction):
50419         * html/HTMLLabelElement.h:
50420         * html/HTMLLegendElement.cpp:
50421         (WebCore::HTMLLegendElement::focus):
50422         * html/HTMLLegendElement.h:
50423         * html/HTMLTextAreaElement.cpp:
50424         (WebCore::HTMLTextAreaElement::focus):
50425         * html/HTMLTextAreaElement.h:
50426         * page/FocusController.cpp:
50427         (WebCore::FocusController::advanceFocus):
50429 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50431         Reviewed by harrison
50433         <http://bugs.webkit.org/show_bug.cgi?id=12244>
50434         FCKeditor: Find dialog doesn't work
50436         * bindings/js/kjs_window.cpp:
50437         (KJS::Window::find): Added.  This function doesn't yet 
50438         support whole word searches, searching in subframes, or
50439         opening the find dialog.
50440         (KJS::WindowFunc::callAsFunction):
50441         * bindings/js/kjs_window.h:
50442         (KJS::Window::):
50444 2007-03-08  David Hyatt  <hyatt@apple.com>
50446         Fix regression from throwing away frames of large animated images.  Alter
50447         animated images so that they refuse to advance the animation until the
50448         current displayed frame has been fully decoded.
50450         Reviewed by ggaren
50452         * platform/graphics/BitmapImage.cpp:
50453         (WebCore::BitmapImage::startAnimation):
50454         (WebCore::BitmapImage::advanceAnimation):
50455         * platform/graphics/ImageSource.h:
50456         * platform/graphics/cg/ImageSourceCG.cpp:
50457         (WebCore::ImageSource::frameIsCompleteAtIndex):
50459 2007-03-08  David Hyatt  <hyatt@apple.com>
50461         Fix 2% performance regression on the PLT.  Increase the large animated
50462         image cutoff from 1MB to 5MB.
50464         In addition when pruning we will aggressively discard image sources.
50466         Reviewed by ggaren
50468         * platform/graphics/BitmapImage.cpp:
50469         (WebCore::BitmapImage::destroyDecodedData):
50471 2007-03-08  Timothy Hatcher  <timothy@apple.com>
50473         Reviewed by John.
50475         <rdar://problem/4664697> highlighter SPI needs a node parameter to give more context
50477         Pass the RenderObject's node to customHighlightLineRect and paintCustomHighlight.
50479         * page/Frame.h:
50480         * page/mac/FrameMac.mm:
50481         (WebCore::Frame::customHighlightLineRect):
50482         (WebCore::Frame::paintCustomHighlight):
50483         * page/mac/WebCoreFrameBridge.h:
50484         * rendering/InlineTextBox.cpp:
50485         (WebCore::InlineTextBox::paintCustomHighlight):
50486         * rendering/RenderBox.cpp:
50487         (WebCore::RenderBox::paintCustomHighlight):
50488         * rendering/RootInlineBox.cpp:
50489         (WebCore::RootInlineBox::addHighlightOverflow):
50490         (WebCore::RootInlineBox::paintCustomHighlight):
50492 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50494         Reviewed by harrison
50495         
50496         <http://bugs.webkit.org/show_bug.cgi?id=13000>
50497         Range.createContextualFragment is not supported
50499         * dom/Range.cpp:
50500         (WebCore::Range::createContextualFragment): The
50501         "startContainer" may not be a container, if the
50502         range starts inside text.  In that case, look
50503         to the parent of the start node for an HTMLElement.
50505 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50507         Reviewed by harrison
50508         
50509         <rdar://problem/5049671>
50510         Gmail Editor: With linked text, Remove Formatting doesn't always remove underline
50512         * editing/Editor.cpp:
50513         (WebCore::Editor::removeFormattingAndStyle): Clear removed
50514         anchors after the deletion.
50516 2007-03-08  David Kilzer  <ddkilzer@webkit.org>
50518         Reviewed by NOBODY (build fix).
50520         Added missing file for r20059:
50521         <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
50523         File was taken from this svn repository which contained versions of ucnv.h and ucnv_err.h
50524         that were identical to ours:
50525         http://source.icu-project.org/repos/icu/icu/tags/release-3-2/source/common/unicode/ucnv_cb.h
50527         * icu/unicode/ucnv_cb.h: Added.
50529 2007-03-08  Shrikant Gangoda  <shrikant.gangoda@celunite.com>
50531         Gdk build fix.
50533         * platform/graphics/cairo/ImageSourceCairo.cpp:
50534         (WebCore::ImageSource::~ImageSource):
50535         (WebCore::ImageSource::clear):
50537 2007-03-08  Oliver Hunt  <oliver@apple.com>
50539         Reviewed by Adam.
50541         To match old TEC behaviour when using ICU we need to use 
50542         a few manual fallback encodings for the GBK/EUC-CN charsets
50544         <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
50546         * platform/TextCodecICU.cpp:
50547         (WebCore::TextCodecICU::TextCodecICU):
50548         (WebCore::TextCodecICU::createICUConverter):
50549         (WebCore::gbkEscapes):
50550         (WebCore::gbkCallbackEscape):
50551         (WebCore::gbkCallbackSubstitute):
50552         (WebCore::TextCodecICU::encode):
50553         * platform/TextCodecICU.h:
50554         (WebCore::TextCodecICU::needsGBKFallbacks):
50555         (WebCore::TextCodecICU::setNeedsGBKFallbacks):
50557 2007-03-08  Alexey Proskuryakov  <ap@webkit.org>
50559         Build fix.
50561         * xml/XPathUtil.cpp:
50562         (WebCore::XPath::stringValue):
50564 2007-03-08  David Hyatt  <hyatt@apple.com>
50566         This patch dramatically reduces the memory consumed by animated images.  For large animated GIFs (defined for
50567         now as >1mb in terms of decoded frame buffer size), we will now aggressively flush previous frames of the
50568         animated GIF and just re-decode them on the fly if the animation loops.
50570         Whenever a large animated GIF has its animation reset, we will also just throw out everything and start
50571         the animation over (in order to get rid of any cached detritus held in the ImageSource).
50573         With this patch and the sample GIF used to test, WebKit's memory consumption went from 160MB down to 16MB.
50575         Reviewed by mjs
50577         * platform/graphics/BitmapImage.cpp:
50578         (WebCore::BitmapImage::destroyDecodedData):
50579         (WebCore::BitmapImage::resetAnimation):
50580         (WebCore::BitmapImage::advanceAnimation):
50581         * platform/graphics/ImageSource.h:
50582         * platform/graphics/cg/ImageSourceCG.cpp:
50583         (WebCore::ImageSource::~ImageSource):
50584         (WebCore::ImageSource::clear):
50586 2007-03-08  Alexey Proskuryakov  <ap@webkit.org>
50588         Reviewed by Darin.
50590         http://bugs.webkit.org/show_bug.cgi?id=13006
50591         XPath string-value is broken for some node types
50593         Test: fast/xpath/string-value.html
50595         * xml/XPathUtil.cpp:
50596         (WebCore::XPath::stringValue): Fix it :-)
50598 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
50600         Reviewed by Adam.
50602         <rdar://problem/4981000> 
50603         http://bugs.webkit.org/show_bug.cgi?id=12634
50604         REGRESSION: crash loading web archive (12634)
50605         
50606         The reason this bug wasn't always reproducible is that it involved sending an event to a plugin while 
50607         the page was loading. Before we send the event to the plugin we defer loads. The problem was that
50608         MainResourceLoader::setDefersLoad would not work with data loads.
50609         
50610         * loader/DocumentLoader.cpp:
50611         (WebCore::DocumentLoader::setRequest):
50612         Only set m_committed to false if we also have a valid unreachable URL.
50613         
50614         * loader/MainResourceLoader.cpp:
50615         (WebCore::MainResourceLoader::setDefersLoading):
50616         Make sure to stop and start data loads.
50618 2007-03-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50620         Not reviewed.
50622         Gdk build fixes.
50624         * platform/gdk/EditorClientGdk.cpp:
50625         (WebCore::EditorClientGdk::handleKeypress): renamed
50626         (WebCore::EditorClientGdk::handleInputMethodKeypress): add a stub
50627         * platform/gdk/EditorClientGdk.h:
50628         * platform/graphics/cairo/ImageSourceCairo.cpp:
50629         (WebCore::ImageSource::destroyFrameAtIndex): add a stub
50631 2007-03-07  Alexey Proskuryakov  <ap@webkit.org>
50633         Reviewed by Darin.
50635         http://bugs.webkit.org/show_bug.cgi?id=13004
50636         Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks
50638         Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless.
50639         Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes.
50641         Test: fast/xpath/evaluate-twice.html
50643         * xml/XPathExpression.cpp:
50644         (WebCore::XPathExpression::evaluate):
50645         * xml/XPathExpressionNode.cpp:
50646         (WebCore::XPath::Expression::Expression):
50647         (WebCore::XPath::Expression::~Expression):
50648         * xml/XPathExpressionNode.h:
50649         * xml/XPathFunctions.cpp:
50650         (WebCore::XPath::FunLast::evaluate):
50651         (WebCore::XPath::FunPosition::evaluate):
50652         (WebCore::XPath::FunId::evaluate):
50653         (WebCore::XPath::FunLocalName::evaluate):
50654         (WebCore::XPath::FunNamespaceURI::evaluate):
50655         (WebCore::XPath::FunName::evaluate):
50656         (WebCore::XPath::FunCount::evaluate):
50657         (WebCore::XPath::FunString::evaluate):
50658         (WebCore::XPath::FunConcat::evaluate):
50659         (WebCore::XPath::FunStartsWith::evaluate):
50660         (WebCore::XPath::FunContains::evaluate):
50661         (WebCore::XPath::FunSubstringBefore::evaluate):
50662         (WebCore::XPath::FunSubstringAfter::evaluate):
50663         (WebCore::XPath::FunSubstring::evaluate):
50664         (WebCore::XPath::FunStringLength::evaluate):
50665         (WebCore::XPath::FunNormalizeSpace::evaluate):
50666         (WebCore::XPath::FunTranslate::evaluate):
50667         (WebCore::XPath::FunBoolean::evaluate):
50668         (WebCore::XPath::FunNot::evaluate):
50669         (WebCore::XPath::FunTrue::evaluate):
50670         (WebCore::XPath::FunLang::evaluate):
50671         (WebCore::XPath::FunFalse::evaluate):
50672         (WebCore::XPath::FunNumber::evaluate):
50673         (WebCore::XPath::FunSum::evaluate):
50674         (WebCore::XPath::FunFloor::evaluate):
50675         (WebCore::XPath::FunCeiling::evaluate):
50676         (WebCore::XPath::FunRound::evaluate):
50677         * xml/XPathPath.cpp:
50678         (WebCore::XPath::Filter::evaluate):
50679         (WebCore::XPath::LocationPath::evaluate):
50680         (WebCore::XPath::Path::evaluate):
50681         * xml/XPathPath.h:
50682         * xml/XPathPredicate.cpp:
50683         (WebCore::XPath::Number::evaluate):
50684         (WebCore::XPath::StringExpression::evaluate):
50685         (WebCore::XPath::Negative::evaluate):
50686         (WebCore::XPath::NumericOp::evaluate):
50687         (WebCore::XPath::EqTestOp::evaluate):
50688         (WebCore::XPath::LogicalOp::evaluate):
50689         (WebCore::XPath::Union::evaluate):
50690         * xml/XPathPredicate.h:
50691         * xml/XPathStep.cpp:
50692         * xml/XPathStep.h:
50693         * xml/XPathVariableReference.cpp:
50694         (WebCore::XPath::VariableReference::evaluate):
50695         * xml/XPathVariableReference.h:
50697 2007-03-07  Sam Weinig  <sam@webkit.org>
50699         Reviewed by Tim H.
50701         Remove unused #import from Objective-C bindings and cleanup the order of #imports.
50703         * bindings/scripts/CodeGeneratorObjC.pm:
50705 2007-03-07  Sam Weinig  <sam@webkit.org>
50707         Reviewed by Tim H.
50709         Make sure the baseURI attribute generates for private Objective-C bindings.
50711         * dom/Node.idl:
50713 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
50715         Reviewed by Maciej.
50717         <rdar://problem/4874059>
50718         REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
50720         If a load is done from inside of an error delegate method that is called because we cancel another load, 
50721         the first load should be ignored since this is what shipping WebKit does. 
50722         
50723         (Actually, it does load the page in the data source but doesn't do anything with it since the data source
50724         won't have a web frame).
50725         
50726         * loader/FrameLoader.cpp:
50727         (WebCore::FrameLoader::load):
50728         Just bail out if m_isStoppingLoad is true.
50730 2007-03-07  David Hyatt  <hyatt@apple.com>
50732         Use CGImageRelease instead of CFRelease.
50734         Reviewed by aroben
50736         * platform/graphics/cg/ImageCG.cpp:
50737         (WebCore::FrameData::clear):
50738         * platform/graphics/cg/ImageSourceCG.cpp:
50739         (WebCore::ImageSource::destroyFrameAtIndex):
50741 2007-03-07  David Hyatt  <hyatt@apple.com>
50743         Fix a regression where the cache size overflows because of a double
50744         subtraction per resource when they got removed from the cache.  Add an
50745         assert to adjustSize to detect this case in the future.
50747         Fix ImageSourceCG so that when we flush decoded data from our cache that
50748         we also flush it from the ImageSource.
50750         Reviewed by mjs
50752         * loader/Cache.cpp:
50753         (WebCore::Cache::adjustSize):
50754         * platform/graphics/BitmapImage.cpp:
50755         (WebCore::BitmapImage::~BitmapImage):
50756         (WebCore::BitmapImage::destroyDecodedData):
50757         * platform/graphics/Image.h:
50758         * platform/graphics/ImageSource.h:
50759         * platform/graphics/cg/ImageSourceCG.cpp:
50760         (WebCore::ImageSource::setData):
50761         (WebCore::ImageSource::destroyFrameAtIndex):
50763 2007-03-07  Mitz Pettel  <mitz@webkit.org>
50765         Reviewed by Darin.
50767         - fix http://bugs.webkit.org/show_bug.cgi?id=13002
50768           Incomplete repaint of inset outlines
50770         Test: fast/repaint/outline-inset.html
50772         * rendering/RenderObject.cpp:
50773         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
50775 2007-03-07  Oliver Hunt  <oliver@apple.com>
50777         Reviewed by Antti.
50779         Reset mouse down/drag state variables on mouse button release
50780         
50781         Fixes <rdar://problem/5044654>: Drag out of some QuickTime plug-ins converting into image drag
50783         * page/EventHandler.cpp:
50784         (WebCore::EventHandler::handleMouseReleaseEvent):
50786 2007-03-07  Adele Peterson  <adele@apple.com>
50788         Reviewed by Darin.
50790         WebCore part of fix for:
50791         http://bugs.webkit.org/show_bug.cgi?id=10871
50792         http://bugs.webkit.org/show_bug.cgi?id=12677
50793         <rdar://problem/4823129> REGRESSION: IME key events different in nightly
50794         <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri
50796         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Call handleInputMethodKeypress before actually dispatching the keypress event
50797           so that input methods have a chance to handle the event.  
50798           If the input method handles the event (by marking or unmarking text), then we don't need to send the keypress event.
50799           If an input method doesn't handle the event, then we'll save the data we need to perform the correct action (like what text to insert or what selector to use) 
50800           when we dispatch the keypress event.
50802         * dom/KeyboardEvent.h: Added Mac-specific KeypressCommand struct, so we can store command info during handleInputMethodKeypress, and use it during handleKeypress.
50803         (WebCore::KeyboardEvent::keypressCommand):
50804         (WebCore::KeyboardEvent::setKeypressCommand):
50806         * bridge/EditorClient.h:
50807         * editing/Editor.cpp:
50808         (WebCore::Editor::handleKeypress): Changed handleKeyPress to handleKeypress.
50809         (WebCore::Editor::handleInputMethodKeypress): Added.
50810         * editing/Editor.h:
50812         * platform/graphics/svg/SVGImageEmptyClients.h:
50813         (WebCore::SVGEmptyEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.
50814         (WebCore::SVGEmptyEditorClient::handleInputMethodKeypress): Added.
50816 2007-03-07  Rob Buis  <buis@kde.org>
50818         Reviewed by Darin.
50820         http://bugs.webkit.org/show_bug.cgi?id=12579
50821         WebKit fails SVG xml:base test
50823         Implement DOM3 properties baseURI and documentURI to fix
50824         the testcase in bug 12579.
50826         * bindings/js/kjs_dom.cpp:
50827         (KJS::DOMNode::getValueProperty):
50828         * bindings/js/kjs_domnode.h:
50829         (KJS::DOMNode::):
50830         * dom/Document.cpp:
50831         (WebCore::Document::documentURI):
50832         (WebCore::Document::setDocumentURI):
50833         (WebCore::Document::baseURI):
50834         * dom/Document.h:
50835         * dom/Document.idl:
50836         * dom/DocumentType.cpp:
50837         (WebCore::DocumentType::baseURI):
50838         * dom/DocumentType.h:
50839         * dom/Element.cpp:
50840         (WebCore::Element::baseURI):
50841         * dom/Element.h:
50842         * dom/Node.cpp:
50843         (WebCore::Node::baseURI):
50844         * dom/Node.h:
50845         * ksvg2/misc/SVGImageLoader.cpp:
50846         (WebCore::SVGImageLoader::updateFromElement):
50847         * ksvg2/svg/SVGImageElement.cpp:
50848         (WebCore::SVGImageElement::parseMappedAttribute):
50849         (WebCore::SVGImageElement::attach):
50851 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
50853         Reviewed by Brady.
50855         Remove some methods in FrameLoader that just calls down to the active document loader. Since each
50856         resource loader now has a pointer to its document loader, we can just call directly to the
50857         document loader.
50859         * WebCore.exp:
50860         * loader/FrameLoader.cpp:
50861         * loader/FrameLoader.h:
50862         * loader/MainResourceLoader.cpp:
50863         (WebCore::MainResourceLoader::willSendRequest):
50864         (WebCore::MainResourceLoader::didReceiveResponse):
50865         * loader/SubresourceLoader.cpp:
50866         (WebCore::SubresourceLoader::SubresourceLoader):
50867         (WebCore::SubresourceLoader::didFinishLoading):
50868         (WebCore::SubresourceLoader::didFail):
50869         (WebCore::SubresourceLoader::didCancel):
50870         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
50871         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
50872         (WebCore::NetscapePlugInStreamLoader::didFail):
50873         (WebCore::NetscapePlugInStreamLoader::didCancel):
50875 2007-03-06  Geoffrey Garen  <ggaren@apple.com>
50877         Reviewed by Maciej Stachowiak.
50878         
50879         Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
50880         PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)
50881         
50882         No test because this is very difficult to repro, and the new ASSERTs in 
50883         JavaScriptCore catch the underlying cause while running normal layout tests.
50884         
50885         This is a modified version of r14752 on the branch.
50886         
50887         The fix is to use a bit inside each node, instead of a hash table, to track 
50888         which node subtrees are in the process of being marked. This avoids a call 
50889         to malloc inside mark().
50890         
50891         * bindings/js/kjs_binding.cpp:
50892         (KJS::domObjects):
50893         (KJS::domNodesPerDocument):
50894         * bindings/js/kjs_dom.cpp:
50895         (KJS::DOMNode::mark):
50896         * dom/Node.cpp:
50897         (WebCore::Node::Node):
50898         * dom/Node.h:
50900 2007-03-06  David Hyatt  <hyatt@apple.com>
50902         This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
50903         images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
50904         contained within it.  WebCore's memory use over time should significantly improve as a result of these
50905         changes.
50907         Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
50908         the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
50909         Both sizes now count towards the total size of the object and towards the allowed memory cache total.
50911         By including both totals the reported size of resources will now be larger, and the cache will therefore become
50912         much more aggressive about flushing.
50914         Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
50915         used when determining the correct LRU list.
50917         The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
50918         resources.  By being able to compact its resources without evicting them, the memory cache can now hold many more
50919         unique resources (encoded) in the same amount of space.  Depending on how much of a hit we want to take from
50920         re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
50921         more resources than it did at the larger size!
50923         Reviewed by mjs
50925         * WebCore.xcodeproj/project.pbxproj:
50926         * loader/Cache.cpp:
50927         (WebCore::Cache::requestResource):
50928         (WebCore::Cache::prune):
50929         (WebCore::Cache::remove):
50930         (WebCore::Cache::lruListFor):
50931         (WebCore::Cache::adjustSize):
50932         * loader/Cache.h:
50933         * loader/CachedCSSStyleSheet.cpp:
50934         (WebCore::CachedCSSStyleSheet::data):
50935         * loader/CachedImage.cpp:
50936         (WebCore::CachedImage::CachedImage):
50937         (WebCore::CachedImage::allReferencesRemoved):
50938         (WebCore::CachedImage::clear):
50939         (WebCore::CachedImage::data):
50940         (WebCore::CachedImage::destroyDecodedData):
50941         (WebCore::CachedImage::decodedSize):
50942         (WebCore::CachedImage::decodedSizeChanged):
50943         (WebCore::CachedImage::shouldPauseAnimation):
50944         * loader/CachedImage.h:
50945         * loader/CachedResource.cpp:
50946         (WebCore::CachedResource::CachedResource):
50947         (WebCore::CachedResource::deref):
50948         (WebCore::CachedResource::setEncodedSize):
50949         * loader/CachedResource.h:
50950         (WebCore::CachedResource::allReferencesRemoved):
50951         (WebCore::CachedResource::size):
50952         (WebCore::CachedResource::encodedSize):
50953         (WebCore::CachedResource::decodedSize):
50954         (WebCore::CachedResource::destroyDecodedData):
50955         * loader/CachedScript.cpp:
50956         (WebCore::CachedScript::data):
50957         * loader/CachedXSLStyleSheet.cpp:
50958         (WebCore::CachedXSLStyleSheet::data):
50959         * platform/graphics/BitmapImage.cpp:
50960         (WebCore::BitmapImage::BitmapImage):
50961         (WebCore::BitmapImage::~BitmapImage):
50962         (WebCore::BitmapImage::destroyDecodedData):
50963         (WebCore::BitmapImage::pruneDecodedDataIfNeeded):
50964         (WebCore::BitmapImage::cacheFrame):
50965         (WebCore::BitmapImage::setNativeData):
50966         (WebCore::BitmapImage::shouldAnimate):
50967         (WebCore::BitmapImage::advanceAnimation):
50968         * platform/graphics/BitmapImage.h:
50969         (WebCore::BitmapImage::decodedSize):
50970         * platform/graphics/Image.cpp:
50971         (WebCore::Image::Image):
50972         * platform/graphics/Image.h:
50973         (WebCore::Image::destroyDecodedData):
50974         (WebCore::Image::decodedSize):
50975         (WebCore::Image::imageObserver):
50976         * platform/graphics/ImageAnimationObserver.h: Removed.
50977         * platform/graphics/ImageObserver.h: Added.
50978         (WebCore::ImageObserver::~ImageObserver):
50979         * platform/graphics/svg/SVGImage.cpp:
50980         (WebCore::SVGImage::SVGImage):
50981         * platform/graphics/svg/SVGImage.h:
50983 2007-03-06  Alexey Proskuryakov  <ap@webkit.org>
50985         Reviewed by Sam Weinig.
50987         http://bugs.webkit.org/show_bug.cgi?id=12987
50988         Fix and import 4XPath test_numeric_expr.html
50990         * xml/XPathPredicate.cpp:
50991         (WebCore::XPath::Negative::doEvaluate): Convert the argument to number.
50992         (WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
50993         * xml/XPathStep.cpp:
50994         (WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
50995         * xml/XPathValue.cpp:
50996         (WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
50997         * platform/DeprecatedString.cpp:
50998         (WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.
51000 2007-03-06  Maciej Stachowiak  <mjs@apple.com>
51002         Reviewed by Adele.
51004         <rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)
51005         
51006         * platform/mac/PopupMenuMac.mm:
51007         (WebCore::PopupMenu::show): Make a temporary dummy view with the
51008         passed in rect, since AppKit will use the view bounds to determine
51009         what area to exclude when popping up a menu moved to the top of
51010         the screen.
51012 2007-03-06  Geoffrey Garen  <ggaren@apple.com>
51014         Reviewed by Maciej Stachowiak.
51016         Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See 
51017         JavaScriptCore ChangeLog for more details.
51019         * bindings/js/kjs_binding.cpp:
51020         (KJS::domNodesPerDocument): Added thread safety ASSERT.
51021         (KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
51022         objects when collecting on a secondary thread. The Collector takes care
51023         of this now.
51025         * bindings/js/kjs_binding.h:
51026         (KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
51027         objects should be garbage collected on the main thread only.
51029         * bindings/js/kjs_window.cpp:
51030         (KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
51031         which, for some subclasses, ends up allocating garbage collected objects.
51032         (This fix was speculative. I didn't actually see a crash from this.)
51033         (KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
51034         since it destroys a KJS::List.
51036         * bindings/objc/WebScriptObject.mm:
51037         (-[WebScriptObject setException:]): Added JSLock. (This fix was speculative. 
51038         I didn't actually see a crash from this.)
51040         * bridge/mac/WebCoreScriptDebugger.mm:
51041         (-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix 
51042         was speculative. I didn't actually see a crash from this.)
51044         * dom/Document.cpp:
51045         (WebCore::Document::~Document): Added JSLock around modification to 
51046         domNodesPerDocument(), which can be accessed concurrently during garbage 
51047         collection.
51048         * dom/Node.cpp:
51049         (WebCore::Node::setDocument): ditto.
51050         
51051         [*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
51052         crashes this test because it causes the garbage collector to run frequently,
51053         and this test crashes if you happen to garbage collect while it's running.
51054         This is a known issue with stack overflow during the mark phase. It's
51055         not related to threading.
51057 2007-03-06  Mark Rowe  <mrowe@apple.com>
51059         Reviewed by Sam Weinig.
51061         Fix http://bugs.webkit.org/show_bug.cgi?id=12942
51062         Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS
51064         Test: fast/dom/select-selectedIndex-bug-12942.html.
51066         * html/HTMLSelectElement.cpp:
51067         (WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
51068         * html/HTMLSelectElement.h:
51070 2007-03-06  Brady Eidson  <beidson@apple.com>
51072         Rubberstamped by Kevin Decker
51074         20,000!
51076         * ChangeLog: Point out revision 20,000
51078 2007-03-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51080         Not reviewed.
51082         Gdk build fix.
51084         * loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature.
51085         (WebCore::FrameLoaderClientGdk::userAgent):
51086         * loader/gdk/FrameLoaderClientGdk.h: ditto.
51088 2007-03-06  Mitz Pettel  <mitz@webkit.org>
51090         Reviewed by Adele.
51092         - fix http://bugs.webkit.org/show_bug.cgi?id=12986
51093           REGRESSION(NativeListBox): Listboxes not updated when resized dynamically
51095         Test: fast/forms/select-change-listbox-size.html
51097         * html/HTMLSelectElement.cpp:
51098         (WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.
51100 2007-03-06  Mitz Pettel  <mitz@webkit.org>
51102         Reviewed by Dave Hyatt.
51104         - fix http://bugs.webkit.org/show_bug.cgi?id=12885
51105           REGRESSION (r19696): Incomplete background repaint
51107         Tests: fast/repaint/content-into-overflow.html
51108                fast/repaint/overflow-into-content.html
51110         Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
51111         rect, the unclipped border box plus outline, and to repaint any areas that
51112         were added or removed from that box, in addition to any areas added or removed
51113         from the clipped overflow rect.
51115         * platform/graphics/svg/SVGResourceMarker.cpp:
51116         (WebCore::SVGResourceMarker::draw):
51117         * rendering/RenderBlock.cpp:
51118         (WebCore::RenderBlock::layoutBlock):
51119         * rendering/RenderBox.cpp:
51120         (WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to
51121         this.
51122         * rendering/RenderBox.h:
51123         * rendering/RenderFlexibleBox.cpp:
51124         (WebCore::RenderFlexibleBox::layoutBlock):
51125         * rendering/RenderFlow.cpp:
51126         (WebCore::RenderFlow::absoluteClippedOverflowRect):
51127         * rendering/RenderFlow.h:
51128         * rendering/RenderForeignObject.cpp:
51129         (WebCore::RenderForeignObject::layout):
51130         * rendering/RenderHTMLCanvas.cpp:
51131         (WebCore::RenderHTMLCanvas::layout):
51132         * rendering/RenderImage.cpp:
51133         (WebCore::RenderImage::layout):
51134         * rendering/RenderLayer.cpp:
51135         (WebCore::RenderLayer::RenderLayer):
51136         (WebCore::RenderLayer::checkForRepaintOnResize):
51137         (WebCore::RenderLayer::updateLayerPositions):
51138         * rendering/RenderLayer.h:
51139         * rendering/RenderObject.cpp:
51140         (WebCore::RenderObject::repaint):
51141         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
51142         (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
51143         (WebCore::RenderObject::absoluteClippedOverflowRect):
51144         (WebCore::RenderObject::absoluteOutlineBox):
51145         * rendering/RenderObject.h:
51146         * rendering/RenderPath.cpp:
51147         (WebCore::RenderPath::layout):
51148         (WebCore::RenderPath::absoluteClippedOverflowRect):
51149         (WebCore::RenderPath::absoluteRects):
51150         (WebCore::RenderPath::drawMarkersIfNeeded):
51151         * rendering/RenderPath.h:
51152         * rendering/RenderSVGContainer.cpp:
51153         (WebCore::RenderSVGContainer::layout):
51154         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
51155         (WebCore::RenderSVGContainer::absoluteRects):
51156         * rendering/RenderSVGContainer.h:
51157         * rendering/RenderSVGHiddenContainer.cpp:
51158         (WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
51159         * rendering/RenderSVGHiddenContainer.h:
51160         * rendering/RenderSVGImage.cpp:
51161         (WebCore::RenderSVGImage::imageChanged):
51162         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
51163         (WebCore::RenderSVGImage::absoluteRects):
51164         * rendering/RenderSVGImage.h:
51165         * rendering/RenderSVGText.cpp:
51166         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
51167         (WebCore::RenderSVGText::layout):
51168         (WebCore::RenderSVGText::absoluteRects):
51169         * rendering/RenderSVGText.h:
51170         * rendering/RenderTable.cpp:
51171         (WebCore::RenderTable::layout):
51172         * rendering/RenderTableCell.cpp:
51173         (WebCore::RenderTableCell::absoluteClippedOverflowRect):
51174         * rendering/RenderTableCell.h:
51175         * rendering/RenderTableCol.cpp:
51176         (WebCore::RenderTableCol::absoluteClippedOverflowRect):
51177         * rendering/RenderTableCol.h:
51178         * rendering/RenderTableRow.cpp:
51179         (WebCore::RenderTableRow::absoluteClippedOverflowRect):
51180         * rendering/RenderTableRow.h:
51181         * rendering/RenderText.cpp:
51182         (WebCore::RenderText::absoluteClippedOverflowRect):
51183         * rendering/RenderText.h:
51185 2007-03-06  Feng Qian  <feng@chromium.org>
51187         Reviewed by Maciej.
51189         - fixed http://bugs.webkit.org/show_bug.cgi?id=12720
51190         Bug 12720: Re-defining window.location.toString function keeps re-loading forever
51192         * bindings/js/kjs_window.cpp:
51193         Disallow replacing functions in LocationTable, and return early without updating URL.
51195 2007-03-06  Kevin McCullough  <kmccullough@apple.com>
51197         Reviewed by Darin.
51199         <http://bugs.webkit.org/show_bug.cgi?id=12686>
51200         REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT
51201         - Now all class constructors implement implementsHasInstance.
51203         * bindings/scripts/CodeGeneratorJS.pm:
51205 2007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
51207         Reviewed by Rob & Oliver.
51209         Preparations for the new SVG text engine.
51211         Handle baseline-shift / kerning css values correctly.
51212         Recognize missing svg presentation attribute "font-size-adjust".
51213         Add all missing svg<->css property mappings in mapToEntry().
51215         Doesn't affect any layout test (as these properties are not used w/o my text patch).
51216         While I'm at it, unify the macro names (RS_ -> SVG_RS_) & cleanup style a bit.
51218         * ksvg2/css/CSSPropertyNames.in:
51219         * ksvg2/css/SVGCSSParser.cpp:
51220         (WebCore::CSSParser::parseSVGValue):
51221         * ksvg2/css/SVGCSSStyleSelector.cpp:
51222         (WebCore::CSSStyleSelector::applySVGProperty):
51223         * ksvg2/css/SVGRenderStyle.cpp:
51224         (WebCore::SVGRenderStyle::SVGRenderStyle):
51225         (WebCore::SVGRenderStyle::operator==):
51226         (WebCore::SVGRenderStyle::inheritedNotEqual):
51227         (WebCore::SVGRenderStyle::inheritFrom):
51228         * ksvg2/css/SVGRenderStyle.h:
51229         (WebCore::SVGRenderStyle::NonInheritedFlags::):
51230         (WebCore::SVGRenderStyle::setBitDefaults):
51231         * ksvg2/css/SVGRenderStyleDefs.cpp:
51232         (StyleTextData::StyleTextData):
51233         (StyleTextData::operator==):
51234         (StyleMiscData::StyleMiscData):
51235         (StyleMiscData::operator==):
51236         * ksvg2/css/SVGRenderStyleDefs.h:
51237         (WebCore::):
51238         (WebCore::StyleTextData::operator!=):
51239         * ksvg2/svg/SVGStyledElement.cpp:
51240         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
51242 2007-03-06  Justin Garcia  <justin.garcia@apple.com>
51244         Reviewed by kevin
51245         
51246         <http://bugs.webkit.org/show_bug.cgi?id=12245>
51247         FCKeditor: Remove Format sometimes doesn't work
51248         <rdar://problem/4786404>
51249         Underline style is not removed from selection after performing Remove Format
51251         * editing/Editor.cpp:
51252         (WebCore::Editor::removeFormattingAndStyle): Re-wrote this.
51254 2007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
51256         Reviewed by Oliver.
51258         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12979
51259         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12981
51261         Guard against registering pending resources with empty id.
51262         Be careful with calling recalcStyle() in SVGUseElement, when change is "Detach" we
51263         have to use special code, as calling attach() on the shadow tree root element will crash,
51264         because it has no (direct) parent node, only a shadow parent node element.
51266         * ksvg2/misc/SVGDocumentExtensions.cpp:
51267         (WebCore::SVGDocumentExtensions::addPendingResource):
51268         * ksvg2/svg/SVGUseElement.cpp:
51269         (WebCore::SVGUseElement::recalcStyle):
51271 2007-03-06  Kevin Decker  <kdecker@apple.com>
51273         Reviewed by Adele.
51275         Fixed: <rdar://problem/5041660> REGRESSION: <keygen> element broken, prevents users from signing up for Thawte email certs
51276         
51277         * bindings/objc/DOM.mm:
51278         (WebCore::createElementClassMap): Added <keygen> to the DOM bindings so it can be accessed from Objective-C.
51279         * css/html4.css: Apply the look of the <select> element to <keygen>.
51280         * html/HTMLElementFactory.cpp:
51281         (WebCore::keygenConstructor): Added. 
51282         (WebCore::createFunctionMap): Added keygen.
51283         * html/HTMLSelectElement.cpp: Made const typeAheadTimeout variable static const. 
51284         (WebCore::HTMLSelectElement::HTMLSelectElement):  Fix both HTMLSelectElement constructors to initialize the
51285          same number of member variables. The fact that some fields were not initialized could (and would) crash the
51286          keygen element when selecting different items. Also removed m_typedString(String()) from the constructor
51287          initialization because this is not needed.
51289 2007-03-06  Kevin McCullough  <kmccullough@apple.com>
51291         Reviewed by Darin.
51293         - Rename a function to clarify its purpose.
51295         * WebCore.exp:
51296         * loader/FrameLoader.cpp:
51297         (WebCore::FrameLoader::registerURLSchemeAsLocal):
51298         * loader/FrameLoader.h:
51300 2007-03-06  Adam Roben  <aroben@apple.com>
51302         Build fix.
51304         * WebCore.exp: Updated symbols.
51306 2007-03-06  Adam Roben  <aroben@apple.com>
51308         Reviewed by Anders.
51310         Added a parameter to all StringTruncator methods to specify whether
51311         rounding hacks should be on or off.
51313         No layout test possible.
51315         * platform/StringTruncator.cpp:
51316         (WebCore::stringWidth): Added disableRoundingHacks parameter.
51317         (WebCore::truncateString): Ditto.
51318         (WebCore::StringTruncator::centerTruncate): Ditto.
51319         (WebCore::StringTruncator::rightTruncate): Ditto.
51320         (WebCore::StringTruncator::width): Ditto.
51321         * platform/StringTruncator.h: Ditto.
51322         * platform/mac/FileChooserMac.mm:
51323         (WebCore::FileChooser::basenameForWidth): Pass in false to
51324         centerTruncate so that the truncation matches the way the text will be
51325         rendered.
51327 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
51329         Reviewed by Maciej.
51331         <rdar://problem/5035045>
51332         REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html
51333         
51334         It turns out WinIE does allow you to access images by their id as special document properties. However, this is only
51335         allowed when the element also has a name attribute. The value of the name attribute is ignored and can even be empty!
51336         
51337         * bindings/js/kjs_html.cpp:
51338         (KJS::JSHTMLDocument::namedItemGetter):
51339         Return jsUndefined() if the collection is empty.
51340         
51341         * html/HTMLImageElement.cpp:
51342         (WebCore::HTMLImageElement::parseMappedAttribute):
51343         (WebCore::HTMLImageElement::insertedIntoDocument):
51344         (WebCore::HTMLImageElement::removedFromDocument):
51345         * html/HTMLImageElement.h:
51346         Add the id attribute value to the extra named item map.
51347         
51348         * html/HTMLNameCollection.cpp:
51349         (WebCore::HTMLNameCollection::traverseNextItem):
51350         Check for images with name attributes that match, as well as elements with id attributes that match where
51351         the element also has a name attribute.
51353 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
51355         Reviewed by Adam.
51357         WebCore part of patch to make it possible to have different user agents for different URLs.
51359         * bindings/js/kjs_navigator.cpp:
51360         (KJS::Navigator::getValueProperty):
51361         * bindings/js/kjs_proxy.cpp:
51362         (WebCore::KJSProxy::initScriptIfNeeded):
51363         * loader/DocumentLoader.cpp:
51364         (WebCore::DocumentLoader::setLoading):
51365         * loader/FrameLoader.cpp:
51366         (WebCore::FrameLoader::userAgent):
51367         (WebCore::FrameLoader::loadResourceSynchronously):
51368         (WebCore::FrameLoader::applyUserAgent):
51369         * loader/FrameLoader.h:
51370         * loader/FrameLoaderClient.h:
51371         * platform/graphics/svg/SVGImageEmptyClients.h:
51372         (WebCore::SVGEmptyFrameLoaderClient::userAgent):
51374 2007-03-05  Kevin McCullough  <kmccullough@apple.com>
51376         Reviewed by Mark and Dave H.
51378         - rdar://problem/5038491
51379         An oversight of the security fix that prevented remote from loading local is that it
51380         prevents user style sheets when the site is remote.  This fixes that.
51382         * loader/Cache.cpp: Propogate and check user style sheet flag.
51383         (WebCore::createResource):
51384         (WebCore::Cache::requestResource):
51385         * loader/Cache.h: Propogate user style sheet flag.
51386         * loader/CachedCSSStyleSheet.cpp: Propogate user style sheet flag.
51387         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
51388         * loader/CachedCSSStyleSheet.h: Propogate user style sheet flag.
51389         * loader/DocLoader.cpp: Propogate user style sheet flag.
51390         (WebCore::DocLoader::requestResource):
51391         * loader/SubresourceLoader.cpp: Propogate and check user style sheet flag.
51392         (WebCore::SubresourceLoader::create):
51393         * loader/SubresourceLoader.h: Add check for user style sheet flag.
51394         * loader/loader.cpp: Propogate user style sheet flag.
51395         (WebCore::Loader::load):
51396         (WebCore::Loader::servePendingRequests):
51397         * loader/loader.h: Propogate user style sheet flag.
51399 2007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
51401         Reviewed by Darin.
51403         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12936 (Master bug used to track all current use problems.)
51405         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12926 (transform attribute not respected in nested <use> elements)
51406         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12267 (getElementById broken for <use>)
51407         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12916 (use instance in symbol definition does not work)
51408         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12917 (mouseout event does not occur after scaling use instance)
51409         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> DOM broken for script)
51411         Added test: svg/custom/use-nested-transform.svg
51412         Added test: svg/custom/struct-use-09-b.svg (not yet official W3C-SVG-1.1 testcase)
51413         Fixes test: svg/custom/use-elementInstance-event-target.svg (rectangle now turns green on first click)
51415         Fix all (except one) known <use> bug. The remaining bug (12630) is not crucical at all.
51416         Enable <use> again as default SVG feature, as discussed on webkit-dev.
51418         dom/Element.cpp needed following tweak: set hasParentStyle to true, if there is no parentNode
51419         available - which happens for <use> nodes, as it's a shadow node. This fixes recalcStyle behaviour.
51420         Override recalcStyle() in SVGUseElement, and properly forward the call to the shadow tree root element.
51421         The shadow tree now receives proper style updates (without having to recreate the whole tree!).
51423         Override attributeChanged() in SVGUseElement and only call notifyAttributeChange if one of x/y/width/height/xlink:href
51424         attribute changed - otherwhise we'll end up recreating the tree for every transform/style/(non-existing-attribute) change.
51426         Do not override transform in nested use situations, but correctly append (right-sided) the translation of the <use> element.
51427         Some cosmetic fixes: don't add transform="translate(0 0)" attributes if both x/y values are null in the shadow tree.
51429         Factor out logic for replacing symbol/svg tags in the shadow tree, and also invoke it during expandUseElementsInShadowTree -
51430         otherwhise <symbol><use xlink:href="#someOtherSymbol"></symbol> the <use> gets expanded to a <symbol>. Though no one expands
51431         the <symbol> element - and we're end up in hitting an assertion. Avoid that.
51433         * bindings/js/JSSVGElementWrapperFactory.cpp:
51434         * bindings/js/kjs_dom.cpp:
51435         (KJS::toJS):
51436         * bindings/objc/DOM.mm:
51437         (WebCore::createElementClassMap):
51438         * dom/Element.cpp:
51439         (WebCore::Element::recalcStyle):
51440         * ksvg2/svg/SVGElement.cpp:
51441         (WebCore::shadowTreeParentElementForShadowTreeElement):
51442         (WebCore::SVGElement::dispatchEvent):
51443         * ksvg2/svg/SVGElementInstance.cpp:
51444         * ksvg2/svg/SVGElementInstance.h:
51445         * ksvg2/svg/SVGElementInstance.idl:
51446         * ksvg2/svg/SVGElementInstanceList.cpp:
51447         * ksvg2/svg/SVGElementInstanceList.h:
51448         * ksvg2/svg/SVGElementInstanceList.idl:
51449         * ksvg2/svg/SVGStyledElement.cpp:
51450         (WebCore::SVGStyledElement::notifyAttributeChange):
51451         (WebCore::SVGStyledElement::updateElementInstance):
51452         * ksvg2/svg/SVGStyledElement.h:
51453         * ksvg2/svg/SVGUseElement.cpp:
51454         (WebCore::SVGUseElement::attributeChanged):
51455         (WebCore::SVGUseElement::notifyAttributeChange):
51456         (WebCore::SVGUseElement::recalcStyle):
51457         (WebCore::SVGUseElement::buildPendingResource):
51458         (WebCore::SVGUseElement::buildShadowTreeForSymbolTag):
51459         (WebCore::SVGUseElement::alterShadowTreeForSVGTag):
51460         (WebCore::SVGUseElement::buildShadowTree):
51461         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
51462         (WebCore::SVGUseElement::attachShadowTree):
51463         * ksvg2/svg/SVGUseElement.h:
51464         * ksvg2/svg/SVGUseElement.idl:
51465         * ksvg2/svg/svgtags.in:
51467 2007-03-05  Brady Eidson  <beidson@apple.com>
51469         Reviewed by John
51471         Fixes <rdar://problem/4974258>
51472         Adds some key null checking
51474         * bindings/js/kjs_html.cpp:
51475         (KJS::JSHTMLElement::implementsCall): Null check doc/frame
51476         * bindings/objc/DOMInternal.mm:
51477         (-[WebScriptObject _initializeScriptDOMNodeImp]): Null check doc/frame
51479 2007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
51481         Reviewed by Darin.
51483         Path::normalAngleAtLength() / Path::pointAtLength() don't work correctly.
51484         pointAtLength() was not implemented, basically and normalAngleAtLength()
51485         had a bug in the tangent slope calculation.
51487         The normalAngleAtLength() stuff can only be tested with my local textPath support.
51488         New LayoutTest: svg/custom/path-textPath-simulation.svg
51490         * platform/graphics/Path.cpp:
51491         (WebCore::pathLengthApplierFunction):
51492         * platform/graphics/PathTraversalState.cpp:
51493         (WebCore::PathTraversalState::quadraticBezierTo):
51494         (WebCore::PathTraversalState::cubicBezierTo):
51495         * platform/graphics/PathTraversalState.h:
51496         (WebCore::PathTraversalState::):
51498 2007-03-05  Alexey Proskuryakov  <ap@webkit.org>
51500         Reviewed by Darin.
51502         http://bugs.webkit.org/show_bug.cgi?id=12970
51503         Fix and import 4XPath test_core_functions.html test
51505         * xml/XPathExpression.cpp:
51506         (WebCore::XPathExpression::evaluate): Fully initialize the evaluation context.
51508         * xml/XPathFunctions.cpp:
51509         (WebCore::XPath::FunSubstring::doEvaluate): Fixed handling of edge cases.
51510         (WebCore::XPath::FunRound::round): Reimplemented to match the spec; exposed FunRound::round() to be used in
51511         other functions.
51513 2007-03-05  Alexey Proskuryakov  <ap@webkit.org>
51515         Reviewed by Darin.
51517         http://bugs.webkit.org/show_bug.cgi?id=12954
51518         XPath relative operations are implemented incorrectly
51520         * xml/XPathPredicate.cpp:
51521         (WebCore::XPath::NumericOp::doEvaluate):
51522         (WebCore::XPath::EqTestOp::compare):
51523         (WebCore::XPath::EqTestOp::doEvaluate):
51524         Reimplemented relative equality operations to match the spec.
51526         * xml/XPathPredicate.h:
51527         (WebCore::XPath::NumericOp::):
51528         (WebCore::XPath::EqTestOp::):
51529         Moved relative operations to EqTestOp.
51531         * xml/XPathGrammar.y:
51532         * xml/XPathParser.cpp:
51533         (WebCore::XPath::Parser::nextTokenInternal):
51534         (WebCore::XPath::Parser::lex):
51535         Adapted for the above changes.
51537 2007-03-05  Mark Rowe  <mrowe@apple.com>
51539         Reviewed by Lars.
51541         Fix http://bugs.webkit.org/show_bug.cgi?id=12947
51542         Bug 12947: REGRESSION: ASSERTION FAILED: maxWidth >= 0 in StringTruncator.cpp:109 in WebCore::truncateString()
51544         Handle nil window correctly in toUserSpace and toDeviceSpace.  On Intel Macs a message to nil that returns a
51545         float will return 0.0.  We use this as the divisor in calculating a scale factor, which results in NaN being
51546         introduced into our rect.
51548         * platform/mac/ScreenMac.mm:
51549         (WebCore::toUserSpace):
51550         (WebCore::toDeviceSpace):
51552 2007-03-05  Rob Buis  <buis@kde.org>
51554         Reviewed by Darin.
51556         http://bugs.webkit.org/show_bug.cgi?id=12868
51557         parts of the CSS classes in this simple SVG example are not applied
51559         Make sure the xml stylesheets are parsed in strict mode.
51561         * dom/ProcessingInstruction.cpp:
51562         (WebCore::ProcessingInstruction::parseStyleSheet):
51564 2007-03-04  Adele Peterson  <adele@apple.com>
51566         Reviewed by Darin.
51568         Change to dispatch the keypress event during the defaultEventHandler for keydown events.  This matches IE behavior.
51569         This is preparation for fixing event dispatch with input methods (http://bugs.webkit.org/show_bug.cgi?id=10871)
51571         Test: fast/events/keydown-keypress-preventDefault.html
51573         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Call the defaultKeyboardEventHandler for keydown events.
51574         * page/EventHandler.cpp:
51575         (WebCore::eventTargetNodeForDocument): Return 0 instead of false since the return type in EventTargetNode.
51576         (WebCore::EventHandler::keyEvent): Removed dispatch of keypress event, since this is now done in the default event handler.
51577         (WebCore::EventHandler::defaultKeyboardEventHandler): For keydown events, create and dispatch a keypress event.
51579 2007-03-04  Alexey Proskuryakov  <ap@webkit.org>
51581         Reviewed by Nikolas Zimmermann (yay!).
51583         http://bugs.webkit.org/show_bug.cgi?id=12962
51584         4XPath tests crash on lang() function
51586         Covered by 4XPath tests, to be landed later.
51588         * platform/StringImpl.cpp:
51589         (WebCore::StringImpl::reverseFind): Do not crash with empty strings.
51590         * xml/XPathFunctions.cpp:
51591         (WebCore::XPath::FunLang::doEvaluate): Do not crash when an element has no
51592         attributes. Use a proper namespace for xml:lang (not sure where "xms" came from).
51593         Rewrote the algorithm for suffix removing to match the spec.
51595 2007-03-02  Anders Carlsson  <acarlsson@apple.com>
51597         Reviewed by Darin.
51599         <rdar://problem/5028165> 
51600         http://bugs.webkit.org/show_bug.cgi?id=12915
51601         REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)
51602         
51603         * loader/DocumentLoader.cpp:
51604         (WebCore::DocumentLoader::stopLoading):
51605         Save the value of m_loading since calling FrameLoader::stopLoading could set it to false.
51606         
51607         * loader/SubresourceLoader.cpp:
51608         (WebCore::SubresourceLoader::didCancel):
51609         * loader/SubresourceLoader.h:
51610         Get rid of didCancel now, it's not needed anymore.
51611         
51612         * xml/xmlhttprequest.cpp:
51613         (WebCore::XMLHttpRequest::abort):
51614         Call cancel() instead of stopLoading(). Also, set m_aborted to true so the XMLHttpRequest object
51615         won't be dereferenced in didFail when aborting.
51617 2007-03-04  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51619         Reviewed by Nikolas Zimmermann.
51621         Move ScrollView stubs to ScrollViewGdk.cpp
51623         * platform/gdk/FrameGdk.h: remove comment that no longer makes sense
51624         * platform/gdk/ScrollViewGdk.cpp:
51625         (WebCore::ScrollView::addChild):
51626         (WebCore::ScrollView::removeChild):
51627         (WebCore::ScrollView::scrollPointRecursively):
51628         (WebCore::ScrollView::inWindow):
51629         (WebCore::ScrollView::wheelEvent):
51630         (WebCore::ScrollView::updateScrollbars):
51631         (WebCore::ScrollView::updateScrollInfo):
51632         (WebCore::ScrollView::windowToContents):
51633         (WebCore::ScrollView::contentsToWindow):
51634         (WebCore::ScrollView::scrollbarUnderMouse):
51635         * platform/gdk/TemporaryLinkStubs.cpp:
51637 2007-03-02  Kevin McCullough  <kmccullough@apple.com>
51639         Reviewed by Geoff.
51641         - rdar://problem/4922454
51642         - This fixes a security issue by making remote referrers not able to access local
51643         resources, unless they register their schemes to be treated as local. The result is
51644         that those schemes can access local resources and cannot be accessed by remote
51645         referrers.
51646         Because this behavior is new a link-on-or-after check is made to determine if the
51647         app should use the older, less safe, behavior.
51649         * WebCore.exp: added exported functions
51650         * bindings/objc/DOM.mm: consolodated function to base class
51651         (-[DOMElement image]):
51652         (-[DOMElement _imageTIFFRepresentation]):
51653         * dom/Document.cpp: Cache the document's ability to load local resources.
51654         (WebCore::Document::Document):
51655         (WebCore::Document::setURL):
51656         (WebCore::Document::shouldBeAllowedToLoadLocalResources):
51657         (WebCore::Document::stylesheetLoaded):
51658         * dom/Document.h: Cache the docuent's ability to load local resources.
51659         (WebCore::Document::getPendingSheet):
51660         (WebCore::Document::isAllowedToLoadLocalResources):
51661         * html/HTMLImageLoader.cpp: Moved functionality into base class.
51662         (WebCore::HTMLImageLoader::updateFromElement):
51663         (WebCore::HTMLImageLoader::dispatchLoadEvent):
51664         * html/HTMLLinkElement.cpp: Handles null returns correctly now.
51665         * html/HTMLTokenizer.cpp: Moved functionality into base class.
51666         (WebCore::HTMLTokenizer::notifyFinished):
51667         * ksvg2/misc/SVGImageLoader.cpp: Moved functionality into base class.
51668         (WebCore::SVGImageLoader::dispatchLoadEvent):
51669         * loader/Cache.cpp: Checks if the cached resource can be loaded.
51670         (WebCore::Cache::requestResource):
51671         * loader/CachedCSSStyleSheet.cpp: Moved functionality into base class.
51672         (WebCore::CachedCSSStyleSheet::ref):
51673         (WebCore::CachedCSSStyleSheet::error):
51674         * loader/CachedImage.cpp: Moved functionality into base class.
51675         (WebCore::CachedImage::CachedImage):
51676         * loader/CachedImage.h: Moved functionality into base class.
51677         (WebCore::CachedImage::canRender):
51678         * loader/CachedResource.cpp: Cache if the CachedResource should be treated as local
51679         (WebCore::CachedResource::CachedResource):
51680         * loader/CachedResource.h: Moved functionality into base class.
51681         (WebCore::CachedResource::errorOccurred):
51682         (WebCore::CachedResource::shouldTreatAsLocal):
51683         * loader/CachedScript.cpp: Moved functionality into base class.
51684         (WebCore::CachedScript::CachedScript):
51685         * loader/CachedScript.h: Moved functionality into base class.
51686         (WebCore::CachedScript::schedule):
51687         * loader/CachedXBLDocument.cpp: Moved functionality into base class.
51688         (WebCore::CachedXBLDocument::error):
51689         * loader/CachedXSLStyleSheet.cpp: Moved functionality into base class.
51690         (WebCore::CachedXSLStyleSheet::error):
51691         * loader/FrameLoader.cpp: See comments for each function below.
51692         (WebCore::FrameLoader::loadSubframe): Use new canLoad.
51693         (WebCore::FrameLoader::restrictAccessToLocal): return value of linked-on-or-after check.
51694         (WebCore::FrameLoader::setRestrictAccessToLocal): set value for linked-on-or-after check.
51695         (WebCore::localSchemes): Return set of schemes that are to be treated as local.
51696         (WebCore::FrameLoader::loadPlugin): Use new canLoad.
51697         (WebCore::FrameLoader::canLoad): Now multiple functions that each do the same work but some can take advantage of the cached values, if they were computed previously.
51698         (WebCore::FrameLoader::shouldHideReferrer): Extracted out the logic to determine if the referrer should be hidden so it is only calculated when needed.
51699         (WebCore::FrameLoader::loadResourceSynchronously): No longer calls canLoad to get hideReferrer info.
51700         (WebCore::FrameLoader::registerSchemeAsLocal): Functionality to register a scheme to be treated as local.
51701         (WebCore::FrameLoader::treatURLAsLocal): Given a URL this function determines if it should be treated as local.
51702         * loader/FrameLoader.h: Declared functions for this security fix.  See above.
51703         * loader/MainResourceLoader.cpp: Optized order of bools to regain performance.
51704         (WebCore::MainResourceLoader::continueAfterContentPolicy):
51705         * loader/SubresourceLoader.cpp: Now restricts remote from loading local resources.
51706         (WebCore::SubresourceLoader::create):
51707         * page/EventHandler.cpp: Moved functionality into base class.
51708         (WebCore::selectCursor):
51709         * platform/KURL.cpp: KURLs need to check all the registered schemes now.
51710         (WebCore::KURL::isLocalFile):
51711         * rendering/HitTestResult.cpp: Moved functionality into base class.
51712         (WebCore::HitTestResult::image):
51713         * rendering/RenderImage.cpp: Moved functionality into base class.
51714         (WebCore::RenderImage::setCachedImage):
51715         (WebCore::RenderImage::imageChanged):
51716         (WebCore::RenderImage::paint):
51717         (WebCore::RenderImage::layout):
51718         (WebCore::RenderImage::calcAspectRatioWidth):
51719         (WebCore::RenderImage::calcAspectRatioHeight):
51720         * rendering/RenderImage.h: Moved functionality into base class.
51721         (WebCore::RenderImage::errorOccurred):
51722         * rendering/RenderListItem.cpp: Moved functionality into base class.
51723         (WebCore::RenderListItem::setStyle):
51724         * rendering/RenderListMarker.cpp: Moved functionality into base class.
51725         (WebCore::RenderListMarker::isImage):
51726         * xml/xmlhttprequest.cpp: Check doc's cached value instead of determining independently.
51727         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
51729 2007-03-02  Justin Garcia  <justin.garcia@apple.com>
51731         Reviewed by kevin
51732         
51733         <rdar://problem/5028447>
51734         REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size
51736         * editing/markup.cpp:
51737         (WebCore::createMarkup): The style of the div that holds
51738         a fully selected body's styles didn't include styles inherited
51739         from the body's ancestors.
51740         
51741 2007-03-02  Justin Garcia  <justin.garcia@apple.com>
51743         Reviewed by harrison
51745         <rdar://problem/4545040>
51746         innerHTML does not HTML-escape text nodes inside PRE elements
51747         <rdar://problem/5027857>
51748         Pasting into Mail from Safari's view-source window renders the HTML
51750         * editing/HTMLInterchange.cpp:
51751         (WebCore::convertHTMLTextToInterchangeFormat): Send this function
51752         the node that the text comes from as a parameter.  It shouldn't convert
51753         '\n's to spaces/nbsps if the text is coming from text where newlines are
51754         preserved.
51755         * editing/HTMLInterchange.h:
51756         * editing/markup.cpp:
51757         (WebCore::startMarkup): Escape text inside the children of PREs.
51759 2007-03-02  Sam Weinig  <sam@webkit.org>
51761         Reviewed by Anders.
51763         Try to fix the Qt build.
51765         * platform/qt/TemporaryLinkStubs.cpp: Add stubs.
51766         (WebCore::searchMenuNoRecentSearchesText):
51767         (WebCore::searchMenuRecentSearchesText):
51768         (WebCore::searchMenuClearRecentSearchesText):
51769         (WebCore::AXWebAreaText):
51770         (WebCore::AXLinkText):
51771         (WebCore::AXListMarkerText):
51772         (WebCore::AXImageMapText):
51773         (WebCore::AXHeadingText):
51775 2007-03-02  David Harrison  <harrison@apple.com>
51777         Suggested by Darin.
51779         A more efficient solution to rdar://4961431.
51781         * bridge/mac/WebCoreAXObject.mm:
51782         (-[WebCoreAXObject accessibilityIsIgnored]):
51784 2007-03-01  Justin Garcia  <justin.garcia@apple.com>
51786         Reviewed by john
51787         
51788         <rdar://problem/5032095>
51789         Gmail Editor: Copied text pastes on a new line instead of current line
51790         
51791         Start merge failed to occur because positionAtStartOfInsertedContent
51792         had a bug.
51794         * editing/ReplaceSelectionCommand.cpp:
51795         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
51796         Was failing when inserting <span><div>foo/div></span>. Return the 
51797         inserted content's first VisiblePosition.
51799 2007-03-02  Dave Hyatt  <hyatt@apple.com>
51801         Fix crasher in glyph map code (buffer overrun).
51803         Reviewed by darin
51805         * platform/win/GlyphPageTreeNodeWin.cpp:
51806         (WebCore::GlyphPage::fill):
51808 2007-03-01  Antti Koivisto  <antti@apple.com>
51810         Reviewed by Maciej.
51812         Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
51813         REGRESSION: imagemap: pointer cursor is shown everywhere
51814         <rdar://problem/5028163>
51816         Image with imagemap should never itself be URLElement in hit test results. 
51817                
51818         No layout test, cursor state can't be captured.
51820         * rendering/RenderLayer.cpp:
51821         (WebCore::RenderLayer::hitTest):
51823 2007-03-01  Antti Koivisto  <antti@apple.com>
51825         Reviewed by Maciej.
51826         
51827         Fix http://bugs.webkit.org/show_bug.cgi?id=12690
51828         REGRESSION: can not log in to bank of america with TOT webkit
51829         <rdar://problem/4990044>
51830         
51831         and http://bugs.webkit.org/show_bug.cgi?id=12604
51832         REGRESSION: After closing the "Would you like to save password" sheet, the form fails 
51833         to submit automatically at http://www.mac.com/WebObjects/HomePage.woa
51834         <rdar://problem/4871752>
51835         
51836         and http://bugs.webkit.org/show_bug.cgi?id=12020
51837         REGRESSION: Flickr uploading broken
51838         <rdar://problem/4928662>
51839         
51840         Turn protection against multiple forms submission back on. This approach is buggy 
51841         but it is way better than not having it at all. Not protecting against this
51842         breaks number of major sites.
51843         
51844         * bridge/mac/WebCoreAXObject.mm:
51845         (-[WebCoreAXObject accessibilityPerformAction:]):
51846         * loader/FrameLoader.cpp:
51847         (WebCore::FrameLoader::resetMultipleFormSubmissionProtection):
51848         (WebCore::FrameLoader::submitForm):
51849         (WebCore::FrameLoader::receivedMainResourceError):
51850         * loader/FrameLoader.h:
51851         * page/EventHandler.cpp:
51852         (WebCore::EventHandler::keyEvent):
51853         * page/Frame.cpp:
51854         (WebCore::Frame::setView):
51855         * page/mac/EventHandlerMac.mm:
51856         (WebCore::EventHandler::mouseDown):
51858 2007-03-01  Kevin McCullough  <kmccullough@apple.com>
51860         Reviewed by Adam.
51862         - Added the test case: external-script-URL-location.html
51863         - Fix an issue where the url of a document is null after an open if the document
51864         has no parent.
51866         * dom/Document.cpp:
51867         (WebCore::Document::open):
51869 2007-03-01  Anders Carlsson  <acarlsson@apple.com>
51871         Reviewed by Darin.
51873         <rdar://problem/4960250> 
51874         http://bugs.webkit.org/show_bug.cgi?id=11627
51875         REGRESSION: Reproducible crash at IMDb in WebCore::FrameLoader::stopLoadingSubframes
51876         
51877         In rare cases, we could end up calling checkLoadComplete twice for the same frame. This would cause the 
51878         didFailProvisionalLoad delegate method to be called twice for the same frame, and also cause the provisional document loader
51879         to be reset to null when other code wasn't expecting it.
51880         
51881         This regressed in revision 10904 with the fix for <rdar://problem/4184719>. The fix is to only call stopLoading on the frame
51882         if either the document loader is loading, or the document is still being parsed. I've verified that the bug is still fixed and
51883         that no leaks occur.
51884         
51885         * loader/DocumentLoader.cpp:
51886         (WebCore::DocumentLoader::stopLoading):
51888 2007-03-01  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51890         Reviewed by Darin.
51892         Fix ARM crash due to accessing non-4-byte-aligned memory
51893         as 32-bit values.
51895         * platform/AtomicString.cpp:
51896         (WebCore::UCharBufferTranslator::equal):
51898 2007-03-01  David Harrison  <harrison@apple.com>
51900         Reviewed by Darin.
51902         <rdar://problem/5033905> Have the DOM secondary thread check raise an exception by default
51904         * platform/mac/ThreadCheck.mm:
51905         (WebCore::_WebCoreThreadViolationCheck):
51906         Initialize threadViolationIsException to true.
51908 2007-03-01  Brady Eidson  <beidson@apple.com>
51910         Reviewed by Darin
51912         <rdar://problem/5030628> - Crash opening a new window with the
51913         "New windows open to the same page" pref set
51915         * history/HistoryItem.cpp:
51916         (WebCore::HistoryItem::HistoryItem): Set the m_subItems vector capacity correctly
51918 2007-03-01  Alexey Proskuryakov  <ap@webkit.org>
51920         Reviewed by Maciej.
51922         http://bugs.webkit.org/show_bug.cgi?id=12801
51923         Assertion failure in createMarkup() (root) when doing Select All, Copy in an SVG document
51925         Test: editing/pasteboard/createMarkup-assert.xml
51927         * editing/markup.cpp:
51928         (WebCore::createMarkup): Removed the assertion, because it's wrong in a non-HTML world.
51930 2007-02-28  Adam Roben  <aroben@apple.com>
51932         Reviewed by Oliver and Hyatt.
51934         Fix <rdar://problem/5024233> Crash while using Find on empty document
51936         No layout test possible, as this involves a null document.
51938         * dom/Range.cpp:
51939         (WebCore::rangeOfContents): Added an ASSERT.
51940         * page/Frame.cpp:
51941         (WebCore::Frame::findString): Added a null-check for document().
51942         (WebCore::Frame::markAllMatchesForText): Ditto.
51944 2007-02-28  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51946         Not reviewed - simple gdk build fix.
51948         Add stubs for newly introduced localized strings.
51950         * platform/gdk/TemporaryLinkStubs.cpp:
51951         (WebCore::searchMenuNoRecentSearchesText):
51952         (WebCore::searchMenuRecentSearchesText):
51953         (WebCore::searchMenuClearRecentSearchesText):
51955 2007-02-28  Brady Eidson  <beidson@apple.com>
51957         Reviewed by Beth
51959         Move the Thread Safety Check functions into their own header for export to WebKit
51961         * WebCore.exp: Export the function
51962         * WebCore.xcodeproj/project.pbxproj: 
51963         * bindings/scripts/CodeGeneratorObjC.pm: Include the new header
51964         * platform/Logging.h: Move stuff to ThreadCheck.h
51965         * platform/ThreadCheck.h: Added.
51966         * platform/mac/LoggingMac.mm: Move stuff to ThreadCheck.mm
51967         * platform/mac/ThreadCheck.mm: Added.
51968         (WebCore::_WebCoreThreadViolationCheck):
51969         (WebCoreReportThreadViolation):
51971 2007-02-28  Beth Dakin  <bdakin@apple.com>
51973         Reviewed by Brady.
51975         Fix for http://bugs.webkit.org/show_bug.cgi?id=12923 REGRESSION: 
51976         Assertion failure copying standalone image
51978         * platform/mac/PasteboardMac.mm:
51979         (WebCore::Pasteboard::writeImage): Use the CachedImage as the 
51980         resource. This makes more sense anyway. There is no need to null-
51981         check the renderer or the CachedImage since we return early if 
51982         there is no Image* and the HitTestResult::image() function checks 
51983         for these things.
51985 2007-02-28  Adele Peterson  <adele@apple.com>
51987         Reviewed by Beth.
51989         Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
51990         and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
51992         Use localized strings from WebKit instead of hard coded strings.
51994         * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject roleDescription]):
51995         * page/mac/WebCoreViewFactory.h:
51996         * platform/LocalizedStrings.h:
51997         * platform/mac/LocalizedStringsMac.mm:
51998         (WebCore::searchMenuNoRecentSearchesText):
51999         (WebCore::searchMenuRecentSearchesText):
52000         (WebCore::searchMenuClearRecentSearchesText):
52001         (WebCore::AXWebAreaText):
52002         (WebCore::AXLinkText):
52003         (WebCore::AXListMarkerText):
52004         (WebCore::AXImageMapText):
52005         (WebCore::AXHeadingText):
52006         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::itemText):
52008 2007-02-27  Antti Koivisto  <antti@apple.com>
52010         Reviewed by Maciej.
52012         - fix http://bugs.webkit.org/show_bug.cgi?id=12911
52013         GoogleDocs: Ordered lists don't update immediately when start attribute changed
52014         
52015         Update list marker value when start attribute changes.
52017         * html/HTMLOListElement.cpp:
52018         (WebCore::HTMLOListElement::parseMappedAttribute):
52020 2007-02-28  Nikolas Zimmermann  <zimmermann@kde.org>
52022         Reviewed by Maciej.
52024         Corrected the use of the new ENABLE() macros in some ksvg2/svg files.
52025         Add new build-webkit flags "--(no-)xpath" / "--(no-)xslt", to be able
52026         to switch off build features easily. Also add "--(no-)svg-experimental-features"
52027         flag, to be able to test filters/animations/use/foreignObject easily.
52029         * DerivedSources.make:
52030         * ksvg2/scripts/make_names.pl:
52031         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
52032         * ksvg2/svg/SVGStyledElement.cpp:
52033         * ksvg2/svg/SVGUseElement.cpp:
52035 2007-02-28  Rob Buis  <buis@kde.org>
52037         Reviewed by Maciej.
52039         http://bugs.webkit.org/show_bug.cgi?id=12609
52040         Any SVG element will create renderers even when children of HTML elements
52042         Allow creation of svg renderers only when parent is SVG, except for
52043         the <svg> element.
52045         * ksvg2/svg/SVGAElement.h:
52046         * ksvg2/svg/SVGAnimationElement.h:
52047         * ksvg2/svg/SVGCircleElement.h:
52048         * ksvg2/svg/SVGClipPathElement.h:
52049         (WebCore::SVGClipPathElement::rendererIsNeeded):
52050         * ksvg2/svg/SVGDefsElement.cpp:
52051         * ksvg2/svg/SVGDefsElement.h:
52052         * ksvg2/svg/SVGDescElement.h:
52053         (WebCore::SVGDescElement::rendererIsNeeded):
52054         * ksvg2/svg/SVGElement.cpp:
52055         * ksvg2/svg/SVGEllipseElement.h:
52056         * ksvg2/svg/SVGFilterElement.h:
52057         (WebCore::SVGFilterElement::rendererIsNeeded):
52058         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
52059         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
52060         * ksvg2/svg/SVGForeignObjectElement.h:
52061         * ksvg2/svg/SVGGElement.h:
52062         * ksvg2/svg/SVGGradientElement.h:
52063         * ksvg2/svg/SVGImageElement.h:
52064         * ksvg2/svg/SVGLineElement.h:
52065         * ksvg2/svg/SVGMarkerElement.h:
52066         * ksvg2/svg/SVGMaskElement.h:
52067         * ksvg2/svg/SVGPathElement.h:
52068         * ksvg2/svg/SVGPatternElement.h:
52069         * ksvg2/svg/SVGPolyElement.h:
52070         * ksvg2/svg/SVGRectElement.h:
52071         * ksvg2/svg/SVGStopElement.h:
52072         * ksvg2/svg/SVGStyledElement.cpp:
52073         (WebCore::SVGStyledElement::rendererIsNeeded):
52074         * ksvg2/svg/SVGStyledElement.h:
52075         * ksvg2/svg/SVGSwitchElement.h:
52076         * ksvg2/svg/SVGSymbolElement.h:
52077         (WebCore::SVGSymbolElement::rendererIsNeeded):
52078         * ksvg2/svg/SVGTRefElement.h:
52079         * ksvg2/svg/SVGTSpanElement.h:
52080         * ksvg2/svg/SVGTextElement.h:
52081         * ksvg2/svg/SVGTitleElement.h:
52082         (WebCore::SVGTitleElement::rendererIsNeeded):
52083         * ksvg2/svg/SVGUseElement.h:
52084         * ksvg2/svg/SVGViewElement.h:
52085         (WebCore::SVGViewElement::rendererIsNeeded):
52087 2007-02-28  Rob Buis  <buis@kde.org>
52089         Reviewed by Maciej.
52091         http://bugs.webkit.org/show_bug.cgi?id=12913
52092         Markers do not render in webkit when it misses markerWidth or markerHeight attribute
52094         Set defaults for markerWidth/markerHeight so markers that do not specify them render.
52096         * ksvg2/svg/SVGMarkerElement.cpp:
52097         (WebCore::SVGMarkerElement::SVGMarkerElement):
52099 2007-02-27  Anders Carlsson  <acarlsson@apple.com>
52101         * loader/ResourceLoader.cpp:
52102         (WebCore::ResourceLoader::~ResourceLoader):
52103         Remove comment.
52105 2007-02-27  Justin Garcia  <justin.garcia@apple.com>
52107         Reviewed by oliver
52109         <rdar://problem/5027300>
52110         REGRESSION: Images inserted with align left/right are lost
52112         * editing/ReplaceSelectionCommand.cpp:
52113         (WebCore::ReplaceSelectionCommand::shouldMerge):
52114         Don't attempt to merge to or from a position before 
52115         or after a block because it will be a no-op and
52116         lead to infinite recursion.
52117         In this case it instead resulted in content loss because 
52118         of bugs in start/endOfParagraph (5027702).
52119         * editing/visible_units.cpp: Added two FIXMEs for
52120         the problems with start/endOfParagraph.
52122 2007-02-27  Anders Carlsson  <acarlsson@apple.com>
52124         Reviewed by Geoff.
52126         Make resource load delegate methods pass the right document loader.
52127         
52128         * loader/FrameLoader.cpp:
52129         (WebCore::FrameLoader::willSendRequest):
52130         (WebCore::FrameLoader::didReceiveResponse):
52131         (WebCore::FrameLoader::didReceiveData):
52132         (WebCore::FrameLoader::didFailToLoad):
52133         (WebCore::FrameLoader::didFinishLoad):
52134         (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
52135         (WebCore::FrameLoader::didCancelAuthenticationChallenge):
52136         Use the resource loader's document loader instead of the active one.
52137         
52138         * loader/MainResourceLoader.cpp:
52139         (WebCore::MainResourceLoader::receivedError):
52140         Make it so we send the frame load delegate method before the resource load delegate method.
52141         This was a regression from 2.0 and was caused by the fix to rdar://problem/4609195. Because the way the loader
52142         now works, both delegate methods will be called.
52143         
52144         * loader/ResourceLoader.cpp:
52145         (WebCore::ResourceLoader::ResourceLoader):
52146         * loader/ResourceLoader.h:
52147         (WebCore::ResourceLoader::documentLoader):
52148         Add document loader pointer to ResourceLoader.
52150 2007-02-27  Mitz Pettel  <mitz@webkit.org>
52152         Reviewed by Hyatt.
52154         - fix http://bugs.webkit.org/show_bug.cgi?id=12910
52155           REGRESSION (r18756-r18765): list-bullet doesn't redraw properly when changing the list's content using JavaScript
52157         Test: fast/repaint/list-marker.html
52159         * rendering/RenderListItem.cpp:
52160         (WebCore::RenderListItem::positionListMarker): Add the marker to the visual
52161         overflow of all its ancestor blocks up to the list item. This needs to be
52162         done here since the marker is positioned only after those blocks have been
52163         laid out.
52165 2007-02-27  Antti Koivisto  <antti@apple.com>
52167         Reviewed by Hyatt.
52168         
52169         - fix http://bugs.webkit.org/show_bug.cgi?id=12918
52170         REGRESSION: Google Finance dropdown Flickers
52171         <rdar://4988039>
52172         
52173         If a node dies while mouse is over it, it is still supposed to receive
52174         mouseout event (wasn't case in Tiger webkit). However this event should 
52175         not propagate to any other nodes. This patch matches Firefox behavior in
52176         this respect.
52178         * dom/EventTargetNode.cpp:
52179         (WebCore::EventTargetNode::dispatchGenericEvent):
52181 2007-02-27  Geoffrey Garen  <ggaren@apple.com>
52183         Reviewed by Maciej Stachowiak.
52184         
52185         Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
52186         JS objects not collected after closing window @ ebay.com/maps.google.com
52188         Garbage collect in the KJSProxy destructor, after clearing our reference
52189         to the interpreter, because that's when the interpreter has torn down fully.
52191         (Technically speaking, we can't *prove* that we have the only reference to 
52192         our interpreter, but that's how it works in practice, and manual garbage 
52193         collection is just an opportunistic optimization, so it's OK for it to 
52194         work in practice even if it can't be proven in theory.)
52195         
52196         Layout tests pass. No leaks reported.
52198         * bindings/js/kjs_proxy.cpp:
52199         (WebCore::KJSProxy::~KJSProxy):
52200         * bindings/js/kjs_proxy.h:
52201         * page/Page.cpp:
52202         (WebCore::Page::~Page): Merged pageDestroyed() calls. Moved debug-only
52203         code to the bottom.
52204         * page/Frame.cpp:
52205         (WebCore::Frame::~Frame): Don't call getObject() because globalObject()
52206         returns a JSObject* already, and the call can leave a pointer to the Window
52207         object on the stack. Don't check for NULL because it is an invariant of
52208         JavaScriptCore that no JSObject* can be NULL. Do use a volatile pointer
52209         for w because the 'w = 0' assignment just screams to the compiler, "Don't
52210         generate any code for me!"
52212 2007-02-27  Rob Buis  <buis@kde.org>
52214         Reviewed by David Hyatt.
52216         http://bugs.webkit.org/show_bug.cgi?id=4128
52217         !important is ignored in inline styling.
52219         Handle properties with !important flag better in inline
52220         style declarations.
52222         * css/CSSMutableStyleDeclaration.cpp:
52223         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
52225 2007-02-27  David Hyatt  <hyatt@apple.com>
52227         Bug 11435.  Make sure RenderViews always paintBoxDecorations.  They used to before I removed RenderView's
52228         paint method.  This fix restores the original behavior.
52230         Reviewed by mitz
52232         * rendering/RenderBox.cpp:
52233         (WebCore::RenderBox::setStyle):
52235 2007-02-27  David Hyatt  <hyatt@apple.com>
52237         Fix for bug 12094, make sure setMinMaxKnown starts off false for the weird/rare case of empty
52238         plaintext documents (which really are buggy and should be fixed to generate root elements).
52240         Reviewed by mitz
52242         * rendering/RenderView.cpp:
52243         (WebCore::RenderView::RenderView):
52245 2007-02-27  Matt Perry  <mpcomplete@chromium.org>
52247         Reviewed by Darin.
52249         Fixed the case where a BackForwardList of capacity==1 would grow without bound.
52251         * history/BackForwardList.cpp:
52252         (WebCore::BackForwardList::addItem):
52254 2007-02-22  Lars Naesbye Christensen  <lars@naesbye.dk>
52256         Reviewed by Maciej.
52258         http://bugs.webkit.org/show_bug.cgi?id=12848
52259         Help cursor should have a white outline
52261         * Resources/helpCursor.png:
52263 2007-02-27  Alexey Proskuryakov  <ap@webkit.org>
52265         Reviewed by Maciej.
52267         http://bugs.webkit.org/show_bug.cgi?id=12594
52268         REGRESSION: Strange highlight in active input area
52270         No automated test possible.
52272         * rendering/InlineTextBox.cpp:
52273         (WebCore::InlineTextBox::paint): Restore a check lost in r12792.
52275 2007-02-27  Darin Adler  <darin@apple.com>
52277         Reviewed by Mitz.
52279         - fix http://bugs.webkit.org/show_bug.cgi?id=12908
52280           crash in http/tests/incremental/frame-focus-before-load.html
52282         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView):
52283         Add null checks.
52285 2007-02-27  Darin Adler  <darin@apple.com>
52287         Reviewed by Alexey.
52289         - fix http://bugs.webkit.org/show_bug.cgi?id=12909
52290           should use ICU, not TEC, for MacRoman decoding
52292         * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::registerEncodingNames):
52293         Add "macroman" as an alias for "macintosh". We have seen that in use in mail,
52294         although I'm not sure it's used on the web.
52296         * platform/mac/mac-encodings.txt: Remove MacRoman line, which was added back
52297         as part of the patch for bug 4971226. But by adding it to this file rather
52298         than the ICU codec, we get it only on Mac OS X. And long term we are trying to
52299         get rid of the use of TEC entirely, so we want this file to be as empty as
52300         possible.
52302 2007-02-27  Rob Buis  <buis@kde.org>
52304         Reviewed by Maciej.
52306         http://bugs.webkit.org/show_bug.cgi?id=12905
52307         Not all svg shapes should support markers
52309         Restrict marker usage to svg shapes polyline, polygon, line and path.
52311         * ksvg2/svg/SVGLineElement.h:
52312         (WebCore::SVGLineElement::supportsMarkers):
52313         * ksvg2/svg/SVGPathElement.h:
52314         (WebCore::SVGPathElement::supportsMarkers):
52315         * ksvg2/svg/SVGPolyElement.h:
52316         (WebCore::SVGPolyElement::supportsMarkers):
52317         * ksvg2/svg/SVGStyledElement.h:
52318         (WebCore::SVGStyledElement::supportsMarkers):
52319         * rendering/RenderPath.cpp:
52320         (WebCore::RenderPath::paint):
52322 2007-02-26  Adele Peterson  <adele@apple.com>
52324         Reviewed by Lars.
52326         Fix for http://bugs.webkit.org/show_bug.cgi?id=12902
52327         <rdar://problem/5012679> REGRESSION: Pressing return key doesn't 
52328         move caret to next line after applying a font color in GMail
52330         Test: fast/frames/iframe-window-focus-2.html
52332         * page/EventHandler.h: Make focusDocumentView public.
52333         * page/Frame.cpp: (WebCore::Frame::focusWindow): Instead of just setting the focused frame,
52334           we should set also focus the document view.  The bug here was that since the subframe view
52335           wasn't the first responder, the key down event was going to the wrong frame.
52337 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
52339         Reviewed by Oliver.
52341         - fixed <rdar://problem/4946881> Recursive loop with <marker> not caught, crashes in WebCore::SVGPaintServer::draw (11244)
52342         http://bugs.webkit.org/show_bug.cgi?id=11244
52344         * platform/graphics/svg/SVGResourceMarker.cpp:
52345         (WebCore::SVGResourceMarker::draw): Use a HashSet to guard against
52346         reference cycles.
52348 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
52350         Reviewed by Kevin McCullough.
52352         - fix Qt build for earlier SVG changes.
52354         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
52356 2007-02-26  Oliver Hunt  <oliver@apple.com>
52358         Reviewed by Maciej.
52360         Fix for <rdar://problem/4827378>: Canvas with large height 
52361         uses lots of memory, computer almost stops responding
52362          
52363         Put cap on maximum area of canvas, size is similar too the 
52364         maximum size allowed by firefox (firefox seems to to cut off 
52365         at area == 32767 * 9358). 
52367         Also protect renderer against the possibility of a null context
52368         (this was triggering a CG warning)
52370         * html/HTMLCanvasElement.cpp:
52371         (WebCore::HTMLCanvasElement::createDrawingContext):
52372            Apply maximum canvas area
52373         (WebCore::HTMLCanvasElement::createPlatformImage):
52374            Protect against null CG Context
52376 2007-02-26  Mitz Pettel  <mitz@webkit.org>
52378         Reviewed by Antti Koivisto.
52380         - fix http://bugs.webkit.org/show_bug.cgi?id=12899
52381           Ordered lists not updating dynamically with new styles
52383         Test: fast/lists/list-style-type-dynamic-change.html
52385         * rendering/RenderListMarker.cpp:
52386         (WebCore::RenderListMarker::setStyle): Made changing the marker type trigger
52387         updating of the marker.
52389 2007-02-26  Adele Peterson  <adele@apple.com>
52391         Reviewed by Maciej.
52393         Fix for <rdar://problem/5012761> REGRESSION: form submit invokes wrong event handler
52395         Test: fast/events/submit-reset-nested-bubble.html
52397         * dom/EventTargetNode.h: Made handleLocalEvents virtual.
52398         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): If we're
52399           not in the capture phase, and the target is a different form, and we're handling
52400           the submitEvent or the resetEvent, then stop propagation of the event.  This matches
52401           Firefox behavior.  You can only get in this situation if misnested tags cause
52402           forms to be nested.
52403         * html/HTMLFormElement.h: Added handleLocalEvents.
52405 2007-02-26  Darin Adler  <darin@apple.com>
52407         Reviewed by Oliver Hunt.
52409         - <rdar://problem/5021555> TextCodecICU does not use fallback mappings; it should
52411         * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::createICUConverter):
52412         Added a call to ucnv_setFallback(TRUE).
52414 2007-02-26  Oliver Hunt  <oliver@apple.com>
52416         Reviewed by Adam.
52418         Fix for rdar://problem/5021127 
52420         Need to add null check to node -- original Obj-C didn't need 
52421         the null check due to the Obj-C null messaging semantics
52423         * editing/Editor.cpp:
52424         (WebCore::Editor::shouldInsertFragment):
52426 2007-02-26  David Hyatt  <hyatt@apple.com>
52428         Make text files render using white-space: pre-wrap instead of white-space: pre.
52429         
52430         Reviewed by aroben
52432         * loader/TextDocument.cpp:
52433         (WebCore::TextTokenizer::write):
52435 2007-02-26  David Hyatt  <hyatt@apple.com>
52437         Back out the change to add fullyClippedContentRect.  The layout test
52438         was actually showing more correct results.
52440         * page/Frame.cpp:
52441         (WebCore::Frame::visibleSelectionRect):
52442         (WebCore::Frame::setIsActive):
52443         (WebCore::Frame::markAllMatchesForText):
52444         * platform/ScrollView.h:
52445         * platform/mac/ScrollViewMac.mm:
52446         * rendering/RenderLayer.cpp:
52447         (WebCore::RenderLayer::scrollRectToVisible):
52449 2007-02-26  David Hyatt  <hyatt@apple.com>
52451         Add support for a new property called -webkit-border-fit.  This property
52452         has two values: border and lines.  The "border" value means the border and
52453         background paint normally at the border box level.  The "lines" value indicates
52454         that the border and background should shrink dynamically to snugly hug the
52455         line boxes of normal flow descendants.
52457         Reviewed by darin
52459         fast/borders/border-fit.html
52461         * WebCore.xcodeproj/project.pbxproj:
52462         * css/CSSComputedStyleDeclaration.cpp:
52463         (WebCore::):
52464         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52465         * css/CSSPropertyNames.in:
52466         * css/CSSValueKeywords.in:
52467         * css/cssparser.cpp:
52468         (WebCore::CSSParser::parseValue):
52469         * css/cssstyleselector.cpp:
52470         (WebCore::CSSStyleSelector::applyProperty):
52471         * rendering/RenderBlock.cpp:
52472         (WebCore::RenderBlock::adjustForBorderFit):
52473         (WebCore::RenderBlock::borderFitAdjust):
52474         * rendering/RenderBlock.h:
52475         * rendering/RenderBox.cpp:
52476         (WebCore::RenderBox::paintBoxDecorations):
52477         * rendering/RenderBox.h:
52478         (WebCore::RenderBox::borderFitAdjust):
52479         * rendering/RenderStyle.cpp:
52480         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52481         (WebCore::StyleRareNonInheritedData::operator==):
52482         (WebCore::RenderStyle::diff):
52483         * rendering/RenderStyle.h:
52484         (WebCore::):
52485         (WebCore::RenderStyle::borderFit):
52486         (WebCore::RenderStyle::setBorderFit):
52487         (WebCore::RenderStyle::initialBorderFit):
52489 2007-02-26  Adam Roben  <aroben@apple.com>
52491         Reviewed by Darin.
52493         Build fix.
52495         * rendering/RenderTreeAsText.cpp: Can't use #ifndef with ENABLE() macro.
52497 2007-02-26  Adele Peterson  <adele@apple.com>
52499         Reviewed by Adam.
52501         Fix for <rdar://problem/4990700> Safari always crashes when attempting to edit/view 
52502         Yahoo pipes in WebCore::HTMLSelectElement::optionToListIndex
52504         Test: fast/forms/select-out-of-bounds-index.html
52506         * html/HTMLSelectElement.cpp:
52507         (WebCore::HTMLSelectElement::setSelectedIndex): If we're about to deselect all options, then set m_lastOnChangeIndex to -1.
52508         (WebCore::HTMLSelectElement::optionToListIndex): Moved listSize to a local variable.  Rewrote using a simpler for-loop to prevent out-of-bounds errors.
52510 2007-02-26  Anders Carlsson  <acarlsson@apple.com>
52512         Reviewed by Geoff.
52514         <rdar://problem/4816376>
52515         REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
52516         
52517         * loader/FrameLoader.cpp:
52518         (WebCore::FrameLoader::reload):
52519         Remove call to setPolicyDocumentLoader here, it's set by the ::load function that we end up calling.
52521 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
52523         Reviewed by Lars.
52525         - fixed <rdar://problem/5021698> Disable experimental SVG features (12883)
52526         
52527         I added an ENABLE_SVG_EXPERIMENTAL_FEATURES define to guard all use of the experimental
52528         features, and used it to guard relevant tag names, elements, JS bindings and renderers.
52529         
52530         I also converted all the existing optional feature defines to
52531         ENABLE_FOO instead of FOO_SUPPORT since that is the more standard
52532         way to do it in open source projects and works with the handy new
52533         ENABLE() macro.
52535         * CMakeLists.txt:
52536         * DerivedSources.make:
52537         * Projects/gdk/webcore-gdk.bkl:
52538         * WebCore.pro:
52539         * WebCore.vcproj/WebCore/WebCore.vcproj:
52540         * WebCore.vcproj/WebCore/build-generated-files.sh:
52541         * WebCore.xcodeproj/project.pbxproj:
52542         * bindings/js/JSCustomXPathNSResolver.cpp:
52543         * bindings/js/JSCustomXPathNSResolver.h:
52544         * bindings/js/JSSVGElementWrapperFactory.cpp:
52545         * bindings/js/JSSVGElementWrapperFactory.h:
52546         * bindings/js/JSSVGMatrixCustom.cpp:
52547         * bindings/js/JSSVGPODTypeWrapper.h:
52548         * bindings/js/JSSVGPathSegCustom.cpp:
52549         * bindings/js/JSSVGPathSegListCustom.cpp:
52550         * bindings/js/JSSVGPointListCustom.cpp:
52551         * bindings/js/JSXSLTProcessor.cpp:
52552         * bindings/js/JSXSLTProcessor.h:
52553         * bindings/js/kjs_binding.cpp:
52554         (KJS::setDOMException):
52555         * bindings/js/kjs_css.cpp:
52556         (KJS::toJS):
52557         * bindings/js/kjs_dom.cpp:
52558         (KJS::toJS):
52559         * bindings/js/kjs_html.cpp:
52560         (KJS::HTMLElementFunction::callAsFunction):
52561         * bindings/js/kjs_proxy.cpp:
52562         * bindings/js/kjs_proxy.h:
52563         * bindings/js/kjs_window.cpp:
52564         (KJS::Window::getValueProperty):
52565         * bindings/objc/DOM.mm:
52566         (WebCore::createElementClassMap):
52567         (+[DOMNode _nodeWith:]):
52568         * bindings/objc/DOMCSS.mm:
52569         (+[DOMCSSValue _CSSValueWith:]):
52570         * bindings/objc/DOMCustomXPathNSResolver.h:
52571         * bindings/objc/DOMCustomXPathNSResolver.mm:
52572         * bindings/objc/DOMEvents.mm:
52573         (+[DOMEvent _eventWith:]):
52574         * bindings/objc/DOMInternal.h:
52575         * bindings/objc/DOMSVGPathSegInternal.mm:
52576         * bindings/objc/DOMXPath.mm:
52577         * bindings/objc/ExceptionHandlers.mm:
52578         (WebCore::raiseDOMException):
52579         * bindings/objc/PublicDOMInterfaces.h:
52580         * bindings/scripts/CodeGeneratorJS.pm:
52581         * bindings/scripts/CodeGeneratorObjC.pm:
52582         * config.h:
52583         * css/CSSGrammar.y:
52584         * css/CSSStyleDeclaration.cpp:
52585         (WebCore::propertyID):
52586         * css/StyleBase.h:
52587         * css/cssparser.cpp:
52588         (WebCore::CSSParser::parseValue):
52589         * css/cssparser.h:
52590         * css/cssstyleselector.cpp:
52591         (WebCore::CSSStyleSelector::loadDefaultStyle):
52592         (WebCore::CSSStyleSelector::initForStyleResolve):
52593         (WebCore::checkPseudoState):
52594         (WebCore::CSSStyleSelector::adjustRenderStyle):
52595         (WebCore::CSSStyleSelector::applyProperty):
52596         * css/cssstyleselector.h:
52597         * dom/DOMImplementation.cpp:
52598         (WebCore::DOMImplementation::hasFeature):
52599         (WebCore::DOMImplementation::createDocument):
52600         * dom/Document.cpp:
52601         (WebCore::Document::Document):
52602         (WebCore::Document::~Document):
52603         (WebCore::Document::createElement):
52604         (WebCore::Document::implicitClose):
52605         (WebCore::Document::recalcStyleSelector):
52606         (WebCore::Document::createEvent):
52607         * dom/Document.h:
52608         * dom/Document.idl:
52609         * dom/Event.cpp:
52610         * dom/Event.h:
52611         * dom/EventTarget.cpp:
52612         * dom/EventTarget.h:
52613         * dom/MappedAttributeEntry.h:
52614         (WebCore::):
52615         * dom/Node.cpp:
52616         (WebCore::Node::createRendererIfNeeded):
52617         (WebCore::Node::shadowAncestorNode):
52618         * dom/Node.h:
52619         * dom/ProcessingInstruction.cpp:
52620         (WebCore::ProcessingInstruction::ProcessingInstruction):
52621         (WebCore::ProcessingInstruction::checkStyleSheet):
52622         (WebCore::ProcessingInstruction::setCSSStyleSheet):
52623         * dom/ProcessingInstruction.h:
52624         * dom/Text.cpp:
52625         (WebCore::Text::createRenderer):
52626         * dom/XMLTokenizer.cpp:
52627         (WebCore::XMLTokenizer::startElementNs):
52628         (WebCore::XMLTokenizer::endElementNs):
52629         (WebCore::XMLTokenizer::processingInstruction):
52630         (WebCore::XMLTokenizer::end):
52631         (WebCore::XMLTokenizer::insertErrorMessageBlock):
52632         * dom/XMLTokenizer.h:
52633         * html/HTMLEmbedElement.cpp:
52634         * html/HTMLEmbedElement.h:
52635         * html/HTMLObjectElement.cpp:
52636         * html/HTMLObjectElement.h:
52637         * ksvg2/css/SVGCSSParser.cpp:
52638         * ksvg2/css/SVGCSSStyleSelector.cpp:
52639         * ksvg2/css/SVGRenderStyle.cpp:
52640         * ksvg2/css/SVGRenderStyle.h:
52641         * ksvg2/css/SVGRenderStyleDefs.cpp:
52642         * ksvg2/css/SVGRenderStyleDefs.h:
52643         * ksvg2/events/JSSVGLazyEventListener.cpp:
52644         * ksvg2/events/JSSVGLazyEventListener.h:
52645         * ksvg2/events/SVGZoomEvent.cpp:
52646         * ksvg2/events/SVGZoomEvent.h:
52647         * ksvg2/misc/KCanvasRenderingStyle.cpp:
52648         * ksvg2/misc/KCanvasRenderingStyle.h:
52649         * ksvg2/misc/PointerEventsHitRules.cpp:
52650         * ksvg2/misc/PointerEventsHitRules.h:
52651         * ksvg2/misc/SVGDocumentExtensions.cpp:
52652         * ksvg2/misc/SVGDocumentExtensions.h:
52653         * ksvg2/misc/SVGImageLoader.cpp:
52654         * ksvg2/misc/SVGImageLoader.h:
52655         * ksvg2/misc/SVGTimer.cpp:
52656         * ksvg2/misc/SVGTimer.h:
52657         * ksvg2/misc/TimeScheduler.cpp:
52658         * ksvg2/misc/TimeScheduler.h:
52659         * ksvg2/scripts/make_names.pl:
52660         * ksvg2/svg/ColorDistance.cpp:
52661         * ksvg2/svg/ColorDistance.h:
52662         * ksvg2/svg/GradientAttributes.h:
52663         * ksvg2/svg/LinearGradientAttributes.h:
52664         * ksvg2/svg/PatternAttributes.h:
52665         * ksvg2/svg/RadialGradientAttributes.h:
52666         * ksvg2/svg/SVGAElement.cpp:
52667         * ksvg2/svg/SVGAElement.h:
52668         * ksvg2/svg/SVGAngle.cpp:
52669         * ksvg2/svg/SVGAngle.h:
52670         * ksvg2/svg/SVGAnimateColorElement.cpp:
52671         * ksvg2/svg/SVGAnimateColorElement.h:
52672         * ksvg2/svg/SVGAnimateElement.cpp:
52673         * ksvg2/svg/SVGAnimateElement.h:
52674         * ksvg2/svg/SVGAnimateElement.idl:
52675         * ksvg2/svg/SVGAnimateMotionElement.cpp:
52676         * ksvg2/svg/SVGAnimateMotionElement.h:
52677         * ksvg2/svg/SVGAnimateTransformElement.cpp:
52678         * ksvg2/svg/SVGAnimateTransformElement.h:
52679         * ksvg2/svg/SVGAnimateTransformElement.idl:
52680         * ksvg2/svg/SVGAnimatedPathData.cpp:
52681         * ksvg2/svg/SVGAnimatedPathData.h:
52682         * ksvg2/svg/SVGAnimatedPoints.cpp:
52683         * ksvg2/svg/SVGAnimatedPoints.h:
52684         * ksvg2/svg/SVGAnimatedTemplate.h:
52685         * ksvg2/svg/SVGAnimationElement.cpp:
52686         * ksvg2/svg/SVGAnimationElement.h:
52687         * ksvg2/svg/SVGCircleElement.cpp:
52688         * ksvg2/svg/SVGCircleElement.h:
52689         * ksvg2/svg/SVGClipPathElement.cpp:
52690         * ksvg2/svg/SVGClipPathElement.h:
52691         * ksvg2/svg/SVGColor.cpp:
52692         * ksvg2/svg/SVGColor.h:
52693         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
52694         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
52695         * ksvg2/svg/SVGCursorElement.cpp:
52696         * ksvg2/svg/SVGCursorElement.h:
52697         * ksvg2/svg/SVGDefsElement.cpp:
52698         * ksvg2/svg/SVGDefsElement.h:
52699         * ksvg2/svg/SVGDescElement.cpp:
52700         * ksvg2/svg/SVGDescElement.h:
52701         * ksvg2/svg/SVGDocument.cpp:
52702         * ksvg2/svg/SVGDocument.h:
52703         * ksvg2/svg/SVGElement.cpp:
52704         (WebCore::SVGElement::dispatchEvent):
52705         * ksvg2/svg/SVGElement.h:
52706         * ksvg2/svg/SVGElementInstance.cpp:
52707         * ksvg2/svg/SVGElementInstance.h:
52708         * ksvg2/svg/SVGElementInstance.idl:
52709         * ksvg2/svg/SVGElementInstanceList.cpp:
52710         * ksvg2/svg/SVGElementInstanceList.h:
52711         * ksvg2/svg/SVGElementInstanceList.idl:
52712         * ksvg2/svg/SVGEllipseElement.cpp:
52713         * ksvg2/svg/SVGEllipseElement.h:
52714         * ksvg2/svg/SVGException.h:
52715         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
52716         * ksvg2/svg/SVGExternalResourcesRequired.h:
52717         * ksvg2/svg/SVGFEBlendElement.cpp:
52718         * ksvg2/svg/SVGFEBlendElement.h:
52719         * ksvg2/svg/SVGFEBlendElement.idl:
52720         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
52721         * ksvg2/svg/SVGFEColorMatrixElement.h:
52722         * ksvg2/svg/SVGFEColorMatrixElement.idl:
52723         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
52724         * ksvg2/svg/SVGFEComponentTransferElement.h:
52725         * ksvg2/svg/SVGFEComponentTransferElement.idl:
52726         * ksvg2/svg/SVGFECompositeElement.cpp:
52727         * ksvg2/svg/SVGFECompositeElement.h:
52728         * ksvg2/svg/SVGFECompositeElement.idl:
52729         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
52730         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
52731         * ksvg2/svg/SVGFEDiffuseLightingElement.idl:
52732         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
52733         * ksvg2/svg/SVGFEDisplacementMapElement.h:
52734         * ksvg2/svg/SVGFEDisplacementMapElement.idl:
52735         * ksvg2/svg/SVGFEDistantLightElement.cpp:
52736         * ksvg2/svg/SVGFEDistantLightElement.h:
52737         * ksvg2/svg/SVGFEDistantLightElement.idl:
52738         * ksvg2/svg/SVGFEFloodElement.cpp:
52739         * ksvg2/svg/SVGFEFloodElement.h:
52740         * ksvg2/svg/SVGFEFloodElement.idl:
52741         * ksvg2/svg/SVGFEFuncAElement.cpp:
52742         * ksvg2/svg/SVGFEFuncAElement.h:
52743         * ksvg2/svg/SVGFEFuncAElement.idl:
52744         * ksvg2/svg/SVGFEFuncBElement.cpp:
52745         * ksvg2/svg/SVGFEFuncBElement.h:
52746         * ksvg2/svg/SVGFEFuncBElement.idl:
52747         * ksvg2/svg/SVGFEFuncGElement.cpp:
52748         * ksvg2/svg/SVGFEFuncGElement.h:
52749         * ksvg2/svg/SVGFEFuncGElement.idl:
52750         * ksvg2/svg/SVGFEFuncRElement.cpp:
52751         * ksvg2/svg/SVGFEFuncRElement.h:
52752         * ksvg2/svg/SVGFEFuncRElement.idl:
52753         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
52754         * ksvg2/svg/SVGFEGaussianBlurElement.h:
52755         * ksvg2/svg/SVGFEGaussianBlurElement.idl:
52756         * ksvg2/svg/SVGFEImageElement.cpp:
52757         * ksvg2/svg/SVGFEImageElement.h:
52758         * ksvg2/svg/SVGFEImageElement.idl:
52759         * ksvg2/svg/SVGFELightElement.cpp:
52760         * ksvg2/svg/SVGFELightElement.h:
52761         * ksvg2/svg/SVGFEMergeElement.cpp:
52762         * ksvg2/svg/SVGFEMergeElement.h:
52763         * ksvg2/svg/SVGFEMergeElement.idl:
52764         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
52765         * ksvg2/svg/SVGFEMergeNodeElement.h:
52766         * ksvg2/svg/SVGFEMergeNodeElement.idl:
52767         * ksvg2/svg/SVGFEOffsetElement.cpp:
52768         * ksvg2/svg/SVGFEOffsetElement.h:
52769         * ksvg2/svg/SVGFEOffsetElement.idl:
52770         * ksvg2/svg/SVGFEPointLightElement.cpp:
52771         * ksvg2/svg/SVGFEPointLightElement.h:
52772         * ksvg2/svg/SVGFEPointLightElement.idl:
52773         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
52774         * ksvg2/svg/SVGFESpecularLightingElement.h:
52775         * ksvg2/svg/SVGFESpecularLightingElement.idl:
52776         * ksvg2/svg/SVGFESpotLightElement.cpp:
52777         * ksvg2/svg/SVGFESpotLightElement.h:
52778         * ksvg2/svg/SVGFESpotLightElement.idl:
52779         * ksvg2/svg/SVGFETileElement.cpp:
52780         * ksvg2/svg/SVGFETileElement.h:
52781         * ksvg2/svg/SVGFETileElement.idl:
52782         * ksvg2/svg/SVGFETurbulenceElement.cpp:
52783         * ksvg2/svg/SVGFETurbulenceElement.h:
52784         * ksvg2/svg/SVGFETurbulenceElement.idl:
52785         * ksvg2/svg/SVGFilterElement.cpp:
52786         * ksvg2/svg/SVGFilterElement.h:
52787         * ksvg2/svg/SVGFilterElement.idl:
52788         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
52789         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
52790         * ksvg2/svg/SVGFitToViewBox.cpp:
52791         * ksvg2/svg/SVGFitToViewBox.h:
52792         * ksvg2/svg/SVGForeignObjectElement.cpp:
52793         * ksvg2/svg/SVGForeignObjectElement.h:
52794         * ksvg2/svg/SVGForeignObjectElement.idl:
52795         * ksvg2/svg/SVGGElement.cpp:
52796         * ksvg2/svg/SVGGElement.h:
52797         * ksvg2/svg/SVGGradientElement.cpp:
52798         * ksvg2/svg/SVGGradientElement.h:
52799         * ksvg2/svg/SVGImageElement.cpp:
52800         * ksvg2/svg/SVGImageElement.h:
52801         * ksvg2/svg/SVGLangSpace.cpp:
52802         * ksvg2/svg/SVGLangSpace.h:
52803         * ksvg2/svg/SVGLength.cpp:
52804         * ksvg2/svg/SVGLength.h:
52805         * ksvg2/svg/SVGLengthList.cpp:
52806         * ksvg2/svg/SVGLengthList.h:
52807         * ksvg2/svg/SVGLineElement.cpp:
52808         * ksvg2/svg/SVGLineElement.h:
52809         * ksvg2/svg/SVGLinearGradientElement.cpp:
52810         * ksvg2/svg/SVGLinearGradientElement.h:
52811         * ksvg2/svg/SVGList.h:
52812         * ksvg2/svg/SVGListTraits.h:
52813         * ksvg2/svg/SVGLocatable.cpp:
52814         (WebCore::SVGLocatable::nearestViewportElement):
52815         (WebCore::SVGLocatable::farthestViewportElement):
52816         * ksvg2/svg/SVGLocatable.h:
52817         * ksvg2/svg/SVGMPathElement.cpp:
52818         * ksvg2/svg/SVGMPathElement.h:
52819         * ksvg2/svg/SVGMarkerElement.cpp:
52820         * ksvg2/svg/SVGMarkerElement.h:
52821         * ksvg2/svg/SVGMaskElement.cpp:
52822         * ksvg2/svg/SVGMaskElement.h:
52823         * ksvg2/svg/SVGMetadataElement.cpp:
52824         * ksvg2/svg/SVGMetadataElement.h:
52825         * ksvg2/svg/SVGNumberList.cpp:
52826         * ksvg2/svg/SVGNumberList.h:
52827         * ksvg2/svg/SVGPaint.cpp:
52828         * ksvg2/svg/SVGPaint.h:
52829         * ksvg2/svg/SVGParserUtilities.cpp:
52830         * ksvg2/svg/SVGParserUtilities.h:
52831         * ksvg2/svg/SVGPathElement.cpp:
52832         * ksvg2/svg/SVGPathElement.h:
52833         * ksvg2/svg/SVGPathSeg.h:
52834         * ksvg2/svg/SVGPathSegArc.cpp:
52835         * ksvg2/svg/SVGPathSegArc.h:
52836         * ksvg2/svg/SVGPathSegClosePath.cpp:
52837         * ksvg2/svg/SVGPathSegClosePath.h:
52838         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
52839         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
52840         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
52841         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
52842         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
52843         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
52844         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
52845         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
52846         * ksvg2/svg/SVGPathSegLineto.cpp:
52847         * ksvg2/svg/SVGPathSegLineto.h:
52848         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
52849         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
52850         * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
52851         * ksvg2/svg/SVGPathSegLinetoVertical.h:
52852         * ksvg2/svg/SVGPathSegList.cpp:
52853         * ksvg2/svg/SVGPathSegList.h:
52854         * ksvg2/svg/SVGPathSegMoveto.cpp:
52855         * ksvg2/svg/SVGPathSegMoveto.h:
52856         * ksvg2/svg/SVGPatternElement.cpp:
52857         * ksvg2/svg/SVGPatternElement.h:
52858         * ksvg2/svg/SVGPointList.cpp:
52859         * ksvg2/svg/SVGPointList.h:
52860         * ksvg2/svg/SVGPolyElement.cpp:
52861         * ksvg2/svg/SVGPolyElement.h:
52862         * ksvg2/svg/SVGPolygonElement.cpp:
52863         * ksvg2/svg/SVGPolygonElement.h:
52864         * ksvg2/svg/SVGPolylineElement.cpp:
52865         * ksvg2/svg/SVGPolylineElement.h:
52866         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
52867         * ksvg2/svg/SVGPreserveAspectRatio.h:
52868         * ksvg2/svg/SVGRadialGradientElement.cpp:
52869         * ksvg2/svg/SVGRadialGradientElement.h:
52870         * ksvg2/svg/SVGRectElement.cpp:
52871         * ksvg2/svg/SVGRectElement.h:
52872         * ksvg2/svg/SVGRenderingIntent.h:
52873         * ksvg2/svg/SVGSVGElement.cpp:
52874         * ksvg2/svg/SVGSVGElement.h:
52875         * ksvg2/svg/SVGScriptElement.cpp:
52876         * ksvg2/svg/SVGScriptElement.h:
52877         * ksvg2/svg/SVGSetElement.cpp:
52878         * ksvg2/svg/SVGSetElement.h:
52879         * ksvg2/svg/SVGStopElement.cpp:
52880         * ksvg2/svg/SVGStopElement.h:
52881         * ksvg2/svg/SVGStringList.cpp:
52882         * ksvg2/svg/SVGStringList.h:
52883         * ksvg2/svg/SVGStylable.cpp:
52884         * ksvg2/svg/SVGStylable.h:
52885         * ksvg2/svg/SVGStyleElement.cpp:
52886         * ksvg2/svg/SVGStyleElement.h:
52887         * ksvg2/svg/SVGStyledElement.cpp:
52888         (WebCore::SVGStyledElement::notifyAttributeChange):
52889         * ksvg2/svg/SVGStyledElement.h:
52890         * ksvg2/svg/SVGStyledLocatableElement.cpp:
52891         * ksvg2/svg/SVGStyledLocatableElement.h:
52892         * ksvg2/svg/SVGStyledTransformableElement.cpp:
52893         * ksvg2/svg/SVGStyledTransformableElement.h:
52894         * ksvg2/svg/SVGSwitchElement.cpp:
52895         * ksvg2/svg/SVGSwitchElement.h:
52896         * ksvg2/svg/SVGSymbolElement.cpp:
52897         * ksvg2/svg/SVGSymbolElement.h:
52898         * ksvg2/svg/SVGTRefElement.cpp:
52899         * ksvg2/svg/SVGTRefElement.h:
52900         * ksvg2/svg/SVGTSpanElement.cpp:
52901         * ksvg2/svg/SVGTSpanElement.h:
52902         * ksvg2/svg/SVGTests.cpp:
52903         * ksvg2/svg/SVGTests.h:
52904         * ksvg2/svg/SVGTextContentElement.cpp:
52905         * ksvg2/svg/SVGTextContentElement.h:
52906         * ksvg2/svg/SVGTextElement.cpp:
52907         * ksvg2/svg/SVGTextElement.h:
52908         * ksvg2/svg/SVGTextPositioningElement.cpp:
52909         * ksvg2/svg/SVGTextPositioningElement.h:
52910         * ksvg2/svg/SVGTitleElement.cpp:
52911         * ksvg2/svg/SVGTitleElement.h:
52912         * ksvg2/svg/SVGTransform.cpp:
52913         * ksvg2/svg/SVGTransform.h:
52914         * ksvg2/svg/SVGTransformDistance.cpp:
52915         * ksvg2/svg/SVGTransformDistance.h:
52916         * ksvg2/svg/SVGTransformList.cpp:
52917         * ksvg2/svg/SVGTransformList.h:
52918         * ksvg2/svg/SVGTransformable.cpp:
52919         * ksvg2/svg/SVGTransformable.h:
52920         * ksvg2/svg/SVGURIReference.cpp:
52921         * ksvg2/svg/SVGURIReference.h:
52922         * ksvg2/svg/SVGUnitTypes.h:
52923         * ksvg2/svg/SVGUseElement.cpp:
52924         * ksvg2/svg/SVGUseElement.h:
52925         * ksvg2/svg/SVGUseElement.idl:
52926         * ksvg2/svg/SVGViewElement.cpp:
52927         * ksvg2/svg/SVGViewElement.h:
52928         * ksvg2/svg/SVGZoomAndPan.cpp:
52929         * ksvg2/svg/SVGZoomAndPan.h:
52930         * ksvg2/svg/svgtags.in:
52931         * loader/Cache.cpp:
52932         (WebCore::createResource):
52933         (WebCore::Cache::getStatistics):
52934         * loader/Cache.h:
52935         * loader/CachedImage.cpp:
52936         (WebCore::CachedImage::createImage):
52937         * loader/CachedResource.h:
52938         (WebCore::CachedResource::):
52939         * loader/CachedResourceClient.h:
52940         * loader/CachedXBLDocument.cpp:
52941         * loader/CachedXBLDocument.h:
52942         * loader/CachedXSLStyleSheet.cpp:
52943         * loader/CachedXSLStyleSheet.h:
52944         * loader/DocLoader.cpp:
52945         * loader/DocLoader.h:
52946         * page/DOMWindow.idl:
52947         * page/EventHandler.cpp:
52948         (WebCore::EventHandler::handleMouseMoveEvent):
52949         (WebCore::selectCursor):
52950         * page/Frame.cpp:
52951         (WebCore::Frame::Frame):
52952         * page/PageState.cpp:
52953         (WebCore::PageState::PageState):
52954         (WebCore::PageState::restore):
52955         * platform/MimeTypeRegistry.cpp:
52956         (WebCore::initialiseSupportedNonImageMimeTypes):
52957         * platform/graphics/FloatPoint3D.cpp:
52958         * platform/graphics/FloatPoint3D.h:
52959         * platform/graphics/ImageBuffer.cpp:
52960         (WebCore::ImageBuffer::renderSubtreeToImage):
52961         * platform/graphics/svg/SVGImage.cpp:
52962         * platform/graphics/svg/SVGImage.h:
52963         * platform/graphics/svg/SVGImageEmptyClients.h:
52964         * platform/graphics/svg/SVGPaintServer.cpp:
52965         * platform/graphics/svg/SVGPaintServer.h:
52966         * platform/graphics/svg/SVGPaintServerGradient.cpp:
52967         * platform/graphics/svg/SVGPaintServerGradient.h:
52968         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
52969         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
52970         * platform/graphics/svg/SVGPaintServerPattern.cpp:
52971         * platform/graphics/svg/SVGPaintServerPattern.h:
52972         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
52973         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
52974         * platform/graphics/svg/SVGPaintServerSolid.cpp:
52975         * platform/graphics/svg/SVGPaintServerSolid.h:
52976         * platform/graphics/svg/SVGResource.cpp:
52977         * platform/graphics/svg/SVGResource.h:
52978         * platform/graphics/svg/SVGResourceClipper.cpp:
52979         * platform/graphics/svg/SVGResourceClipper.h:
52980         * platform/graphics/svg/SVGResourceFilter.cpp:
52981         * platform/graphics/svg/SVGResourceFilter.h:
52982         * platform/graphics/svg/SVGResourceMarker.cpp:
52983         * platform/graphics/svg/SVGResourceMarker.h:
52984         * platform/graphics/svg/SVGResourceMasker.cpp:
52985         * platform/graphics/svg/SVGResourceMasker.h:
52986         * platform/graphics/svg/cg/CgSupport.cpp:
52987         * platform/graphics/svg/cg/CgSupport.h:
52988         * platform/graphics/svg/cg/RenderPathCg.cpp:
52989         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
52990         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
52991         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
52992         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
52993         * platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
52994         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
52995         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
52996         * platform/graphics/svg/filters/SVGDistantLightSource.h:
52997         * platform/graphics/svg/filters/SVGFEBlend.cpp:
52998         * platform/graphics/svg/filters/SVGFEBlend.h:
52999         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
53000         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
53001         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
53002         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
53003         * platform/graphics/svg/filters/SVGFEComposite.cpp:
53004         * platform/graphics/svg/filters/SVGFEComposite.h:
53005         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
53006         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
53007         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
53008         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
53009         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
53010         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
53011         * platform/graphics/svg/filters/SVGFEFlood.cpp:
53012         * platform/graphics/svg/filters/SVGFEFlood.h:
53013         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
53014         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
53015         * platform/graphics/svg/filters/SVGFEImage.cpp:
53016         * platform/graphics/svg/filters/SVGFEImage.h:
53017         * platform/graphics/svg/filters/SVGFEMerge.cpp:
53018         * platform/graphics/svg/filters/SVGFEMerge.h:
53019         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
53020         * platform/graphics/svg/filters/SVGFEMorphology.h:
53021         * platform/graphics/svg/filters/SVGFEOffset.cpp:
53022         * platform/graphics/svg/filters/SVGFEOffset.h:
53023         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
53024         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
53025         * platform/graphics/svg/filters/SVGFETile.h:
53026         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
53027         * platform/graphics/svg/filters/SVGFETurbulence.h:
53028         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
53029         * platform/graphics/svg/filters/SVGFilterEffect.h:
53030         * platform/graphics/svg/filters/SVGLightSource.cpp:
53031         * platform/graphics/svg/filters/SVGLightSource.h:
53032         * platform/graphics/svg/filters/SVGPointLightSource.h:
53033         * platform/graphics/svg/filters/SVGSpotLightSource.h:
53034         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
53035         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
53036         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
53037         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
53038         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
53039         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
53040         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
53041         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
53042         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
53043         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
53044         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
53045         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
53046         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
53047         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
53048         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
53049         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
53050         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
53051         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
53052         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
53053         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
53054         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
53055         * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
53056         * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
53057         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
53058         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
53059         * rendering/HitTestResult.cpp:
53060         (WebCore::HitTestResult::absoluteImageURL):
53061         (WebCore::HitTestResult::absoluteLinkURL):
53062         (WebCore::HitTestResult::isLiveLink):
53063         * rendering/RenderForeignObject.cpp:
53064         * rendering/RenderForeignObject.h:
53065         * rendering/RenderLayer.cpp:
53066         (WebCore::RenderLayer::isTransparent):
53067         * rendering/RenderObject.cpp:
53068         (WebCore::RenderObject::containingBlock):
53069         * rendering/RenderObject.h:
53070         * rendering/RenderPath.cpp:
53071         * rendering/RenderPath.h:
53072         * rendering/RenderSVGBlock.cpp:
53073         * rendering/RenderSVGBlock.h:
53074         * rendering/RenderSVGContainer.cpp:
53075         * rendering/RenderSVGContainer.h:
53076         * rendering/RenderSVGGradientStop.cpp:
53077         * rendering/RenderSVGGradientStop.h:
53078         * rendering/RenderSVGHiddenContainer.cpp:
53079         * rendering/RenderSVGHiddenContainer.h:
53080         * rendering/RenderSVGImage.cpp:
53081         * rendering/RenderSVGImage.h:
53082         * rendering/RenderSVGInline.cpp:
53083         * rendering/RenderSVGInline.h:
53084         * rendering/RenderSVGInlineText.cpp:
53085         * rendering/RenderSVGInlineText.h:
53086         * rendering/RenderSVGTSpan.cpp:
53087         * rendering/RenderSVGTSpan.h:
53088         * rendering/RenderSVGText.cpp:
53089         * rendering/RenderSVGText.h:
53090         * rendering/RenderStyle.cpp:
53091         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
53092         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
53093         (WebCore::StyleRareNonInheritedData::operator==):
53094         (WebCore::RenderStyle::RenderStyle):
53095         (WebCore::RenderStyle::inheritFrom):
53096         (WebCore::RenderStyle::operator==):
53097         (WebCore::RenderStyle::inheritedNotEqual):
53098         (WebCore::RenderStyle::diff):
53099         * rendering/RenderStyle.h:
53100         * rendering/RenderText.cpp:
53101         (WebCore::RenderText::setStyle):
53102         (WebCore::RenderText::setTextInternal):
53103         * rendering/RenderTreeAsText.cpp:
53104         (WebCore::write):
53105         (WebCore::externalRepresentation):
53106         * rendering/SVGInlineFlowBox.cpp:
53107         * rendering/SVGInlineFlowBox.h:
53108         * rendering/SVGRenderTreeAsText.cpp:
53109         * rendering/SVGRenderTreeAsText.h:
53110         * rendering/SVGRootInlineBox.cpp:
53111         * rendering/SVGRootInlineBox.h:
53112         * rendering/bidi.cpp:
53113         (WebCore::shouldPreserveNewline):
53114         (WebCore::RenderBlock::findNextLineBreak):
53115         * webcore-base.bkl:
53116         * xml/NativeXPathNSResolver.cpp:
53117         * xml/NativeXPathNSResolver.h:
53118         * xml/XPathEvaluator.cpp:
53119         * xml/XPathEvaluator.h:
53120         * xml/XPathExpression.cpp:
53121         * xml/XPathExpression.h:
53122         * xml/XPathExpressionNode.cpp:
53123         * xml/XPathExpressionNode.h:
53124         * xml/XPathFunctions.cpp:
53125         * xml/XPathFunctions.h:
53126         * xml/XPathGrammar.y:
53127         * xml/XPathNSResolver.cpp:
53128         * xml/XPathNSResolver.h:
53129         * xml/XPathNamespace.cpp:
53130         * xml/XPathNamespace.h:
53131         * xml/XPathParser.cpp:
53132         * xml/XPathParser.h:
53133         * xml/XPathPath.cpp:
53134         * xml/XPathPath.h:
53135         * xml/XPathPredicate.cpp:
53136         * xml/XPathPredicate.h:
53137         * xml/XPathResult.cpp:
53138         * xml/XPathResult.h:
53139         * xml/XPathStep.cpp:
53140         * xml/XPathStep.h:
53141         * xml/XPathUtil.cpp:
53142         * xml/XPathUtil.h:
53143         * xml/XPathValue.cpp:
53144         * xml/XPathValue.h:
53145         * xml/XPathVariableReference.cpp:
53146         * xml/XPathVariableReference.h:
53147         * xml/XSLImportRule.cpp:
53148         * xml/XSLImportRule.h:
53149         * xml/XSLStyleSheet.cpp:
53150         * xml/XSLStyleSheet.h:
53151         * xml/XSLTProcessor.cpp:
53152         * xml/XSLTProcessor.h:
53154 2007-02-25  Mitz Pettel  <mitz@webkit.org>
53156         Reviewed by David Hyatt.
53158         - fix http://bugs.webkit.org/show_bug.cgi?id=12886
53159           Crash with Scriptalicious javascript library
53161         Test: fast/dynamic/float-withdrawal.html
53163         * rendering/RenderBlock.cpp:
53164         (WebCore::RenderBlock::layoutBlockChildren): Detect when a child block had
53165         intruding floats in a previous layout, and in that case force it to relayout.
53167 2007-02-25  David Hyatt  <hyatt@apple.com>
53169         Revert my change to the default fill color.  Just set the color to transparent explicitly when
53170         drawing textarea resizer frames.
53172         * platform/graphics/GraphicsContext.cpp:
53173         (WebCore::GraphicsContextState::GraphicsContextState):
53174         * rendering/RenderLayer.cpp:
53175         (WebCore::RenderLayer::paintOverflowControls):
53177 2007-02-25  Sam Weinig  <sam@webkit.org>
53179         Update forgotten files.
53181         * rendering/RenderLayer.cpp:
53182         (WebCore::RenderLayer::updateLayerPosition):
53184 2007-02-25  David Hyatt  <hyatt@apple.com>
53186         Fix for regression caused by changing the containing block of positioned elements with no positioned ancestor
53187         to be the initial containing block (represented in our tree by the RenderView).  Rework RenderView's layout
53188         to have very few special cases.   Now it will just relayout its children when the width/height of the
53189         view actually changes.  Positioned elements no longer get a special additional layout, since width/height
53190         adjustments are caught by the base class already anyway.
53192         Reviewed by mjs, darin
53194         * rendering/RenderBlock.cpp:
53195         (WebCore::RenderBlock::layoutBlock):
53196         * rendering/RenderFlexibleBox.cpp:
53197         (WebCore::RenderFlexibleBox::layoutBlock):
53198         (WebCore::RenderFlexibleBox::layoutVerticalBox):
53199         * rendering/RenderView.cpp:
53200         (WebCore::RenderView::RenderView):
53201         (WebCore::RenderView::layout):
53202         * rendering/RenderView.h:
53204 2007-02-25  Maciej Stachowiak  <mjs@apple.com>
53206         Not reviewed, build fix.
53208         - fix build breakage
53210         * platform/gdk/ScrollViewGdk.cpp:
53211         (WebCore::ScrollView::fullyClippedContentRect):
53212         * platform/qt/ScrollViewQt.cpp:
53213         (WebCore::ScrollView::fullyClippedContentRect):
53215 2007-02-24  Maciej Stachowiak  <mjs@apple.com>
53217         Reviewed by Adam.
53219         - fixed layout test failure in fast/overflow/scrollRevealButton
53220         
53221         I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
53222         as clipped by all ancestor scroll views, not just this one. Currently it only works
53223         correctly on mac however. visibleContentRect, only accounting for the clipping from
53224         this particular scroll view, is sufficient for most purposes.
53226         * page/Frame.cpp:
53227         (WebCore::Frame::visibleSelectionRect):
53228         (WebCore::Frame::setIsActive):
53229         (WebCore::Frame::markAllMatchesForText):
53230         * platform/ScrollView.h:
53231         * platform/gdk/ScrollViewGdk.cpp:
53232         (WebCore::ScrolView::fullyClippedContentRect):
53233         * platform/mac/ScrollViewMac.mm:
53234         (WebCore::ScrollView::fullyClippedContentRect):
53235         * platform/qt/ScrollViewQt.cpp:
53236         (WebCore::ScrolView::fullyClippedContentRect):
53237         * rendering/RenderLayer.cpp:
53238         (WebCore::RenderLayer::scrollRectToVisible):
53240 2007-02-24  Adam Roben  <aroben@apple.com>
53242         Reviewed by Steve.
53244         "Look Up in Dictionary" context menu item should be Mac-only for now,
53245         since it's only implemented on that platform (<rdar://problem/5021468>)
53247         * platform/ContextMenu.cpp:
53248         (WebCore::ContextMenu::populate): Wrap all instances of the dictionary
53249         menu item in #if PLATFORM(MAC).
53251 2007-02-24  Geoffrey Garen  <ggaren@apple.com>
53253         Reviewed by Darin Adler.
53254         
53255         Fixed <rdar://problem/4987649> leaks in BidiRun::operator new seen while 
53256         running WebKit unit tests
53257         
53258         In bidi.cpp, some functions allocate BidiRuns and put them in a global data
53259         structure, while others uses the BidiRuns in the global data structure. 
53260         The caller is responsible for knowing which functions may allocate runs
53261         and which may use them, and calling deleteBidiRuns() at the appropriate time.
53263         The fix is to add some calls to deleteBidiRuns() where they were missing.
53264         
53265         I also added a BidiRun counter because these two leaks were introduced by
53266         our two bidi.cpp experts, so the odds that leaks will creep in again
53267         in the future seem pretty high.
53269         * rendering/bidi.cpp:
53270         (WebCore::RenderBlock::bidiReorderCharacters): Added  missing call to
53271         deleteBidiRuns().
53272         (WebCore::BidiRunCounter::~BidiRunCounter):
53273         (WebCore::BidiRun::operator delete):
53274         (WebCore::RenderBlock::layoutInlineChildren): Added missing call to
53275         deleteBidiRuns(). Moved call to deleteBidiRuns() to same scope as call to
53276         bidiReorderLine(), to emphasize that they go together like new/delete.
53277         In theory, the old code was just as good, but I didn't want to rely on
53278         theory.
53280 2007-02-24  David Harrison  <harrison@apple.com>
53282         Reviewed by Kevin.
53284         <rdar://problem/4961431> Image with empty string alt tag should be ignored
53286         * bridge/mac/WebCoreAXObject.mm:
53287         (-[WebCoreAXObject accessibilityIsIgnored]):
53288         Ignore img element that has an alt attribute, but that string is empty.
53290 2007-02-24  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53292         Reviewed by Adam Roben.
53294         Gdk improvements.
53296         * platform/gdk/FrameGdk.cpp: only scroll on keydown, not both keydown and keyup.
53297         (WebCore::FrameGdk::keyPress):
53298         (WebCore::FrameGdk::handleGdkEvent):
53299         (WebCore::Frame::print):
53300         (WebCore::Frame::issueTransposeCommand):
53301         (WebCore::Frame::respondToChangedSelection):
53302         (WebCore::Frame::cleanupPlatformScriptObjects):
53303         (WebCore::Frame::dragImageForSelection):
53304         * platform/network/gdk/ResourceHandleManager.cpp: don't free memory that
53305         doesn't belong to us.
53306         (WebCore::ResourceHandleManager::downloadTimerCallback):
53308 2007-02-23  Kevin Decker <kdecker@apple.com>
53310         Reviewed by Anders.
53312         Fixed: <rdar://problem/4971226> REGRESSION: Replying to closed HTML mail message does not quote original body (12503)
53313         
53314         There were two problems here:
53315         
53316         * page/mac/WebCoreFrameBridge.mm:
53317         (+[WebCoreFrameBridge stringWithData:textEncodingName:]): The old code said  "if there is no text encoding name than
53318          assume WindowsLatin1 (iso-8859-1) and try to decode that". That's not sufficient because it doesn't handle the fallback
53319          case for unknown encodings. This method will now attempt to decode using WindowsLatin1 for unknown encoding types.
53320         * platform/mac/mac-encodings.txt: Added the missing "macroman" encoding type. 
53322 2007-02-23  Mitz Pettel  <mitz@webkit.org>
53324         Reviewed by Maciej.
53326         - fix http://bugs.webkit.org/show_bug.cgi?id=12856
53327           REGRESSION (r13685): Canceling the suggestion popup does not revert the change
53329         * editing/ReplaceSelectionCommand.cpp:
53330         (WebCore::ReplaceSelectionCommand::doApply): If the fragment to be inserted
53331         is empty, first delete the selection, and only then bail out. 
53333 2007-02-23  Anders Carlsson  <acarlsson@apple.com>
53335         Reviewed by Adam.
53337         <rdar://problem/5001923> 
53338         REGRESSION: Crash when navigating forward from an error page in WebFrameLoaderClient::dispatchDidReceiveContentLength
53340         Fix an error that was introduced in revision r18541. We should check if the provisional document loader 
53341         has an unreachable URL, not the actual document loader.
53342         
53343         * loader/FrameLoader.cpp:
53344         (WebCore::FrameLoader::updateHistoryForCommit):
53346 2007-02-23  Mitz Pettel  <mitz@webkit.org>
53348         Reviewed by Darin.
53350         - fix http://bugs.webkit.org/show_bug.cgi?id=12823
53351           REGRESSION(r16968-16977): unable to prevent selection by cancelling "selectstart" event
53353         Test: fast/events/selectstart-during-autoscroll.html
53355         * rendering/RenderLayer.cpp:
53356         (WebCore::RenderLayer::autoscroll): Invoke the renderer's shouldSelect() --
53357         which dispatches the selection DOM event and gives it a chance to cancel
53358         the selection -- before updating the selection during autoscroll.
53360 2007-02-23  Oliver Hunt  <oliver@apple.com>
53362         Reviewed by Adam.
53364         Fix for http://bugs.webkit.org/show_bug.cgi?id=12870
53366         It turns out short circuiting DragData::containsURL() was bad
53368         * manual-tests/directory-drop-on-view.html: Added.
53369         * platform/mac/DragDataMac.mm:
53370         (WebCore::DragData::containsURL):
53372 2007-02-23  Maciej Stachowiak  <mjs@apple.com>
53374         Reviewed by Mitz.
53376         - 12.5% speedup on BenchJS test 6
53377         Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
53378         
53379         It turns out that calling documentVisibleRect on an NSScrollView is pretty expensive,
53380         and calling visibleRect even more so. Take measures to call them less often.
53382         * platform/mac/ScrollViewMac.mm:
53383         (WebCore::ScrollView::visibleContentRect): Use documentVisibleRect when possible.
53384         (WebCore::ScrollView::updateContents): Use visibleContentRect to be able to use
53385         documentVisibleRect when possible.
53386         * rendering/RenderView.cpp:
53387         (WebCore::RenderView::repaintViewRectangle): Don't get or intersect with viewRect
53388         if we don't have a parent frame, since the ScrollView will do that anyway. Also,
53389         don't get contentX and contentY separately since they are in the viewRect already.
53390         (WebCore::RenderView::viewRect): Use visibleContentRect instead of getting each
53391         coordinate individually, to avoid calling documentVisibleRect repeatedly.
53393 2007-02-23  Maciej Stachowiak  <mjs@apple.com>
53395         Reviewed by Mitz.
53397         - 2% speedup on BenchJS test 6
53398         Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
53400         * css/CSSPrimitiveValue.cpp:
53401         (WebCore::CSSPrimitiveValue::cssText): Use format() instead of
53402         number() followed by append of a constant string.
53404 2007-02-22  George Staikos  <staikos@kde.org>
53406         Fix the Qt build.
53408         * platform/qt/ClipboardQt.cpp:
53409         (WebCore::ClipboardQt::ClipboardQt):
53411 2007-02-22  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53413         Reviewed by Adam Roben, who never sleeps.
53415         To avoid code duplication, move notImplementedGdk() macro to a separate
53416         header file. Remove existing notImplementedGdk() macros and replace
53417         remaining notImplemented() to notImplementedGdk() in gdk code.
53419         * loader/gdk/DocumentLoaderGdk.cpp:
53420         (WebCore::DocumentLoader::getResponseModifiedHeader):
53421         * loader/gdk/FrameLoaderClientGdk.cpp:
53422         (WebCore::FrameLoaderClientGdk::hasWebView):
53423         (WebCore::FrameLoaderClientGdk::hasFrameView):
53424         * page/gdk/ContextMenuClientGdk.cpp:
53425         (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
53426         (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
53427         (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
53428         (WebCore::ContextMenuClientGdk::downloadURL):
53429         (WebCore::ContextMenuClientGdk::copyImageToClipboard):
53430         (WebCore::ContextMenuClientGdk::searchWithGoogle):
53431         (WebCore::ContextMenuClientGdk::lookUpInDictionary):
53432         (WebCore::ContextMenuClientGdk::speak):
53433         (WebCore::ContextMenuClientGdk::stopSpeaking):
53434         * page/gdk/EventHandlerGdk.cpp:
53435         * platform/gdk/CursorGdk.cpp:
53436         (WebCore::Cursor::Cursor):
53437         * platform/gdk/EditorClientGdk.cpp:
53438         * platform/gdk/NotImplementedGdk.h: Added.
53439         * platform/gdk/PopupMenuGdk.cpp:
53440         (WebCore::PopupMenu::PopupMenu):
53441         (WebCore::PopupMenu::~PopupMenu):
53442         (WebCore::PopupMenu::show):
53443         (WebCore::PopupMenu::hide):
53444         (WebCore::PopupMenu::updateFromElement):
53445         * platform/gdk/RenderThemeGdk.cpp:
53446         * platform/gdk/ScreenGdk.cpp:
53447         (WebCore::screenDepth):
53448         (WebCore::screenDepthPerComponent):
53449         (WebCore::screenIsMonochrome):
53450         (WebCore::screenRect):
53451         (WebCore::screenAvailableRect):
53452         * platform/gdk/TemporaryLinkStubs.cpp:
53453         * platform/graphics/gdk/ImageGdk.cpp:
53454         (WebCore::Image::drawPattern):
53455         * platform/network/gdk/ResourceHandleCurl.cpp:
53456         (WebCore::ResourceHandle::setDefersLoading):
53457         * platform/network/gdk/ResourceHandleManager.cpp:
53458         (WebCore::ResourceHandleManager::setupPUT):
53459         (WebCore::ResourceHandleManager::setupPOST):
53461 2007-02-22  Feng Qian  <feng@chromium.org>
53463         Reviewed by Maciej.
53465         - Patch for http://bugs.webkit.org/show_bug.cgi?id=12850
53466           Leaks >10k objects
53468         and
53470         - http://bugs.webkit.org/show_bug.cgi?id=12853
53471           add a EventListener leak counter
53473         Problem: RemoveEventListener leaks memory if the listener is not
53474         registered.
53475         Fix: Added Window::findJSEventListener function w/o creating a 
53476         JSEventListener; Renamed getJSEventListener to findOrCreateJSEventListener;
53478         As an enhancement, added a leak counter for EventListeners.
53480         Added a test case, LayoutTests/fast/events/remove-event-listener.html.
53482         * WebCore/bindings/js/kjs_dom.cpp:
53483         * WebCore/bindings/js/kjs_window.h:
53484         * WebCore/bindings/js/kjs_window.cpp:
53485         * WebCore/bindings/js/kjs_event.cpp: Add a leak counter.
53486         * WebCore/bindings/js/JSXMLHttpRequest.cpp:
53487         * LayoutTests/fast/events/remove-event-listener.html:
53489 2007-02-22  Anders Carlsson  <acarlsson@apple.com>
53491         Reviewed by Geoff.
53493         <rdar://problem/4998203> 
53494         REGRESSION: Back-forward list gets messed up when navigating to error pages with back-forward cache turned off
53495         
53496         * loader/FrameLoader.cpp:
53497         (WebCore::FrameLoader::load):
53498         Remove call to setPolicyDocumentLoader(), the policy document loader is set immediately after, and setting it before 
53499         calling shouldReloadToHandleUnreachableURL causes us to get the wrong URL.
53500         
53501         (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
53502         Check if the unreachable URL is equal to the document loader's request.
53503         
53504         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
53505         Check the provisional document loader's unreachable URL.
53507 2007-02-22  Justin Garcia  <justin.garcia@apple.com>
53509         Reviewed by darin
53510         
53511         <rdar://problem/5007143>
53512         REGRESSION: WebKit doesn't remember horizontal position of caret when moving forward by line
53514         * editing/SelectionController.cpp:
53515         (WebCore::SelectionController::SelectionController): Initialize 
53516         m_xPosForVerticalArrowNavigation.
53517         (WebCore::SelectionController::setSelection): Call the new setter.
53518         (WebCore::SelectionController::modifyMovingRightForward): For line
53519         and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
53520         even if the old selection was a range. Use the x position of the 
53521         *start*, not the end of the selection if there is no saved 
53522         xPosForVerticalArrowNavigation.  This matches TextEdit's behavior.
53523         (WebCore::SelectionController::modifyMovingLeftBackward): For line
53524         and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
53525         even if the old selection was a range.
53526         (WebCore::SelectionController::modify): Preserve the xPosForVerticalArrowNavigation
53527         for line and paragraph granularities.
53528         (WebCore::SelectionController::xPosForVerticalArrowNavigation): Removed
53529         the recalc bool because it is now always false.
53530         (WebCore::SelectionController::setXPosForVerticalArrowNavigation): Added.
53531         * editing/SelectionController.h: Moved m_xPosForVerticalArrowNavigation
53532         from Frame.
53533         * page/Frame.cpp: Moved m_xPosForVerticalArrowNavigation to SelectionController.
53534         * page/Frame.h: Ditto.
53535         * page/FramePrivate.h: Ditto.
53537 2007-02-22  Beth Dakin  <bdakin@apple.com>
53539         Reviewed by Adam. Manual test added.
53541         Fix for http://bugs.webkit.org/show_bug.cgi?id=12399 REGRESSION: 
53542         Unable to prevent default context menu from appearing. <rdar://
53543         problem/5017416>
53545         This problem appeared because of two facets of the current context 
53546         menu design. First, all context menu events are now considered to 
53547         be "swallowed" since we take care of building up the regular 
53548         context menu through the defaultEventHandler(). Second, the context 
53549         menu controller holds onto it's context menu until a new one is 
53550         created. There would be logistical problems changing this since 
53551         AppKit relies on the menu being around for as long as it is
53552         visible on the screen and we don't get any notification once the 
53553         menu is popped-down.
53555         This patch fixes the problem by giving WebKit a way to clear the 
53556         controller's context menu. WebKit now clears the menu before it 
53557         propagates a new context menu event through the DOM.
53559         * WebCore.exp:
53560         * manual-tests/DOMContextMenuEvent.html: Added.
53561         * page/ContextMenuController.cpp:
53562         (WebCore::ContextMenuController::clearContextMenu):
53563         * page/ContextMenuController.h:
53565 2007-02-22  John Sullivan  <sullivan@apple.com>
53567         Reviewed by Kevin and Adele
53568         
53569         - fixed <rdar://problem/4129417> Need final art for textarea's resize corner
53570         
53571         This probably broke some layout pixel tests since the image changed. I'm going to
53572         track those down in a moment (non-trivial since there are a bunch failing for other
53573         reasons).
53575         * Resources/textAreaResizeCorner.tiff:
53576         new art
53578         * Resources/deleteButton.tiff:
53579         * Resources/deleteButtonPressed.tiff:
53580         these got smaller when I ran compress-tiffs on this directory
53581         
53582 2007-02-22  Oliver Hunt  <oliver@apple.com>
53584         Reviewed by Ada, Lou and Steve.
53586         Moving basic components of ClipboardMac to Clipboard, 
53587         last of the basic common code merge will come later (namely setting the 
53588         drag element/image).
53589         
53590         Tidying up in DragController including a few bad PassRefPtr uses and
53591         removing unnecessary accessors.  Also initialise fields properly to
53592         fix <rdar:/problems/5014889>
53594         * dom/Clipboard.cpp:
53595         (WebCore::Clipboard::Clipboard):
53596           New constructor
53597           
53598         * dom/Clipboard.h:
53599         (WebCore::Clipboard::isForDragging):
53600         (WebCore::Clipboard::dragLocation):
53601         (WebCore::Clipboard::dragImage):
53602         (WebCore::Clipboard::dragImageElement):
53603           Exposing common data
53604           
53605         * page/DragController.cpp:
53606         (WebCore::DragController::DragController):
53607           Initialise m_isHandlingDrag (oops)
53608         (WebCore::documentFragmentFromDragData):
53609         (WebCore::DragController::tryDocumentDrag):
53610           Fixing PassRefPtr misuse
53611         (WebCore::DragController::canProcessDrag):
53612         (WebCore::DragController::startDrag):
53613         (WebCore::DragController::doSystemDrag):
53614           Make sure we're using the correct coordinate space
53615           
53616         * page/EventHandler.cpp:
53617         (WebCore::EventHandler::handleDrag):
53618           Reset drag source correctly
53619           
53620         * platform/mac/ClipboardMac.h:
53621         * platform/mac/ClipboardMac.mm:
53622         (WebCore::ClipboardMac::ClipboardMac):
53623           update constructor to use new Clipboard constructor
53625 2007-02-22  Adele Peterson  <adele@apple.com>
53627         Reviewed by Darin.
53629         Fix for <rdar://problem/5014970> 9A374: Tabs don't work in the message body
53631         Test: fast/events/keypress-insert-tab.html
53633         * page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
53634           If the defaultTabEventHandler doesn't handle the event, then go on to the insertText case.
53636 2007-02-22  Timothy Hatcher  <timothy@apple.com>
53638         Reviewed by Darin.
53640         <rdar://problem/4948887> REGRESSION: Correct differences in public DOM API that inadvertently changed in Leopard
53642         * bindings/objc/PublicDOMInterfaces.h: Changes return types for two size properties, adds deprecated DOMEventTarget methods.
53643         * bindings/scripts/CodeGeneratorObjC.pm: Fixed public API checking for protocols, adds support for ConvertToString.
53644         * dom/EventTarget.idl: Marks addEventListener and removeEventListener with the OldStyleObjC attribute.
53645         * html/HTMLBaseFontElement.idl: Changes the size property to a DOMString for ObjC only.
53646         * html/HTMLInputElement.idl: Changes the size property to a DOMString for ObjC only.
53647         * html/HTMLOptionsCollection.idl: Changes the length property to be unsigned.
53649 2007-02-22  Adele Peterson  <adele@apple.com>
53651         Reviewed by John.
53653         Fix <rdar://problem/5016969> REGRESSION: "Check Spelling As You Type" context menu item is never checked
53655         * platform/ContextMenu.cpp: (WebCore::ContextMenu::checkOrEnableIfNeeded): Set shouldCheck for ContextMenuItemTagCheckSpellingWhileTyping.
53657 2007-02-22  Antti Koivisto  <antti@apple.com>
53659         Reviewed by Darin.
53661         - fix http://bugs.webkit.org/show_bug.cgi?id=11447
53662         REGRESSION(NativeListBox): List not scrolled to preselected option
53663         <rdar://problem/4957463>
53664         
53665         Initiate scroll when selected <option> is added to <select>.
53667         * html/HTMLOptionElement.cpp:
53668         (WebCore::HTMLOptionElement::insertedIntoDocument):
53669         * html/HTMLOptionElement.h:
53670         * html/HTMLSelectElement.cpp:
53671         (WebCore::HTMLSelectElement::notifyOptionSelected):
53672         (WebCore::HTMLSelectElement::updateListBoxSelection):
53673         (WebCore::HTMLSelectElement::scrollToSelection):
53674         * html/HTMLSelectElement.h:
53676 2007-02-22  Zack Rusin  <zrusin@trolltech.com>
53678         Reviewed by Lars
53680         Fix sites with fixed positioned backgrounds.
53682         * platform/qt/ScrollViewQt.cpp:
53683         (WebCore::ScrollView::setStaticBackground):
53685 2007-02-22  Zack Rusin  <zrusin@trolltech.com>
53687         Reviewed by Lars
53689         Properly implement canvas/scrollview's. Get
53690         rid of ScrollViewCanvas and replace it with
53691         a tailor abstractscrollview (now in qwebframe).
53692         Scrolling of pages is finally completely smooth.
53694         * WebCore.pro:
53695         * platform/ScrollView.h:
53696         * platform/qt/ScrollViewCanvasQt.cpp: Removed.
53697         * platform/qt/ScrollViewCanvasQt.h: Removed.
53698         * platform/qt/ScrollViewQt.cpp:
53699         (WebCore::ScrollView::ScrollView):
53700         (WebCore::ScrollView::setScrollArea):
53701         (WebCore::ScrollView::updateContents):
53702         (WebCore::ScrollView::resizeContents):
53703         (WebCore::ScrollView::contentsWidth):
53704         (WebCore::ScrollView::contentsHeight):
53705         (WebCore::ScrollView::contentsToWindow):
53706         (WebCore::ScrollView::windowToContents):
53707         (WebCore::ScrollView::addChild):
53708         * platform/qt/WidgetQt.cpp:
53709         (WebCore::WidgetPrivate::canvas):
53710         (WebCore::WidgetPrivate::parentScroll):
53711         (WebCore::WidgetPrivate::setGeometry):
53712         (WebCore::WidgetPrivate::geometry):
53713         (WebCore::Widget::frameGeometry):
53714         (WebCore::Widget::setQWidget):
53715         (WebCore::Widget::setFrameGeometry):
53717 2007-02-21  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53719         Reviewed by Adam Roben.
53721         Improve notImplemented() macro for gdk. Rename to notImplementedGdk() to
53722         give it a unique name (so that it doesn't clash with notImplemented()
53723         for other platforms).
53724         Make it print a given warning only once, so that frequently called
53725         functions don't clutter the output.
53726         Don't print the warning if DISABLE_NI_WARNING env variable is set.
53728         * loader/gdk/FrameLoaderClientGdk.cpp:
53729         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
53730         (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
53731         (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
53732         (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
53733         (WebCore::FrameLoaderClientGdk::createPlugin):
53734         (WebCore::FrameLoaderClientGdk::createFrame):
53735         (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
53736         (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
53737         (WebCore::FrameLoaderClientGdk::objectContentType):
53738         (WebCore::FrameLoaderClientGdk::overrideMediaType):
53739         (WebCore::FrameLoaderClientGdk::windowObjectCleared):
53740         (WebCore::FrameLoaderClientGdk::hasWebView):
53741         (WebCore::FrameLoaderClientGdk::hasFrameView):
53742         (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
53743         (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
53744         (WebCore::FrameLoaderClientGdk::restoreViewState):
53745         (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
53746         (WebCore::FrameLoaderClientGdk::makeDocumentView):
53747         (WebCore::FrameLoaderClientGdk::makeRepresentation):
53748         (WebCore::FrameLoaderClientGdk::forceLayout):
53749         (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
53750         (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
53751         (WebCore::FrameLoaderClientGdk::detachedFromParent1):
53752         (WebCore::FrameLoaderClientGdk::detachedFromParent2):
53753         (WebCore::FrameLoaderClientGdk::detachedFromParent3):
53754         (WebCore::FrameLoaderClientGdk::detachedFromParent4):
53755         (WebCore::FrameLoaderClientGdk::loadedFromPageCache):
53756         (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
53757         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
53758         (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
53759         (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
53760         (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
53761         (WebCore::FrameLoaderClientGdk::dispatchWillClose):
53762         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
53763         (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
53764         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
53765         (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
53766         (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
53767         (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
53768         (WebCore::FrameLoaderClientGdk::dispatchShow):
53769         (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
53770         (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
53771         (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
53772         (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
53773         (WebCore::FrameLoaderClientGdk::willChangeTitle):
53774         (WebCore::FrameLoaderClientGdk::finishedLoading):
53775         (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
53776         (WebCore::FrameLoaderClientGdk::setDefersLoading):
53777         (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
53778         (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
53779         (WebCore::FrameLoaderClientGdk::clearArchivedResources):
53780         (WebCore::FrameLoaderClientGdk::canHandleRequest):
53781         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
53782         (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
53783         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
53784         (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
53785         (WebCore::FrameLoaderClientGdk::didFinishLoad):
53786         (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
53787         (WebCore::FrameLoaderClientGdk::setTitle):
53788         (WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
53789         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
53790         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
53791         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
53792         (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
53793         (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
53794         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
53795         (WebCore::FrameLoaderClientGdk::download):
53796         (WebCore::FrameLoaderClientGdk::cancelledError):
53797         (WebCore::FrameLoaderClientGdk::cannotShowURLError):
53798         (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
53799         (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
53800         (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
53801         (WebCore::FrameLoaderClientGdk::shouldFallBack):
53802         (WebCore::FrameLoaderClientGdk::willUseArchive):
53803         (WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
53804         (WebCore::FrameLoaderClientGdk::canCachePage):
53805         (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
53806         (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
53807         (WebCore::FrameLoaderClientGdk::setMainDocumentError):
53808         (WebCore::FrameLoaderClientGdk::startDownload):
53809         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
53810         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
53811         (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
53812         * page/gdk/EventHandlerGdk.cpp:
53813         (WebCore::EventHandler::passMouseDownEventToWidget):
53814         (WebCore::EventHandler::eventActivatedView):
53815         (WebCore::EventHandler::passSubframeEventToSubframe):
53816         (WebCore::EventHandler::passWheelEventToWidget):
53817         (WebCore::EventHandler::createDraggingClipboard):
53818         * platform/gdk/EditorClientGdk.cpp:
53819         (WebCore::EditorClientGdk::shouldDeleteRange):
53820         (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
53821         (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
53822         (WebCore::EditorClientGdk::spellCheckerDocumentTag):
53823         (WebCore::EditorClientGdk::shouldBeginEditing):
53824         (WebCore::EditorClientGdk::shouldEndEditing):
53825         (WebCore::EditorClientGdk::shouldInsertText):
53826         (WebCore::EditorClientGdk::shouldChangeSelectedRange):
53827         (WebCore::EditorClientGdk::shouldApplyStyle):
53828         (WebCore::EditorClientGdk::didBeginEditing):
53829         (WebCore::EditorClientGdk::respondToChangedContents):
53830         (WebCore::EditorClientGdk::didEndEditing):
53831         (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
53832         (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
53833         (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
53834         (WebCore::EditorClientGdk::isEditable):
53835         (WebCore::EditorClientGdk::registerCommandForUndo):
53836         (WebCore::EditorClientGdk::registerCommandForRedo):
53837         (WebCore::EditorClientGdk::clearUndoRedoOperations):
53838         (WebCore::EditorClientGdk::canUndo):
53839         (WebCore::EditorClientGdk::canRedo):
53840         (WebCore::EditorClientGdk::undo):
53841         (WebCore::EditorClientGdk::redo):
53842         (WebCore::EditorClientGdk::shouldInsertNode):
53843         (WebCore::EditorClientGdk::pageDestroyed):
53844         (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
53845         (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
53846         (WebCore::EditorClientGdk::textFieldDidBeginEditing):
53847         (WebCore::EditorClientGdk::textFieldDidEndEditing):
53848         (WebCore::EditorClientGdk::textDidChangeInTextField):
53849         (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
53850         (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
53851         (WebCore::EditorClientGdk::textDidChangeInTextArea):
53852         * platform/gdk/RenderThemeGdk.cpp:
53853         (WebCore::RenderThemeGdk::setCheckboxSize):
53854         (WebCore::RenderThemeGdk::setRadioSize):
53855         (WebCore::RenderThemeGdk::adjustTextFieldStyle):
53856         * platform/gdk/TemporaryLinkStubs.cpp:
53857         (FrameView::updateBorder):
53858         (Widget::setEnabled):
53859         (Widget::isEnabled):
53860         (Widget::focusPolicy):
53861         (Widget::enableFlushDrawing):
53862         (Widget::disableFlushDrawing):
53863         (Widget::lockDrawingFocus):
53864         (Widget::unlockDrawingFocus):
53865         (Widget::removeFromParent):
53866         (Widget::paint):
53867         (Widget::setIsSelected):
53868         (Widget::invalidate):
53869         (Widget::invalidateRect):
53870         (PlatformMouseEvent::PlatformMouseEvent):
53871         (WebCore::findNextSentenceFromIndex):
53872         (WebCore::findSentenceBoundary):
53873         (WebCore::findNextWordFromIndex):
53874         (ChromeClientGdk::chromeDestroyed):
53875         (ChromeClientGdk::windowRect):
53876         (ChromeClientGdk::setWindowRect):
53877         (ChromeClientGdk::pageRect):
53878         (ChromeClientGdk::scaleFactor):
53879         (ChromeClientGdk::focus):
53880         (ChromeClientGdk::unfocus):
53881         (ChromeClientGdk::createWindow):
53882         (ChromeClientGdk::createModalDialog):
53883         (ChromeClientGdk::show):
53884         (ChromeClientGdk::canRunModal):
53885         (ChromeClientGdk::runModal):
53886         (ChromeClientGdk::setToolbarsVisible):
53887         (ChromeClientGdk::toolbarsVisible):
53888         (ChromeClientGdk::setStatusbarVisible):
53889         (ChromeClientGdk::statusbarVisible):
53890         (ChromeClientGdk::setScrollbarsVisible):
53891         (ChromeClientGdk::scrollbarsVisible):
53892         (ChromeClientGdk::setMenubarVisible):
53893         (ChromeClientGdk::menubarVisible):
53894         (ChromeClientGdk::setResizable):
53895         (ChromeClientGdk::closeWindowSoon):
53896         (ChromeClientGdk::canTakeFocus):
53897         (ChromeClientGdk::takeFocus):
53898         (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
53899         (ChromeClientGdk::addMessageToConsole):
53900         (ChromeClientGdk::runBeforeUnloadConfirmPanel):
53901         (ChromeClientGdk::runJavaScriptAlert):
53902         (ChromeClientGdk::runJavaScriptConfirm):
53903         (ChromeClientGdk::runJavaScriptPrompt):
53904         (ChromeClientGdk::setStatusbarText):
53905         (ChromeClientGdk::shouldInterruptJavaScript):
53906         (ChromeClientGdk::tabsToLinks):
53907         (ChromeClientGdk::windowResizerRect):
53908         (ChromeClientGdk::addToDirtyRegion):
53909         (ChromeClientGdk::scrollBackingStore):
53910         (ChromeClientGdk::updateBackingStore):
53911         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
53912         (PlugInInfoStore::pluginCount):
53913         (WebCore::PlugInInfoStore::supportsMIMEType):
53914         (WebCore::refreshPlugins):
53915         (SearchPopupMenu::saveRecentSearches):
53916         (SearchPopupMenu::loadRecentSearches):
53917         (SearchPopupMenu::SearchPopupMenu):
53918         (PlatformScrollbar::PlatformScrollbar):
53919         (PlatformScrollbar::~PlatformScrollbar):
53920         (PlatformScrollbar::setEnabled):
53921         (PlatformScrollbar::paint):
53922         (PlatformScrollbar::updateThumbPosition):
53923         (PlatformScrollbar::updateThumbProportion):
53924         (PlatformScrollbar::setRect):
53925         (FileChooser::FileChooser):
53926         (FileChooser::~FileChooser):
53927         (FileChooser::openFileChooser):
53928         (FileChooser::basenameForWidth):
53929         (ResourceHandle::willLoadFromCache):
53930         (ResourceHandle::loadsBlocked):
53931         (ResourceHandle::loadResourceSynchronously):
53932         (Icon::Icon):
53933         (Icon::~Icon):
53934         (Icon::newIconForFile):
53935         (Icon::paint):
53936         (Font::drawComplexText):
53937         (Font::floatWidthForComplexText):
53938         (Font::offsetForPositionForComplexText):
53939         (PageCache::close):
53940         (Editor::ignoreSpelling):
53941         (Editor::learnSpelling):
53942         (Editor::isSelectionUngrammatical):
53943         (Editor::isSelectionMisspelled):
53944         (Editor::guessesForMisspelledSelection):
53945         (Editor::guessesForUngrammaticalSelection):
53946         (Editor::markMisspellingsAfterTypingToPosition):
53947         (Editor::newGeneralClipboard):
53948         (Pasteboard::generalPasteboard):
53949         (Pasteboard::writeSelection):
53950         (Pasteboard::writeURL):
53951         (Pasteboard::writeImage):
53952         (Pasteboard::clear):
53953         (Pasteboard::canSmartReplace):
53954         (Pasteboard::documentFragment):
53955         (Pasteboard::plainText):
53956         (Pasteboard::Pasteboard):
53957         (Pasteboard::~Pasteboard):
53958         (ContextMenu::ContextMenu):
53959         (ContextMenu::~ContextMenu):
53960         (ContextMenu::appendItem):
53961         (ContextMenuItem::ContextMenuItem):
53962         (ContextMenuItem::~ContextMenuItem):
53963         (ContextMenuItem::releasePlatformDescription):
53964         (ContextMenuItem::type):
53965         (ContextMenuItem::setType):
53966         (ContextMenuItem::action):
53967         (ContextMenuItem::setAction):
53968         (ContextMenuItem::title):
53969         (ContextMenuItem::setTitle):
53970         (ContextMenuItem::platformSubMenu):
53971         (ContextMenuItem::setSubMenu):
53972         (ContextMenuItem::setChecked):
53973         (ContextMenuItem::setEnabled):
53974         (WebCore::supportedKeySizes):
53975         (WebCore::systemBeep):
53976         (WebCore::userIdleTime):
53978 2007-02-21  Antti Koivisto  <antti@apple.com>
53980         Reviewed by Hyatt.
53982         - fix http://bugs.webkit.org/show_bug.cgi?id=12820
53983         REGRESSION (r19706): Caret not painted after popup, failing editing/pasteboard/4641033
53985         Yet another attempt to figure out exactly who should paint the caret.
53987         * editing/SelectionController.cpp:
53988         (WebCore::SelectionController::isInsideNode):
53989         * editing/SelectionController.h:
53990         * rendering/RenderBlock.cpp:
53991         (WebCore::RenderBlock::paintCaret):
53993 2007-02-21  Mitz Pettel  <mitz@webkit.org>
53995         Reviewed by Hyatt.
53997         - fix http://bugs.webkit.org/show_bug.cgi?id=12818
53998           REGRESSION (r19148): shacknews.com does not render completely
54000         Test: fast/dynamic/staticY-marking-parents-regression.html
54002         Changed calls to setChildNeedsLayout(true) during layout to
54003         setChildNeedsLayout(true, false). Prior to r19148, the default behavior
54004         of marking containers did not matter because the caller was the container
54005         and was already marked, but r19148 added marking of the parent of
54006         objects with static Y, which can be different from the caller and not
54007         necessarily marked already.
54009         * rendering/RenderBlock.cpp:
54010         (WebCore::RenderBlock::collapseMargins):
54011         (WebCore::RenderBlock::clearFloatsIfNeeded):
54012         (WebCore::RenderBlock::layoutBlockChildren):
54013         * rendering/RenderBox.cpp:
54014         (WebCore::RenderBox::setStaticY):
54015         * rendering/RenderFlexibleBox.cpp:
54016         (WebCore::RenderFlexibleBox::layoutVerticalBox):
54018 2007-02-21  Brady Eidson  <beidson@apple.com>
54020         Reviewed by Dave Harrison
54022         <rdar://problem/5014313> - Crash in FrameLoader::restoreScrollPositionAndViewState() 
54023         after regaining network connection
54025         * loader/FrameLoader.cpp:
54026         (WebCore::FrameLoader::restoreScrollPositionAndViewState):  Leave an assertion for debug
54027         build exploration, but gracefully handle the release build case
54029 2007-02-21  Timothy Hatcher  <timothy@apple.com>
54031         Rubber-stamped by Darin.
54033         * bindings/objc/PublicDOMInterfaces.h: Add missing classes that are really public.
54034         Also adds the deprecated selector for getComputedStyle: on DOMDocument.
54036 2007-02-21  Justin Garcia  <justin.garcia@apple.com>
54038         Reviewed by john
54039         
54040         <rdar://problem/5012665>
54041         Removing indent from list moves the caret to the line below
54043         Selection preservation during indent, outdent and list 
54044         operations uses rangeFromLocationAndLength.  Ranges returned 
54045         by rangeFromLocationAndLength were incorrect for locations 
54046         just before the line breaks that are emitted after blocks.  
54047         This is because TextIterator emitted bad ranges for these line 
54048         breaks (ranges that started and ended *after* the block).  
54049         The fix corrects the start but not the end.  This is acceptible 
54050         because there is code in rangeFromLocationAndLength that corrects 
54051         the ends of runs using the start of the run and VisiblePosition 
54052         creation.
54053         
54054         * editing/TextIterator.cpp:
54055         (WebCore::TextIterator::exitNode): Emit a position *inside* 
54056         the block, after its contents.
54058 2007-02-21  Adele Peterson  <adele@apple.com>
54060         Reviewed by Darin.
54062         Fix for <rdar://problem/4999030> Indexing into select element to get to items in the options collection is broken
54064         Test: fast/forms/select-index-setter.html
54066         Added indexSetter for HTMLSelectElement.
54068         * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElementCustom.h
54070         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::indexSetter):
54071           Moved code to selectIndexSetter so it can be shared between these classes.
54072         * bindings/js/JSHTMLSelectElementCustom.cpp:
54073         (WebCore::selectIndexSetter): Added.  Moved from JSHTMLOptionsCollection::indexSetter.
54074         (WebCore::JSHTMLSelectElement::indexSetter): Calls selectIndexSetter.
54075         * bindings/js/JSHTMLSelectElementCustom.h: Added.
54076         * html/HTMLSelectElement.idl: Added HasCustomIndexSetter keyword.
54078         * bindings/scripts/CodeGeneratorJS.pm: When generating "put" methods, if the propertyName is a number, call the indexSetter first,
54079           and then call the version of lookupPut that will also try to use the parent's lookup table.  This matches the order of our
54080           old code, before we autogenerated the JSHTMLSelectElement class.
54082 2007-02-21  George Staikos  <staikos@kde.org>
54084         Reviewed by Zack.
54086         Add files to the build.
54088         * WebCore.pro:
54090 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
54092         Reviewed by Lars
54094         Implementing popups for the Qt platform.
54096         * WebCore.pro:
54097         * platform/PopupMenu.h:
54098         * platform/Widget.h:
54099         * platform/qt/PopupMenuQt.cpp:
54100         (WebCore::PopupMenu::PopupMenu):
54101         (WebCore::PopupMenu::clear):
54102         (WebCore::PopupMenu::populate):
54103         (WebCore::PopupMenu::show):
54104         (WebCore::PopupMenu::hide):
54105         * platform/qt/QWebPopup.cpp: Added.
54106         (WebCore::QWebPopup::QWebPopup):
54107         (WebCore::QWebPopup::exec):
54108         (WebCore::QWebPopup::hideEvent):
54109         (WebCore::QWebPopup::activeChanged):
54110         * platform/qt/QWebPopup.h: Added.
54111         * platform/qt/WidgetQt.cpp:
54112         (WebCore::Widget::canvas):
54114 2007-02-21  George Staikos  <staikos@kde.org>
54116         Reviewed by Zack.
54118         Remove unneeded hack now.
54120         * platform/qt/RenderThemeQt.cpp:
54121         (WebCore::RenderThemeQt::setCheckboxSize):
54123 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
54125         Reviewed by Lars
54127         Fix rendering of lineedits and remove the spurious
54128         padding on push-buttons.
54130         * platform/qt/RenderThemeQt.cpp:
54131         (WebCore::RenderThemeQt::baselinePosition):
54132         (WebCore::RenderThemeQt::adjustTextFieldStyle):
54133         (WebCore::RenderThemeQt::sizeForFont):
54134         (WebCore::RenderThemeQt::setButtonPadding):
54136 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
54138         Fix compilation.
54140         * platform/qt/PasteboardQt.cpp:
54141         (WebCore::Pasteboard::writeURL):
54142         (WebCore::Pasteboard::writeImage):
54144 2007-02-20  Adam Roben  <aroben@apple.com>
54146         Preemptive build fix.
54148         * platform/mac/FontCacheMac.mm: Remove unused (and non-existent) header.
54150 2007-02-20  Adam Roben  <aroben@apple.com>
54152         Fix the build the right way.
54154         * platform/StringTruncator.cpp:
54155         (WebCore::truncateString): Keep all widths as floats.
54157 2007-02-20  Beth Dakin  <bdakin@apple.com>
54159         Reviewed by Maciej.
54161         Implement writeImage() on Pasteboard so that the context menus can 
54162         call into the editor for the "Copy image" command instead of 
54163         calling across the clients.
54165         * WebCore.exp:
54166         * WebCore.xcodeproj/project.pbxproj:
54167         * editing/Editor.cpp:
54168         (WebCore::Editor::copyImage): Call into the Pasteboard.
54169         * editing/Editor.h:
54170         * loader/mac/LoaderNSURLExtras.h: A new NSURL extra needed inside 
54171         WebCore.
54172         * loader/mac/LoaderNSURLExtras.m: Made this file Objective-C++ 
54173         (from Objective-C) since the call into the MIMETypeRegistry will 
54174         return a Vector.
54175         (urlByRemovingComponent): Cast to build as Obj-C++
54176         (urlWithDataRelativeToURL): Same.
54177         (vectorContainsString): Helper.
54178         (suggestedFilenameWithMIMEType): New function.
54179         * page/ContextMenuClient.h: Remove copyImageToClipboard()
54180         * page/ContextMenuController.cpp:
54181         (WebCore::ContextMenuController::contextMenuItemSelected): Call 
54182         into the editor instead of the client.
54183         * page/mac/WebCoreViewFactory.h: New localized String.
54184         * platform/LocalizedStrings.h: Same.
54185         * platform/MimeTypeRegistry.h: Expose two additional functions for 
54186         MIMEType information from WebCore System Interface.
54187         * platform/Pasteboard.h:
54188         * platform/SharedBuffer.h: Make platformData() and platformDataSize
54189         () public since they are needed to write the image to the 
54190         pasteboard.
54191         * platform/mac/LocalizedStringsMac.mm: New localized string.
54192         (WebCore::copyImageUnknownFileLabel):
54193         * platform/mac/MimeTypeRegistryMac.mm:
54194         (WebCore::MimeTypeRegistry::getExtensionsForMIMEType):
54195         (WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
54196         * platform/mac/PasteboardMac.mm:
54197         (WebCore::writableTypesForImage):
54198         (WebCore::Pasteboard::writeURL): Write the correct types if the url 
54199         is for an image.
54200         (WebCore::fileWrapperForImage):
54201         (WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
54202         (WebCore::Pasteboard::writeImage):
54203         * platform/mac/WebCoreNSStringExtras.h: Added. Some the the 
54204         NSStringExtras that were in WebKit are now needed by WebCore. To 
54205         avoid having two copies of these functions, I just moved the 
54206         implementations to WebCore. The WebKit functions just call into 
54207         WebCore.
54208         * platform/mac/WebCoreNSStringExtras.mm: Added.
54209         (hasCaseInsensitiveSuffix):
54210         (hasCaseInsensitiveSubstring):
54211         (filenameByFixingIllegalCharacters):
54212         * platform/mac/WebCoreSystemInterface.h: 
54213         wkGetPreferredExtensionForMIMEType and wkGetExtensionsForMIMEType 
54214         are now needed in WebCore as well as WebKit.
54215         * platform/mac/WebCoreSystemInterface.mm:
54217 2007-02-20  Adam Roben  <aroben@apple.com>
54219         Build fix.
54221         * platform/StringTruncator.cpp:
54222         (WebCore::truncateString): Added explicit casts.
54224 2007-02-20  Adam Roben  <aroben@apple.com>
54226         Reviewed by Darin and Anders.
54228         Fix <rdar://problem/4736215> Make WebCoreStringTruncator use WebCore types
54230         * WebCore.exp: Updated symbols.
54231         * WebCore.xcodeproj/project.pbxproj: Updated file names.
54232         * bridge/mac/WebCoreStringTruncator.h: Removed.
54233         * bridge/mac/WebCoreStringTruncator.mm: Removed.
54234         * platform/StringTruncator.cpp: Added. Moved from bridge/mac/WebCoreStringTruncator.mm.
54235         (WebCore::textBreakAtOrPreceding): Added.
54236         (WebCore::boundedTextBreakFollowing): Added.
54237         (WebCore::centerTruncateToBuffer):
54238         (WebCore::rightTruncateToBuffer):
54239         (WebCore::stringWidth): Now takes a const Font& instead of a Font*.
54240         (WebCore::truncateString):
54241         (WebCore::StringTruncator::centerTruncate):
54242         (WebCore::StringTruncator::rightTruncate):
54243         (WebCore::StringTruncator::width):
54244         * platform/StringTruncator.h: Added.
54245         * platform/TextBreakIterator.h: Added isTextBreak declaration.
54246         * platform/TextBreakIteratorICU.cpp:
54247         (WebCore::isTextBreak): Implemented.
54248         * platform/mac/FileChooserMac.mm:
54249         (WebCore::FileChooser::basenameForWidth): Updated for changes to WebCoreStringTruncator.
54250         * platform/qt/TextBreakIteratorQt.cpp:
54251         (WebCore::isTextBreak): Stubbed out.
54253 2007-02-20  Justin Garcia  <justin.garcia@apple.com>
54255         Reviewed by harrison
54257         <rdar://problem/5006779>
54258         REGRESSION: Paste and Match Style of quoted text onto empty line yields quoted text
54259         
54260         We decided to change the copy/paste behavior in both
54261         the Paste and the Paste and Match Style cases.
54263         * editing/markup.cpp:
54264         (WebCore::createMarkup): Don't add mail blockquote wrappers
54265         unless the user selected one or more paragraphs.
54267 2007-02-20  Timothy Hatcher  <timothy@apple.com>
54269         Reviewed by Mark Rowe.
54271         <rdar://problem/4912899> WebCore project ObjC @property cleanup
54273         * bindings/objc/DOMObject.h: Add the new style @property
54274         * bindings/objc/PublicDOMInterfaces.h: Update to the new style @property
54275         * bindings/scripts/CodeGeneratorObjC.pm: Export both new and old style @properties
54277 2007-02-20  Timothy Hatcher  <timothy@apple.com>
54279         Reviewed by Sam Weinig.
54281         <rdar://problem/5007248> need to export symbols for DOM exception constants
54283         * WebCore.exp: Adds DOMEventException, DOMException, DOMRangeException, DOMXPathException
54285 2007-02-20  Timothy Hatcher  <timothy@apple.com>
54287         Reviewed by Darin.
54289         <rdar://problem/4900579> WebKit -finalize methods are not thread-safe; design change needed
54291         Call WebCoreObjCFinalizeOnMainThread from the initialize method of all the classes
54292         that have a finalizer that needs called on the main thread.
54294         * WebCore.exp:
54295         * WebCore.xcodeproj/project.pbxproj:
54296         * bindings/objc/WebScriptObject.mm:
54297         (+[WebScriptObject initialize]):
54298         * bridge/mac/WebCoreScriptDebugger.mm:
54299         (+[WebCoreScriptDebugger initialize]):
54300         * platform/mac/SharedBufferMac.mm:
54301         (+[SharedBufferData initialize]):
54302         * platform/mac/WebCoreObjCExtras.c: Added.
54303         (WebCoreObjCFinalizeOnMainThread):
54304         * platform/mac/WebCoreObjCExtras.h: Added.
54306 2007-02-20  Geoffrey Garen  <ggaren@apple.com>
54308         Not not reviewed by Mitz Pettel.
54310         Fixed http://bugs.webkit.org/show_bug.cgi?id=12827 | <rdar://problem/5006671> 
54311         REGRESSION: -[DOMCSSStyleDeclaration setValue:forKey:] doesn't have an 
54312         immediate effect
54313         
54314         Let's just pretend this never happened.
54315         
54316         I attempted a layout test but I couldn't get the old code to fail because 
54317         there's no obvious way to isolate the ObjC bindings in a test that's 
54318         controlled by JS.
54319         
54320         * bindings/objc/WebScriptObject.mm:
54321         (_didExecute):
54323 2007-02-20  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
54325         Reviewed by Maciej S.
54327         Gdk build fixes for recent refactorings.
54329         * Projects/gdk/webcore-gdk.bkl:
54330         * WebCoreSources.bkl:
54331         * page/gdk/DragControllerGdk.cpp:
54332         (WebCore::DragController::dragOperation):
54333         (WebCore::DragController::maxDragImageSize):
54334         * page/gdk/EventHandlerGdk.cpp:
54335         (WebCore::EventHandler::createDraggingClipboard):
54336         * platform/DragImage.h:
54337         * platform/gdk/ChromeClientGdk.h:
54338         * platform/gdk/CursorGdk.cpp:
54339         (WebCore::verticalTextCursor):
54340         (WebCore::cellCursor):
54341         (WebCore::contextMenuCursor):
54342         (WebCore::noDropCursor):
54343         (WebCore::copyCursor):
54344         (WebCore::progressCursor):
54345         (WebCore::aliasCursor):
54346         (WebCore::noneCursor):
54347         (WebCore::notAllowedCursor):
54348         * platform/gdk/EditorClientGdk.cpp:
54349         (WebCore::EditorClientGdk::shouldChangeSelectedRange):
54350         (WebCore::EditorClientGdk::isEditable):
54351         (WebCore::EditorClientGdk::textFieldDidBeginEditing):
54352         (WebCore::EditorClientGdk::textFieldDidEndEditing):
54353         (WebCore::EditorClientGdk::textDidChangeInTextField):
54354         (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
54355         (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
54356         (WebCore::EditorClientGdk::textDidChangeInTextArea):
54357         * platform/gdk/EditorClientGdk.h:
54358         * platform/gdk/FrameGdk.cpp:
54359         (WebCore::Frame::print):
54360         (WebCore::Frame::issueTransposeCommand):
54361         (WebCore::Frame::respondToChangedSelection):
54362         (WebCore::Frame::cleanupPlatformScriptObjects):
54363         (WebCore::Frame::isCharacterSmartReplaceExempt):
54364         (WebCore::Frame::dragImageForSelection):
54365         * platform/gdk/FrameGdk.h:
54366         * platform/gdk/MimeTypeRegistryGdk.cpp: Added.
54367         * platform/gdk/TemporaryLinkStubs.cpp:
54368         (ChromeClientGdk::tabsToLinks):
54369         (ChromeClientGdk::windowResizerRect):
54370         (ChromeClientGdk::addToDirtyRegion):
54371         (ChromeClientGdk::scrollBackingStore):
54372         (ChromeClientGdk::updateBackingStore):
54373         * webcore-base.bkl:
54375 2007-02-20  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
54377         Reviewed by Darin.
54379         Allow over-writting Product, ProductSub, Vendor and VendorSub
54380         js properties via #define WEBCORE_NAVIGATOR_*
54382         * bindings/js/kjs_navigator.cpp:
54383         (KJS::Navigator::getValueProperty):
54385 2007-02-20  Darin Adler  <darin@apple.com>
54387         Reviewed by Anders.
54389         - prepare to fix some "stop loading" bugs by moving state from the
54390           FrameLoader class to the DocumentLoader class
54392         * WebCore.exp: Update since cancelMainResourceLoad is now on the document loader.
54394         * html/HTMLDocument.h:
54395         * html/HTMLDocument.cpp:
54396         (WebCore::HTMLDocument::HTMLDocument): Removed unused bodyElement and htmlElement
54397         data members.
54398         (WebCore::HTMLDocument::lastModified): Call getResponseModifiedHeader directly on
54399         the document loader.
54401         * loader/DocumentLoader.h: Moved m_mainResourceLoader, m_subresourceLoaders, and
54402         m_plugInStreamLoaders here.
54403         * loader/DocumentLoader.cpp:
54404         (WebCore::cancelAll): Moved here from FrameLoader.
54405         (WebCore::setAllDefersLoading): Ditto.
54406         (WebCore::DocumentLoader::mainResourceData): Moved the body of FrameLoader's
54407         mainResourceData function here.
54408         (WebCore::DocumentLoader::stopLoading): Replaced calls to hasMainResourceLoader
54409         and cancelMainResourceLoad with code that works directly on m_mainResourceLoader.
54410         Call the stop functions moved from FrameLoader here on ourselves.
54411         (WebCore::DocumentLoader::setupForReplaceByMIMEType): Ditto.
54412         (WebCore::DocumentLoader::setPrimaryLoadComplete): Moved the code to store the
54413         main resource data here; it doesn't require separate functions.
54414         (WebCore::DocumentLoader::isLoadingInAPISense): Removed call to isLoadingSubresources
54415         and instead just check if the m_subresourceLoaders set is empty.
54416         (WebCore::DocumentLoader::setDefersLoading): Moved code here from FrameLoader.
54417         (WebCore::DocumentLoader::stopLoadingPlugIns): Ditto.
54418         (WebCore::DocumentLoader::stopLoadingSubresources): Ditto.
54419         (WebCore::DocumentLoader::addSubresourceLoader): Ditto.
54420         (WebCore::DocumentLoader::removeSubresourceLoader): Ditto.
54421         (WebCore::DocumentLoader::addPlugInStreamLoader): Ditto.
54422         (WebCore::DocumentLoader::removePlugInStreamLoader): Ditto.
54423         (WebCore::DocumentLoader::isLoadingSubresources): Ditto.
54424         (WebCore::DocumentLoader::isLoadingPlugIns): Ditto.
54425         (WebCore::DocumentLoader::startLoadingMainResource): Ditto.
54426         (WebCore::DocumentLoader::cancelMainResourceLoad): Ditto.
54428         * loader/FrameLoader.h: Removed stopLoadingPlugIns, stopLoadingSubresources,
54429         cancelMainResourceLoad, hasMainResourceLoader, isLoadingSubresources,
54430         mainResourceData, releaseMainResourceLoader, lastModified, startLoadingMainResource,
54431         isLoadingPlugIns, m_mainResourceLoader, m_subresourceLoaders, m_plugInStreamLoaders,
54432         m_responseRefreshHeader, and m_responseModifiedHeader.
54433         * loader/FrameLoader.cpp:
54434         (WebCore::FrameLoader::setDefersLoading): Call setDefersLoading on all the document
54435         loaders.
54436         (WebCore::FrameLoader::stopLoading): Get rid of code to set m_responseRefreshHeader
54437         and m_responseModifiedHeader.
54438         (WebCore::FrameLoader::receivedFirstData): Call httpHeaderField on the response
54439         here to get the Refresh, instead of storing it in a data member.
54440         (WebCore::FrameLoader::addPlugInStreamLoader): Change to just call this on the
54441         document loader.
54442         (WebCore::FrameLoader::removePlugInStreamLoader): Ditto.
54443         (WebCore::FrameLoader::isLoading): Change to call isLoadingSubresources and
54444         isLoadingPlugIns on the document loader.
54445         (WebCore::FrameLoader::addSubresourceLoader): Change to just call this on the
54446         document loader.
54447         (WebCore::FrameLoader::removeSubresourceLoader): Ditto.
54448         (WebCore::FrameLoader::commitProvisionalLoad): Call stopLoadingSubresources and
54449         stopLoadingPlugIns on the document loader. Removed code to set
54450         m_responseModifiedHeader.
54451         (WebCore::FrameLoader::startLoading): Call isLoadingMainResource and
54452         startLoadingMainResource on the document loader.
54454         * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finish): Call
54455         mainResourceData() on the document loader instead of the frame loader.
54457         - other changes
54459         * loader/DocLoader.cpp:
54460         (WebCore::DocLoader::checkCacheObjectStatus): Fixed indentation.
54462 2007-02-20  Zack Rusin  <zrusin@trolltech.com>
54464         Reviewed by Lars
54466         Fix focus handling and make the forms
54467         work as expected.
54469         * platform/qt/ScrollViewQt.cpp:
54470         (WebCore::ScrollView::setScrollArea):
54471         * platform/qt/WidgetQt.cpp:
54472         (WebCore::WidgetPrivate::WidgetPrivate):
54473         (WebCore::WidgetPrivate::canvas):
54474         (WebCore::Widget::hasFocus):
54475         (WebCore::Widget::setFocus):
54476         (WebCore::Widget::clearFocus):
54477         (WebCore::Widget::setFont):
54478         (WebCore::Widget::setQWidget):
54479         (WebCore::Widget::focusPolicy):
54481 2007-02-20  Mitz Pettel  <mitz@webkit.org>
54483         Reviewed by Darin and then Sam.
54485         - fix http://bugs.webkit.org/show_bug.cgi?id=10735
54486           Clicking in SVG results causes WebKit to consume 100% CPU for several minutes
54488         No test since there is no change in functionality.
54490         * CMakeLists.txt:
54491         * WebCore.pro:
54492         * WebCore.xcodeproj/project.pbxproj: Added PositionIterator.{cpp,h}.
54493         * WebCoreSources.bkl:
54494         * dom/Position.cpp:
54495         (WebCore::Position::Position): Added converting constructor from
54496         PositionIterator.
54497         (WebCore::Position::previous): Changed assert() to ASSERT().
54498         (WebCore::Position::next): Ditto.
54499         (WebCore::isStreamer): Changed the argument to a PositionIterator.
54500         (WebCore::Position::upstream): Changed to use PositionIterator.
54501         (WebCore::Position::downstream): Ditto.
54502         (WebCore::Position::inRenderedText): Made public.
54503         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight): Changed
54504         into a static member function.
54505         (WebCore::Position::nodeIsUserSelectNone): Ditto.
54506         * dom/Position.h:
54507         * dom/PositionIterator.cpp: Added. A Position iterator with constant-time
54508         increment, decrement, and several predicates on the Position it is at.
54509         Conversion to/from Position is O(n) in the offset.
54510         (WebCore::PositionIterator::increment):
54511         (WebCore::PositionIterator::decrement):
54512         (WebCore::PositionIterator::atStart):
54513         (WebCore::PositionIterator::atEnd):
54514         (WebCore::PositionIterator::atStartOfNode):
54515         (WebCore::PositionIterator::atEndOfNode):
54516         (WebCore::PositionIterator::isCandidate):
54517         * dom/PositionIterator.h: Added.
54518         (WebCore::PositionIterator::PositionIterator):
54519         (WebCore::PositionIterator::node):
54520         (WebCore::PositionIterator::offsetInLeafNode):
54521         * editing/htmlediting.cpp:
54522         (WebCore::nextCandidate): Changed to use PositionIterator.
54523         (WebCore::previousCandidate): Changed to use PositionIterator.
54525 2007-02-20  Rob Buis  <buis@kde.org>
54527         Reviewed by Darin.
54529         http://bugs.webkit.org/show_bug.cgi?id=12439
54530         SVG parser complains about points attribute in polygon and polyline element
54532         Return true when the parsed points specification is valid.
54534         * ksvg2/svg/SVGParserUtilities.cpp:
54535         (WebCore::parseNumber):
54536         (WebCore::SVGPolyParser::parsePoints):
54537         * ksvg2/svg/SVGPolyElement.cpp:
54538         (WebCore::SVGPolyElement::parseMappedAttribute):
54540 2007-02-20  Zack Rusin  <zrusin@trolltech.com>
54542         Reviewed by Lars
54544         Make editing of forms work plus make sure that non-void methods
54545         always return something.
54547         * WebCore.pro:
54548         * loader/qt/DocumentLoaderQt.cpp:
54549         (WebCore::DocumentLoader::getResponseModifiedHeader):
54550         * platform/qt/ClipboardQt.cpp:
54551         (WebCore::ClipboardQt::setData):
54553 2007-02-20  Zack Rusin  <zrusin@trolltech.com>
54555         Reviewed by Lars
54557         Refactor and fix the implementation of theming of
54558         form elements on the Qt platform.
54560         * platform/qt/RenderThemeQt.cpp:
54561         (WebCore::theme):
54562         (WebCore::RenderThemeQt::RenderThemeQt):
54563         (WebCore::RenderThemeQt::supportsHover):
54564         (WebCore::RenderThemeQt::supportsFocusRing):
54565         (WebCore::RenderThemeQt::baselinePosition):
54566         (WebCore::RenderThemeQt::controlSupportsTints):
54567         (WebCore::RenderThemeQt::supportsControlTints):
54568         (WebCore::RenderThemeQt::adjustRepaintRect):
54569         (WebCore::RenderThemeQt::paintResizeControl):
54570         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
54571         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
54572         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
54573         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
54574         (WebCore::RenderThemeQt::systemFont):
54575         (WebCore::RenderThemeQt::minimumMenuListSize):
54576         (WebCore::RenderThemeQt::adjustSliderThumbSize):
54577         (WebCore::RenderThemeQt::paintCheckbox):
54578         (WebCore::RenderThemeQt::paintRadio):
54579         (WebCore::RenderThemeQt::setRadioSize):
54580         (WebCore::RenderThemeQt::adjustButtonStyle):
54581         (WebCore::RenderThemeQt::setButtonSize):
54582         (WebCore::RenderThemeQt::adjustTextFieldStyle):
54583         (WebCore::RenderThemeQt::adjustMenuListStyle):
54584         (WebCore::RenderThemeQt::paintMenuList):
54585         (WebCore::RenderThemeQt::paintMenuListButton):
54586         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
54587         (WebCore::RenderThemeQt::paintSliderTrack):
54588         (WebCore::RenderThemeQt::paintSliderThumb):
54589         (WebCore::RenderThemeQt::paintSearchField):
54590         (WebCore::RenderThemeQt::adjustSearchFieldStyle):
54591         (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
54592         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
54593         (WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
54594         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
54595         (WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
54596         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
54597         (WebCore::RenderThemeQt::supportsFocus):
54598         (WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
54599         (WebCore::RenderThemeQt::applyTheme):
54600         (WebCore::RenderThemeQt::setSizeFromFont):
54601         (WebCore::RenderThemeQt::sizeForFont):
54602         (WebCore::RenderThemeQt::setButtonPadding):
54603         (WebCore::RenderThemeQt::setPopupPadding):
54604         (WebCore::RenderThemeQt::setPrimitiveSize):
54605         * platform/qt/RenderThemeQt.h: Added.
54607 2007-02-19  Lars Naesbye Christensen <lars@naesbye.dk>
54609         Reviewed by Maciej.
54611         http://bugs.webkit.org/show_bug.cgi?id=12815
54612         Two image files not included in project file
54614         * WebCore.xcodeproj/project.pbxproj: Added crossHairCursor.png and
54615         notAllowedCursor.png.
54617 2007-02-19  Geoffrey Garen  <ggaren@apple.com>
54619         Reviewed by Adam Roben.
54621         Fixed some leaks in RenderThemeMac.
54622         
54623         No test case because 'leaks' can't detect these leaks inside DRT, even if
54624         DRT forces the WebView to paint. ('leaks' can detect these leaks inside
54625         Safari. Weird.)
54626         
54627         * rendering/RenderThemeMac.h:
54628             - Renamed data members to m_*, to match our style guidelines.
54629             - Renamed *Is* to is**, to match our style guidelines.
54630             - Removed a few unnecessary data members.
54631             - Made cached values like m_checkbox mutable, since they can change
54632             inside functions that don't change the logical state of a RenderTheme
54633             object. (The alternative was to make some const functions non-const.)
54635         (WebCore::RenderThemeMac::paintMenuList): Took CFType pointers that just 
54636         used to leak and placed them in RetainPtrs.
54637         (WebCore::RenderThemeMac::paintMenuListButtonGradients): ditto
54639         Factored inline implementations of lazy initialization into these accessor
54640         functions, for better encapsulation:
54641         
54642         (WebCore::RenderThemeMac::checkbox):
54643         (WebCore::RenderThemeMac::radio):
54644         (WebCore::RenderThemeMac::button):
54645         (WebCore::RenderThemeMac::popupButton):
54646         (WebCore::RenderThemeMac::search):
54647         (WebCore::RenderThemeMac::sliderThumbHorizontal): The inline version of
54648         this initialization used to confuse the retained data member with a local
54649         stack value, causing both a leak and a failure to initialize. Fixed now.
54650         (WebCore::RenderThemeMac::sliderThumbVertical): ditto
54651         (WebCore::RenderThemeMac::resizeCornerImage):
54653 2007-02-19  Mitz Pettel  <mitz@webkit.org>
54655         Reviewed by Hyatt.
54657         - fix http://bugs.webkit.org/show_bug.cgi?id=12817
54658           REGRESSION (r18634): Table border-collapse problems with right margin
54660         Test: fast/repaint/table-outer-border.html
54662         * rendering/RenderTable.cpp:
54663         (WebCore::RenderTable::layout): Reordered to initialize horizontal overflow
54664         after table sections have computed their outer horizontal borders.
54666 2007-02-19  John Sullivan  <sullivan@apple.com>
54668         Reviewed by Darin
54669         
54670         - fixed <rdar://problem/4613701> REGRESSION: A line break in the source HTML of a link becomes visible after drag & drop
54672         * page/DragController.cpp:
54673         (WebCore::DragController::startDrag):
54674         Call simplifyWhiteSpace() on the proposed link title to match what's displayed on the web page, instead of using the
54675         raw source HTML text.
54677 2007-02-19  David Hyatt  <hyatt@apple.com>
54679         Fix for Radar 4981605, regression where button grows randomly when a select is
54680         opened.  With the new form controls, the WinIE quirk for using line width
54681         ended up being used for them more.
54683         This patch removes the quirk after verifying that Firefox doesn't implement
54684         the quirk at all.  usesLineWidth is being renamed to shrinksToAvoidFloats to
54685         make it clear that the new method only applies to block objects that avoid floats
54686         and that have auto width.
54688         Also fixed a regression where whitespace after a floating <select> at the start
54689         of a block got incorrectly rendered.  Make sure skipWhitespace always skips
54690         through floating/positioned elements regardless of the whitespace setting (this
54691         way the white-space:pre value on floating <select>s doesn't cause trouble).
54693         Reviewed by darin
54695         fast/block/float/float-avoidance.html
54697         * rendering/RenderBlock.cpp:
54698         (WebCore::RenderBlock::collapseMargins):
54699         (WebCore::RenderBlock::clearFloatsIfNeeded):
54700         (WebCore::RenderBlock::layoutBlockChildren):
54701         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
54702         * rendering/RenderBox.cpp:
54703         (WebCore::RenderBox::containingBlockWidth):
54704         * rendering/RenderObject.cpp:
54705         (WebCore::RenderObject::shrinkToAvoidFloats):
54706         * rendering/RenderObject.h:
54707         * rendering/bidi.cpp:
54708         (WebCore::RenderBlock::skipWhitespace):
54710 2007-02-19  Zalan Bujtas  <zbujtas@gmail.com>
54712         Reviewed by Darin.
54714         Update stylesheet href, when document's baseUrl changes. It needs
54715         update when the stylesheet is constructed before the parser hits the base tag.
54716         http://bugs.webkit.org/show_bug.cgi?id=12214
54718         * css/StyleSheet.h:
54719         (WebCore::StyleSheet::setHref):
54720         * dom/Document.cpp:
54721         (WebCore::Document::setBaseURL):
54722         * dom/Document.h:
54724 2007-02-19  Mitz Pettel  <mitz@webkit.org>
54726         Reviewed by Adam.
54728         - fix http://bugs.webkit.org/show_bug.cgi?id=11518
54729           REGRESSION (r14376): View Source not available after Back navigation from a non-HTML page
54731         The FrameLoader's responseMIMEType was not being updated when a page was
54732         brought back from the page cache.
54733         
54734         Moved the line that updates the MIME type from commitProvisionalLoad() to
54735         transitionToCommitted().
54737         * loader/FrameLoader.cpp:
54738         (WebCore::FrameLoader::commitProvisionalLoad):
54739         (WebCore::FrameLoader::transitionToCommitted):
54741 2007-02-19  Anders Carlsson  <acarlsson@apple.com>
54743         Reviewed by Oliver.
54745         Make DragController::maxDragImageSize a function to get rid of the global initializer.
54746         
54747         * page/DragController.cpp:
54748         (WebCore::DragController::doImageDrag):
54749         * page/DragController.h:
54750         * page/mac/DragControllerMac.mm:
54751         (WebCore::DragController::maxDragImageSize):
54752         * page/qt/DragControllerQt.cpp:
54753         (WebCore::DragController::maxDragImageSize):
54755 2007-02-19  Darin Adler  <darin@apple.com>
54757         Reviewed by Hyatt.
54759         - <rdar://problem/5006414> REGRESSION: Crash occurs at WebCore::Frame::loader()
54760           when loading AFL Ladder widget
54762         * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::openURL):
54763         Add missing null check so this fails without crashing when called on an element
54764         that's no longer in a frame.
54766 2007-02-19  Antti Koivisto  <antti@apple.com>
54768         Reviewed by Mitz.
54770         - fix for http://bugs.webkit.org/show_bug.cgi?id=10990
54771           REGRESSION: Pressing a pop-up's access key doesn't focus it
54772           <rdar://problem/4823138>
54773           
54774         Focus the select element too in accessKeyAction.
54776         * html/HTMLSelectElement.cpp:
54777         (WebCore::HTMLSelectElement::accessKeyAction):
54779 2007-02-18  Antti Koivisto  <antti@apple.com>
54781         Reviewed by Hyatt.
54783         - really fix http://bugs.webkit.org/show_bug.cgi?id=11974
54784         REGRESSION: Caret drawn over input when smaller than font size on initial focus
54785         <rdar://problem/4960258>
54786         
54787         Avoid double painting caret when it is on a block element.
54788         
54789         Layout test for this already went in previous try (it only fails in pixel mode) in r19626.
54791         * rendering/RenderBlock.cpp:
54792         (WebCore::RenderBlock::paintCaret):
54794 2007-02-19  Lars Knoll <lars@trolltech.com>
54796         Added a one line patch from Olliej to create the
54797         clipboard on demand (to stop things from crashing), 
54798         and added lots of notImplemented() warnings all 
54799         over the place.
54801         * platform/qt/ClipboardQt.cpp:
54802         (WebCore::ClipboardQt::ClipboardQt):
54803         (WebCore::ClipboardQt::clearData):
54804         (WebCore::ClipboardQt::clearAllData):
54805         (WebCore::ClipboardQt::getData):
54806         (WebCore::ClipboardQt::setData):
54807         (WebCore::ClipboardQt::types):
54808         (WebCore::ClipboardQt::dragLocation):
54809         (WebCore::ClipboardQt::dragImage):
54810         (WebCore::ClipboardQt::setDragImage):
54811         (WebCore::ClipboardQt::dragImageElement):
54812         (WebCore::ClipboardQt::setDragImageElement):
54813         (WebCore::ClipboardQt::createDragImage):
54814         (WebCore::ClipboardQt::declareAndWriteDragImage):
54815         (WebCore::ClipboardQt::writeURL):
54816         (WebCore::ClipboardQt::writeRange):
54817         (WebCore::ClipboardQt::hasData):
54818         * platform/qt/DragDataQt.cpp:
54819         (WebCore::DragData::canSmartReplace):
54820         (WebCore::DragData::containsColor):
54821         (WebCore::DragData::containsPlainText):
54822         (WebCore::DragData::asPlainText):
54823         (WebCore::DragData::asColor):
54824         (WebCore::DragData::createClipboard):
54825         (WebCore::DragData::containsCompatibleContent):
54826         (WebCore::DragData::containsURL):
54827         (WebCore::DragData::asURL):
54828         (WebCore::DragData::asFragment):
54830 2007-02-19  Lars Knoll <lars@trolltech.com>
54832         Compile again.
54834         * platform/qt/ClipboardQt.cpp:
54835         (WebCore::ClipboardQt::types):
54837 2007-02-17  Lars Knoll <lars@trolltech.com>
54839         Reviewed by Maciej.
54840         
54841         Additional coding by Maciej, additional review by Oliver.
54843         Get rid of the FrameMac and FrameQt classes. Instead
54844         move all methods into Frame directly, and implement
54845         some platform specific methods in foo/FrameFoo.cpp.
54847         Some general cleanup in Frame:
54848         * Move some methods out of Frame, to the place where they 
54849         belong.
54850         * Unify the different ways of creating the JavaScript wrappers
54851         for <object>, <embed> and <applet>
54852         * Some cleanup of the WebCoreFrameBridge
54854         * ForwardingHeaders/bindings/NP_jsobject.h: Added.
54855         * ForwardingHeaders/bindings/npruntime_impl.h: Added.
54856         * ForwardingHeaders/bindings/runtime_root.h: Added.
54857         * WebCore.exp:
54858         * WebCore.xcodeproj/project.pbxproj:
54859         * bindings/js/kjs_binding.cpp:
54860         (KJS::ScriptInterpreter::shouldInterruptScript):
54861         * bindings/objc/DOM.mm:
54862         (-[DOMNode KJS::Bindings::]):
54863         * bindings/objc/DOMInternal.mm:
54864         (-[WebScriptObject _initializeScriptDOMNodeImp]):
54865         * bridge/EditorClient.h:
54866         * bridge/mac/FrameViewMac.mm:
54867         (WebCore::FrameView::updateBorder):
54868         (WebCore::FrameView::updateDashboardRegions):
54869         * bridge/mac/WebCoreAXObject.mm:
54870         (-[WebCoreAXObject rendererForView:]):
54871         * dom/Position.cpp:
54872         (WebCore::Position::next):
54873         * editing/CommandByName.cpp:
54874         (WebCore::Frame::execCopy):
54875         (WebCore::Frame::execCut):
54876         (WebCore::Frame::execPaste):
54877         * editing/Editor.cpp:
54878         (WebCore::Editor::canEdit):
54879         (WebCore::Editor::pasteWithPasteboard):
54880         (WebCore::Editor::paste):
54881         (WebCore::Editor::pasteAsPlainText):
54882         * editing/Editor.h:
54883         * editing/JSEditor.cpp:
54884         * html/HTMLAppletElement.cpp:
54885         (WebCore::HTMLAppletElement::getInstance):
54886         * html/HTMLEmbedElement.cpp:
54887         (WebCore::HTMLEmbedElement::getInstance):
54888         * html/HTMLFormElement.cpp:
54889         (WebCore::HTMLFormElement::formData):
54890         * html/HTMLObjectElement.cpp:
54891         (WebCore::HTMLObjectElement::getInstance):
54892         * loader/FrameLoader.cpp:
54893         (WebCore::FrameLoader::clear):
54894         (WebCore::FrameLoader::detachFromParent):
54895         * loader/mac/ImageDocumentMac.mm:
54896         (WebCore::finishImageLoad):
54897         * loader/qt/DocumentLoaderQt.cpp:
54898         * page/Chrome.cpp:
54899         (WebCore::Chrome::shouldInterruptJavaScript):
54900         * page/Chrome.h:
54901         * page/ChromeClient.h:
54902         * page/Frame.cpp:
54903         (WebCore::Frame::~Frame):
54904         (WebCore::Frame::markedTextRange):
54905         (WebCore::Frame::shouldChangeSelection):
54906         (WebCore::Frame::shouldDeleteSelection):
54907         (WebCore::Frame::isContentEditable):
54908         (WebCore::Frame::setSecureKeyboardEntry):
54909         (WebCore::Frame::isSecureKeyboardEntry):
54910         (WebCore::Frame::bindingRootObject):
54911         (WebCore::Frame::createRootObject):
54912         (WebCore::Frame::windowScriptNPObject):
54913         (WebCore::Frame::cleanupScriptObjects):
54914         (WebCore::FramePrivate::FramePrivate):
54915         * page/Frame.h:
54916         * page/FramePrivate.h:
54917         * page/FrameView.h:
54918         * page/mac/EventHandlerMac.mm:
54919         (WebCore::EventHandler::tabsToLinks):
54920         (WebCore::EventHandler::tabsToAllControls):
54921         (WebCore::EventHandler::focusDocumentView):
54922         (WebCore::EventHandler::passMouseDownEventToWidget):
54923         (WebCore::EventHandler::handleDrag):
54924         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
54925         (WebCore::EventHandler::keyboardUIMode):
54926         * page/mac/FrameMac.h: Removed.
54927         * page/mac/FrameMac.mm:
54928         (WebCore::Frame::setBridge):
54929         (WebCore::Frame::bridge):
54930         (WebCore::Frame::searchForLabelsAboveCell):
54931         (WebCore::Frame::searchForLabelsBeforeElement):
54932         (WebCore::Frame::matchLabelsAgainstElement):
54933         (WebCore::Frame::focusWindow):
54934         (WebCore::Frame::unfocusWindow):
54935         (WebCore::Frame::imageFromRect):
54936         (WebCore::Frame::selectionImage):
54937         (WebCore::Frame::snapshotDragImage):
54938         (WebCore::Frame::fontAttributesForSelectionStart):
54939         (WebCore::Frame::baseWritingDirectionForSelectionStart):
54940         (WebCore::Frame::print):
54941         (WebCore::Frame::issuePasteCommand):
54942         (WebCore::Frame::issueTransposeCommand):
54943         (WebCore::Frame::respondToChangedSelection):
54944         (WebCore::Frame::textFieldDidBeginEditing):
54945         (WebCore::Frame::textFieldDidEndEditing):
54946         (WebCore::Frame::textDidChangeInTextField):
54947         (WebCore::Frame::textDidChangeInTextArea):
54948         (WebCore::Frame::doTextFieldCommandFromEvent):
54949         (WebCore::Frame::textWillBeDeletedInTextField):
54950         (WebCore::Frame::setSecureKeyboardEntry):
54951         (WebCore::Frame::isSecureKeyboardEntry):
54952         (WebCore::Frame::setMarkedTextRange):
54953         (WebCore::Frame::dashboardRegionsDictionary):
54954         (WebCore::Frame::dashboardRegionsChanged):
54955         (WebCore::Frame::willPopupMenu):
54956         (WebCore::Frame::isCharacterSmartReplaceExempt):
54957         (WebCore::Frame::setNeedsReapplyStyles):
54958         (WebCore::Frame::customHighlightLineRect):
54959         (WebCore::Frame::paintCustomHighlight):
54960         (WebCore::Frame::createScriptInstanceForWidget):
54961         (WebCore::Frame::windowScriptObject):
54962         (WebCore::Frame::cleanupPlatformScriptObjects):
54963         * page/mac/WebCoreFrameBridge.h:
54964         * page/mac/WebCoreFrameBridge.mm:
54965         (createRootObject):
54966         (bridge):
54967         (-[WebCoreFrameBridge _frame]):
54968         * page/qt/EventHandlerQt.cpp:
54969         * page/qt/FrameQt.cpp:
54970         (WebCore::Frame::unfocusWindow):
54971         (WebCore::Frame::focusWindow):
54972         (WebCore::Frame::issueTransposeCommand):
54973         (WebCore::Frame::respondToChangedSelection):
54974         (WebCore::Frame::print):
54975         (WebCore::Frame::createScriptInstanceForWidget):
54976         (WebCore::Frame::cleanupPlatformScriptObjects):
54977         (WebCore::Frame::isCharacterSmartReplaceExempt):
54978         * page/qt/FrameQt.h: Removed.
54979         * platform/MimeTypeRegistry.h:
54980         * platform/graphics/svg/SVGImage.cpp:
54981         (WebCore::SVGImage::setData):
54982         * platform/graphics/svg/SVGImageEmptyClients.h:
54983         (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
54984         (WebCore::SVGEmptyEditorClient::shouldChangeSelectedRange):
54985         * platform/mac/ClipboardMac.h:
54986         * platform/mac/ClipboardMac.mm:
54987         (WebCore::ClipboardMac::ClipboardMac):
54988         * platform/mac/FileChooserMac.mm:
54989         (-[OpenPanelController beginSheetWithFrame:]):
54990         * platform/mac/MimeTypeRegistryMac.mm:
54991         (WebCore::MimeTypeRegistry::getMIMETypeForPath):
54992         * platform/mac/PopupMenuMac.mm:
54993         (WebCore::PopupMenu::show):
54994         * platform/mac/WidgetMac.mm:
54995         (WebCore::Widget::setFocus):
54996         (WebCore::Widget::setIsSelected):
54997         * platform/network/mac/ResourceHandleMac.mm:
54998         * platform/network/qt/ResourceHandleManagerQt.cpp:
54999         * platform/network/qt/ResourceHandleQt.cpp:
55000         (WebCore::ResourceHandle::start):
55001         * platform/qt/MimeTypeRegistryQt.cpp:
55002         (WebCore::MimeTypeRegistry::getMIMETypeForPath):
55003         * platform/qt/PopupMenuQt.cpp:
55004         * platform/qt/ScrollViewCanvasQt.cpp:
55005         * platform/qt/ScrollViewQt.cpp:
55006         * platform/win/TemporaryLinkStubs.cpp:
55007         * rendering/InlineTextBox.cpp:
55008         (WebCore::InlineTextBox::paintCustomHighlight):
55009         * rendering/RenderBox.cpp:
55010         (WebCore::RenderBox::paintCustomHighlight):
55011         * rendering/RootInlineBox.cpp:
55012         (WebCore::RootInlineBox::addHighlightOverflow):
55013         (WebCore::RootInlineBox::paintCustomHighlight):
55015 2007-02-18  Oliver Hunt  <oliver@apple.com>
55017         Reviewed by NOBODY (Buildfix).
55019         Oops, missed a 'const'
55021         * platform/qt/ClipboardQt.h:
55023 2007-02-18  Oliver Hunt  <oliver@apple.com>
55025         Reviewed by Adam.
55027         Adding stubbed out implementation of Clipboard for Qt to stop
55028         it crashing whenever someone drags the mouse.
55030         * WebCore.pro:
55031         * page/qt/EventHandlerQt.cpp:
55032         (WebCore::EventHandler::createDraggingClipboard):
55033         * platform/qt/ClipboardQt.cpp: Added.
55034         (WebCore::ClipboardQt::ClipboardQt):
55035         (WebCore::ClipboardQt::clearData):
55036         (WebCore::ClipboardQt::clearAllData):
55037         (WebCore::ClipboardQt::getData):
55038         (WebCore::ClipboardQt::setData):
55039         (WebCore::ClipboardQt::types):
55040         (WebCore::ClipboardQt::dragLocation):
55041         (WebCore::ClipboardQt::dragImage):
55042         (WebCore::ClipboardQt::setDragImage):
55043         (WebCore::ClipboardQt::dragImageElement):
55044         (WebCore::ClipboardQt::setDragImageElement):
55045         (WebCore::ClipboardQt::createDragImage):
55046         (WebCore::ClipboardQt::declareAndWriteDragImage):
55047         (WebCore::ClipboardQt::writeURL):
55048         (WebCore::ClipboardQt::writeRange):
55049         (WebCore::ClipboardQt::hasData):
55050         * platform/qt/ClipboardQt.h: Added.
55051         (WebCore::ClipboardQt::~ClipboardQt):
55052         (WebCore::ClipboardQt::isForDragging):
55054 2007-02-18  Oliver Hunt  <oliver@apple.com>
55056         Reviewed by Adam.
55058         Don't even attempt to do a document based drag if there isn't a document
55059         Fixes rdar://problem/4960109
55061         * page/DragController.cpp:
55062         (WebCore::DragController::tryDocumentDrag):  
55063            Null check m_document
55064         (WebCore::DragController::tryDHTMLDrag):
55065            ASSERT(m_document) -- tryDocumentDrag is the only 
55066            thing that will ever call us, but lets play it safe
55068 2007-02-18  Adam Roben  <aroben@apple.com>
55070         Reviewed by Hyatt.
55072         A little preparation for <rdar://problem/5006872>.
55074         * platform/PopupMenu.h:
55076 2007-02-18  Alexey Proskuryakov  <ap@webkit.org>
55078         Reviewed by Adele.
55080         http://bugs.webkit.org/show_bug.cgi?id=12807
55081         XPath incorrectly converts NaN to boolean
55083         Test: fast/xpath/nan-to-boolean.html
55085         * xml/XPathValue.cpp:
55086         (WebCore::XPath::Value::toBoolean): Convert NaN to false.
55087         * xml/XPathFunctions.cpp:
55088         (WebCore::XPath::FunSubstringAfter::doEvaluate): Fix substring-after to actually work.
55090 2007-02-18  Mitz Pettel  <mitz@webkit.org>
55092         Reviewed by Hyatt.
55094         - fix http://bugs.webkit.org/show_bug.cgi?id=12123
55095           REGRESSION: Incomplete repaint of floats' overflows
55097         Tests: fast/repaint/float-overflow.html
55098                fast/repaint/float-overflow-right.html
55099                fast/repaint/table-cell-vertical-overflow.html
55101         - fix http://bugs.webkit.org/show_bug.cgi?id=10116
55102           REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
55104         Reflected in existing test results.
55106         Unified floats and overflow for the purposes of painting and hit-testing.
55107         Overhanging and overflowing floats are now factored into a block's overflow
55108         unless their painting has been propagated to an ancestor.
55110         Changed table cells to no longer expand to enclose overflow, thus making
55111         it purely "visual overflow", having no effect on layout in WebCore. It
55112         still determines scrolling dimensions.
55114         * rendering/InlineFlowBox.cpp:
55115         (WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
55116         horizontal overflow in the inline box's dimensions.
55117         * rendering/RenderBlock.cpp:
55118         (WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
55119         behavior. Added code to add this block's floats (and their overflow) to its
55120         overflow rect if it is not in a block formatting context. Otherwise, the
55121         inclusion of floats in the overflow is deferred until this block's parent
55122         examines its floats and possibly adopts overhanging floats.
55123         (WebCore::RenderBlock::layoutBlockChildren):
55124         (WebCore::RenderBlock::paint): 
55125         (WebCore::RenderBlock::floatRect): Made non-virtual and changed to return an empty
55126         rect if there are no floats or the floats are clipped, instead of returning the border
55127         box.
55128         (WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
55129         are not to be painted by the parent are added to the child's overflow rect.
55130         (WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
55131         bounds to include the given rect.
55132         (WebCore::RenderBlock::nodeAtPoint):
55133         * rendering/RenderBlock.h:
55134         * rendering/RenderFlexibleBox.cpp:
55135         (WebCore::RenderFlexibleBox::layoutBlock): 
55136         (WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
55137         child, add its floats to its overflow, since painting of floats does not
55138         propagate to flexible boxes. 
55139         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
55140         * rendering/RenderForeignObject.cpp:
55141         (WebCore::RenderForeignObject::layout):
55142         * rendering/RenderHTMLCanvas.cpp:
55143         (WebCore::RenderHTMLCanvas::layout):
55144         * rendering/RenderImage.cpp:
55145         (WebCore::RenderImage::layout):
55146         * rendering/RenderLayer.cpp:
55147         (WebCore::RenderLayer::updateLayerPositions):
55148         (WebCore::RenderLayer::absoluteBoundingBox):
55149         * rendering/RenderLayer.h:
55150         * rendering/RenderObject.cpp:
55151         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
55152         * rendering/RenderObject.h:
55153         (WebCore::RenderObject::expandsToEncloseOverhangingFloats):
55154         * rendering/RenderPath.cpp:
55155         (WebCore::RenderPath::layout):
55156         * rendering/RenderSVGContainer.cpp:
55157         (WebCore::RenderSVGContainer::layout):
55158         * rendering/RenderSVGText.cpp:
55159         (WebCore::RenderSVGText::layout):
55160         * rendering/RenderTable.h: Removed the override of overflowHeight() since now tables can have
55161         vertical overflow.
55162         * rendering/RenderTableCell.cpp:
55163         (WebCore::RenderTableCell::paint): Made sure that overflow is repainted.
55164         * rendering/RenderTableCell.h:
55165         (WebCore::RenderTableCell::expandsToEncloseOverhangingFloats): Removed.
55166         * rendering/RenderTableSection.cpp:
55167         (WebCore::RenderTableSection::RenderTableSection):
55168         (WebCore::RenderTableSection::layoutRows): Factor in vertical overflow from cells.
55169         (WebCore::RenderTableSection::paint):
55170         * rendering/RenderTableSection.h:
55171         (WebCore::RenderTableSection::overflowHeight):
55172         (WebCore::RenderTableSection::overflowTop):
55174 2007-02-18  Oliver Hunt  <oliver@apple.com>
55176         Reviewed by NOBODY (Buildfix).
55178         Build fix for the build fix -- can't call something that isn't a function
55180         * platform/qt/CursorQt.cpp:
55181         (WebCore::notAllowedCursor):
55183 2007-02-18  Oliver Hunt  <oliver@apple.com>
55185         Reviewed by NOBODY (Build fix).
55187         Adding platform/DragImage.cpp and platform/qt/DragImageQt.cpp to the Qt
55188         project files
55190         Stubbed method for WebCore::notAllowedCursor -- not sure what it should return, 
55191         have returned blank cursor, possibly needs to return something else
55193         * WebCore.pro:
55194         * platform/qt/CursorQt.cpp:
55195         (WebCore::notAllowedCursor):
55197 2007-02-18  Oliver Hunt  <oliver@apple.com>
55199         Reviewed by NOBODY (Buildfix).
55201         Sigh, obnoxious occasional auto conversion from float to int
55203         * platform/mac/ClipboardMac.mm:
55204         (WebCore::ClipboardMac::createDragImage):
55206 2007-02-18  Alexey Proskuryakov  <ap@webkit.org>
55208         Reviewed by Hyatt.
55210         http://bugs.webkit.org/show_bug.cgi?id=12799
55211         REGRESSION: Webpage doesn't load correctly (www.cincinnati.com
55212         redirects to the wrong URL)
55214         Test: http/tests/misc/refresh-meta-with-newline.html
55216         * platform/network/HTTPParsers.cpp:
55217         (WebCore::skipWhiteSpace):
55218         (WebCore::parseHTTPRefresh):
55219         * platform/network/HTTPParsers.h:
55220         In HTML, all characters with codes <= 0x20 are whitespace, while in
55221         HTTP, only space and tab are such.
55223         * dom/Document.cpp:
55224         (WebCore::Document::processHttpEquiv):
55225         * loader/FrameLoader.cpp:
55226         (WebCore::FrameLoader::receivedFirstData):
55227         Pass parseHTTPRefresh() a flag telling about the source of data.
55229 2007-02-18  Oliver Hunt  <oliver@apple.com>
55231         Reviewed by NOBODY (Build fix).
55233         Buld fix -- surprisingly RetainPtr doesn't exist on Qt
55235         * platform/DragImage.h:
55237 2007-02-18  Oliver Hunt  <oliver@apple.com>
55239         Reviewed by Adam.
55241         More drag and drop migration, now the entirety of the
55242         drag initiation logic has been rendered platform independent
55243         This has required a number of new interfaces, and a reasonable
55244         amount of logic migration.
55246         As a side effect, this patch also fixes rdar://problem/4945341
55248         There are some basic Qt stubs that should stop the build from failing,
55249         however the absence of ClipboardQt means any attempt to initiate a drag 
55250         may cause a crash.
55252         * WebCore.exp:
55253            Exporting new symbols
55255         * WebCore.xcodeproj/project.pbxproj:
55256            New files
55258         * dom/Clipboard.cpp:
55259         (WebCore::Clipboard::canSaveAsWebArchive):
55260           Migrated from WebKit
55262         * dom/Clipboard.h:
55263           Added more methods to allow Clipboard to be used as a 
55264           platform independent container for drag and drop
55266         * page/DragClient.h:
55267         (WebCore::DragClient::declareAndWriteDragImage):
55268           This is a mac only helper function, so i've made it have an empty implementation,
55269           that way we won't need a PLATFORM(MAC) block in SVGImageEmptyClients
55271         * page/DragController.cpp:
55272         (WebCore::DragController::dragExited):
55273         (WebCore::DragController::performDrag):
55274         (WebCore::DragController::tryDocumentDrag): 
55275         (WebCore::DragController::tryDHTMLDrag):
55276           Using RefPtrs now
55277         (WebCore::getCachedImage):
55278         (WebCore::getImage):
55279           Helper functions                   
55280         (WebCore::dragLocForDHTMLDrag):
55281         (WebCore::dragLocForSelectionDrag):
55282         (WebCore::DragController::startDrag):
55283         (WebCore::DragController::doImageDrag):
55284         (WebCore::DragController::doSystemDrag):
55285           Logic that generates drag images and clipboard content, and
55286           initiates the actual system drag operation
55288         * page/DragController.h:
55289           Method and variable declarations
55291         * page/EventHandler.cpp:
55292         (WebCore::EventHandler::handleDrag):
55293           handleDrag is now platform independent
55294         (WebCore::EventHandler::handleTextInputEvent):
55295            formatting
55297         * page/EventHandler.h:
55298         (WebCore::EventHandler::eventLoopHandleMouseDragged):
55299           Forgot to define this stub function 
55301         * page/Frame.h:
55302           Declaring dragImageForSelection to provide drag image for selected content
55304         * page/mac/DragControllerMac.mm:
55305           Defining drag images control vars
55307         * page/mac/EventHandlerMac.mm:
55308         (WebCore::EventHandler::createDraggingClipboard):
55309           Migrated old clipboard creation to here
55311         * page/mac/FrameMac.mm:
55312         (WebCore::Frame::dragImageForSelection):
55313           Wrap FrameMac::selectionImage
55315         * page/qt/DragControllerQt.cpp:
55316           Defining drag images control vars
55318         * page/qt/EventHandlerQt.cpp:
55319         (WebCore::EventHandler::createDraggingClipboard):
55320           stub
55322         * page/qt/FrameQt.cpp:
55323         (WebCore::Frame::dragImageForSelection):
55324           stub
55326         * platform/DragImage.cpp: Added.
55327         (WebCore::fitDragImageToMaxSize):
55328         (WebCore::createDragImageForSelection):
55329            Platform independent processing for drag images
55331         * platform/DragImage.h: Added.
55332            Declaring typedefs and wrapper functions to abstract the handling
55333            of drag images 
55335         * platform/Pasteboard.h:
55336           Declaring extracted writeURL and writeSelection methods
55338         * platform/graphics/svg/SVGImageEmptyClients.h:
55339         (WebCore::SVGEmptyDragClient::willPerformDragSourceAction):
55340         (WebCore::SVGEmptyDragClient::startDrag):
55341         (WebCore::SVGEmptyDragClient::createDragImageForLink):
55342           Stubs FTW!
55344         * platform/mac/ClipboardMac.h:
55345         (WebCore::ClipboardMac::pasteboard):
55346           Provide accessor for underlying NSPasteboard
55348         * platform/mac/ClipboardMac.mm:
55349         (WebCore::ClipboardMac::hasData):
55350         (WebCore::ClipboardMac::writeRange):
55351         (WebCore::ClipboardMac::writeURL):
55352         (WebCore::ClipboardMac::declareAndWriteDragImage):
55353         (WebCore::ClipboardMac::createDragImage):
55354            Implemented new Clipboarid functionality.
55355         (WebCore::ClipboardMac::dragNSImage):
55356            Made this a const method
55358         * platform/mac/DragImageMac.mm: Added.
55359         (WebCore::dragImageSize):
55360         (WebCore::deleteDragImage):
55361         (WebCore::scaleDragImage):
55362         (WebCore::dissolveDragImageToFraction):
55363         (WebCore::createDragImageFromImage):
55364         (WebCore::createDragImageIconForCachedImage):
55365            Implemented platform specific DragImage functions
55367         * platform/mac/PasteboardMac.mm:
55368         (WebCore::writeSelection):
55369         (WebCore::Pasteboard::writeSelection):
55370         (WebCore::writeURL):
55371         (WebCore::Pasteboard::writeURL):
55372            Extracted member implementations of these functions, so that
55373            Clipboard could also make use of this functionality.
55374            Pasteboard methods now call the new non-member implementations.
55375            Also fixed implementations to respect the list of requested types.
55377         * platform/qt/DragImageQt.cpp: Added.
55378         (WebCore::dragImageSize):
55379         (WebCore::deleteDragImage):
55380         (WebCore::scaleDragImage):
55381         (WebCore::dissolveDragImageToFraction):
55382         (WebCore::createDragImageFromImage):
55383         (WebCore::createDragImageIconForCachedImage):  
55384           Stubs
55386 2007-02-17  David Hyatt  <hyatt@apple.com>
55388         Fix textarea resizers to not fill with black by making sure the fill color starts off as
55389         transparent instead of black.
55391         Reviewed by aroben
55393         * platform/graphics/GraphicsContext.cpp:
55394         (WebCore::GraphicsContextState::GraphicsContextState):
55396 2007-02-17  Lars Knoll <lars@trolltech.com>
55398         Reviewed by Adam.
55400         fix http://bugs.webkit.org/show_bug.cgi?id=11476
55401         <rdar://problem/4960247> REGRESSION: Nesting the IMG tag inside of a
55402         MAP fails to render correctly in ToT
55404         Test: fast/images/image-in-map.html
55406         * html/HTMLMapElement.cpp:
55407         (WebCore::HTMLMapElement::checkDTD):
55409 2007-02-17  Alexey Proskuryakov  <ap@webkit.org>
55411         Reviewed by Maciej.
55413         http://bugs.webkit.org/show_bug.cgi?id=12733
55414         XPath namespace is attached to a wrong step
55416         * xml/XPathGrammar.y: NAMETEST is different from other NodeTests in that its
55417         resulting type is an expanded name, rather than a string. It is not really possible 
55418         to store the namespace inside Parser, because it gets used in wrong steps then.
55420         * xml/XPathParser.cpp:
55421         (WebCore::XPath::Parser::expandQName):
55422         * xml/XPathParser.h:
55423         Moved code that expands a QName from XPathGrammar.y. Removed m_currentNamespaceURI.
55425         * xml/XPathStep.cpp:
55426         (WebCore::XPath::Step::Step):
55427         * xml/XPathStep.h:
55428         Added a constructor that takes a namespace.
55430 2007-02-17  Mitz Pettel  <mitz@webkit.org>
55432         Reviewed by Maciej.
55434         - fix http://bugs.webkit.org/show_bug.cgi?id=12479
55435           ASSERTION FAILURE: resource->inCache() in WebCore::Cache::remove
55437         Test: fast/loader/simultaneous-reloads-assert.html
55439         * loader/Cache.cpp:
55440         (WebCore::Cache::remove): Replaced the assertion with a check whether the
55441         resource is in the cache. The resource could have been removed from the cache
55442         as a result of a reload occurring simultaneously in a different document.
55444 2007-02-12  Lars Naesbye Christensen  <lars@naesbye.dk>
55446         Reviewed by Adam.
55448         Fix for http://bugs.webkit.org/show_bug.cgi?id=12711
55449         Prettier and more distinct cursors
55451         * Resources/crossHairCursor.png: Added.
55452         * Resources/northEastSouthWestResizeCursor.png:
55453         * Resources/northWestSouthEastResizeCursor.png:
55454         * Resources/notAllowedCursor.png: Added.
55455         * page/EventHandler.cpp: (WebCore::selectCursor):
55456         * platform/Cursor.h:
55457         * platform/mac/CursorMac.mm:
55458         (WebCore::crossCursor):
55459         (WebCore::notAllowedCursor):
55461 2007-02-16  Mitz Pettel  <mitz@webkit.org>
55463         Reviewed by Darin.
55465         - fix http://bugs.webkit.org/show_bug.cgi?id=12780
55466           REGRESSION (r19341-r19385): Reproducible crash in "onselectstart" event
55468         Test: fast/events/shadow-boundary-crossing.html
55470         * dom/EventTargetNode.cpp:
55471         (WebCore::EventTargetNode::dispatchGenericEvent): Changed to use the new
55472         eventParentNode() function for constructing the chain of ancestors for
55473         capture and bubbling.
55474         * dom/Node.h:
55475         (WebCore::Node::eventParentNode): Added. Returns the node's parent for the
55476         purpose of of event capture and bubbling. The base class implementation is
55477         to return the parent node.
55478         * ksvg2/svg/SVGElement.h:
55479         (WebCore::SVGElement::eventParentNode): Added. Since in SVG events bubble
55480         to and can be captured across the shadow DOM boundary, returns the shadow parent
55481         for shadow nodes.
55483 2007-02-17  Dave Hyatt <hyatt@apple.com>
55485         Change how textarea resizers paint to more closely match the way the main window resizer paints.
55486         
55487         Reviewed by olliej
55489         * rendering/RenderLayer.cpp:
55490         (WebCore::RenderLayer::paintOverflowControls):
55492 2007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55494         Reviewed by Adam Roben.
55496         Fix crashes on ARM due to different struct packing. Based on a patch
55497         from Mike Emmel.
55499         * platform/DeprecatedString.cpp: compile-time assert to make sure sizeof(DeprecatedChar) == 2
55500         * platform/DeprecatedString.h: pack DeprecatedChar struct to ensure that
55501         sizeof(DeprecatedChar) == 2. Move _internalBuffer in DeprecatedStringData
55502         to the end, to avoid crashes on ARM due to different struct packing.
55504 2007-02-16  Adele Peterson  <adele@apple.com>
55506         Reviewed by Mitz.
55508         Fix for http://bugs.webkit.org/show_bug.cgi?id=11534
55509         <rdar://problem/4946947> REGRESSION: Readonly text fields don't scroll when selecting content
55511         Test: fast/forms/input-readonly-autoscroll.html
55513         Implemented autoscroll methods for RenderTextControl, so this works on non-editable text controls.
55515         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::autoscroll):
55516         * rendering/RenderTextControl.h: (WebCore::RenderTextControl::shouldAutoscroll):
55518 2007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55520         Reviewed by Adam Roben.
55522         Curl networking improvements inspired by Mike Emmel's patches in
55523         http://bugs.webkit.org/show_bug.cgi?id=11332.
55524         Fix FrameLoaderClientGdk due to changed FrameLoaderClient API.
55526         * loader/gdk/FrameLoaderClientGdk.cpp: Massage for changed API.
55527         (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
55528         (WebCore::FrameLoaderClientGdk::restoreViewState):
55529         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
55530         (WebCore::FrameLoaderClientGdk::willUseArchive):
55531         * loader/gdk/FrameLoaderClientGdk.h: Ditto.
55532         * platform/network/ResourceHandleInternal.h: Remember url and custom headers
55533         for the request lifetime and free them at the end.
55534         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
55535         * platform/network/gdk/ResourceHandleCurl.cpp: Ditto.
55536         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
55537         * platform/network/gdk/ResourceHandleManager.cpp: url improvements:
55538         - remove m_useSimple code-path since it wasn't used anywhere
55539         - don't use hashmap for keeping track of outstanding jobs - curl does it anyway
55540         - set custom headers from request
55541         - enable gzip and deflate through Accept-Encoding
55542         - setup curl to share cookies and DNS cache between requests
55543         - enable persisting of cookies in a file (if client provides file name
55544           for cookies via ResourceHandleManager::setCookieJarFileName())
55545         (WebCore::ResourceHandleManager::ResourceHandleManager):
55546         (WebCore::ResourceHandleManager::setCookieJarFileName):
55547         (WebCore::ResourceHandleManager::downloadTimerCallback):
55548         (WebCore::ResourceHandleManager::removeFromCurl):
55549         (WebCore::ResourceHandleManager::setupPUT):
55550         (WebCore::ResourceHandleManager::setupPOST):
55551         (WebCore::ResourceHandleManager::add):
55552         (WebCore::ResourceHandleManager::cancel):
55553         * platform/network/gdk/ResourceHandleManager.h:
55555 2007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55557         Reviewed by Adam Roben.
55559         Gdk fixes.
55561         * page/gdk/EventHandlerGdk.cpp: Comment out chatty message.
55562         (WebCore::EventHandler::handleDrag):
55563         * platform/gdk/EditorClientGdk.cpp: Enable entering text into text field.
55564         (WebCore::EditorClientGdk::shouldInsertText):
55566 2007-02-16  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55568         Reviewed by Adam Roben.
55570         Move Path implementation from TemporaryLinkStubs.cpp to
55571         its own file.
55572         Implement setLineCap, setLineJoin and setMiterLimit for
55573         cairo's GraphicsContext.
55575         * WebCoreSources.bkl:
55576         * platform/gdk/TemporaryLinkStubs.cpp:
55577         * platform/graphics/cairo/GraphicsContextCairo.cpp:
55578         (WebCore::GraphicsContext::setPlatformFillColor):
55579         (WebCore::GraphicsContext::setPlatformStrokeColor):
55580         (WebCore::GraphicsContext::setLineCap):
55581         (WebCore::GraphicsContext::setLineJoin):
55582         (WebCore::GraphicsContext::setMiterLimit):
55583         * platform/graphics/cairo/PathCairo.cpp: Added.
55584         (WebCore::Path::Path):
55585         (WebCore::Path::~Path):
55586         (WebCore::Path::contains):
55587         (WebCore::Path::translate):
55588         (WebCore::Path::boundingRect):
55589         (WebCore::Path::operator=):
55590         (WebCore::Path::clear):
55591         (WebCore::Path::moveTo):
55592         (WebCore::Path::addLineTo):
55593         (WebCore::Path::addQuadCurveTo):
55594         (WebCore::Path::addBezierCurveTo):
55595         (WebCore::Path::addArcTo):
55596         (WebCore::Path::closeSubpath):
55597         (WebCore::Path::addArc):
55598         (WebCore::Path::addRect):
55599         (WebCore::Path::addEllipse):
55600         (WebCore::Path::transform):
55601         (WebCore::Path::apply):
55603 2007-02-16  Ada Chan  <adachan@apple.com>
55605         Reviewed by Adam and Maciej.
55607         Use a RefPtr to store the old hover node.
55609         * rendering/RenderLayer.cpp:
55610         (WebCore::RenderLayer::updateHoverActiveState):
55612 2007-02-16  Darin Adler  <darin@apple.com>
55614         Reviewed by Adele.
55616         - fix <rdar://problem/4990864> ASSERT in FormDelegate.m while dragging text between frames
55618         This symptom is specific to Safari, so no layout test.
55620         * editing/DeleteSelectionCommand.cpp:
55621         (WebCore::DeleteSelectionCommand::doApply): Only call textWillBeDeletedInTextField if the
55622         text field is focused.
55623         * html/HTMLInputElement.cpp:
55624         (WebCore::HTMLInputElement::aboutToUnload): Only call textFieldDidEndEditing if the text
55625         field is focused.
55626         (WebCore::HTMLInputElement::dispatchBlurEvent): Remove unneeded type cast.
55627         (WebCore::HTMLInputElement::defaultEventHandler): Only call doTextFieldCommandFromEvent if
55628         the text field is focused.
55629         * rendering/RenderTextControl.cpp:
55630         (WebCore::RenderTextControl::subtreeHasChanged): Only call textDidChangeInTextArea,
55631         textFieldDidBeginEditing, and textDidChangeInTextField if the element is focused.
55633 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
55635         Reviewed by Adam.
55637         <rdar://problem/4943985> 
55638         REGRESSION: Dragging standalone images to Finder fails to download the image file
55639         
55640         Set the data and response on the image resource. Also, since this is platform-independent we don't need to do it in 
55641         ImageDocumentMac.mm
55642         
55643         * loader/ImageDocument.cpp:
55644         (WebCore::ImageTokenizer::finish):
55645         * loader/mac/ImageDocumentMac.h:
55646         * loader/mac/ImageDocumentMac.mm:
55647         (WebCore::finishImageLoad):
55649 2007-02-16  David Harrison  <harrison@apple.com>
55651         Reviewed by Adam.
55653         <rdar://problem/5004746> Need mechanism to protect against WebKit calls from secondary threads (DOM APIs)
55655         * platform/mac/LoggingMac.mm:
55656         (WebCore::_WebCoreThreadViolationCheck):
55657         Change the default to log the violations.
55659 2007-02-16  Adele Peterson  <adele@apple.com>
55661         Reviewed by Mitz.
55663         Fixed: http://bugs.webkit.org/show_bug.cgi?id=12768
55664         <rdar://problem/4995250> REGRESSION: Crash occurs at WebCore::RenderLayer::scrollToOffset() when leaving page that has focus in field
55666         No test case added.  This crash doesn't occur in DumpRenderTree because the B/F cache is turned off.
55668         * dom/Node.cpp: (WebCore::Node::willRemove): Check that the document is not in the page cache before 
55670         * dom/Element.cpp: (WebCore::Element::updateFocusAppearance): Added restorePreviousSelection argument, with appropriate default values.
55671         * dom/Element.h: ditto.
55672         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance): ditto.
55673         * html/HTMLInputElement.h: ditto.
55674         * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::updateFocusAppearance): ditto.
55675         * html/HTMLTextAreaElement.h: ditto.
55677         * page/PageState.cpp: (WebCore::PageState::restore): Call updateFocusAppearance on the focused node for this page.  Pass true for the
55678           restorePreviousSelection argument.
55680         * rendering/RenderLayer.cpp: Added ASSERTS and nil checks on the RenderView.  It shouldn't be null, but if it is, 
55681           we'll fail silently on release builds.
55682         (WebCore::RenderLayer::updateLayerPositions):
55683         (WebCore::RenderLayer::scrollToOffset):
55684         (WebCore::RenderLayer::windowClipRect):
55685         (WebCore::RenderLayer::calculateClipRects):
55686         (WebCore::RenderLayer::calculateRects):
55687         (WebCore::RenderLayer::intersectsDamageRect):
55688         (WebCore::RenderLayer::absoluteBoundingBox):
55690 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
55692         Reviewed by Darin.
55694         <rdar://problem/4993055> auto_refcount_underflow_error: WebCore::FrameLoader::continueAfterNavigationPolicy () over-releases under GC
55696         Add ::adoptNS and ::adoptCF methods to RetainPtr to indicate what type of reference to adopt.
55697         
55698         * platform/cf/RetainPtr.h:
55699         (WebCore::):
55700         (WebCore::adoptNSReference):
55701         (WebCore::RetainPtr::RetainPtr):
55702         (WebCore::::adoptCF):
55703         (WebCore::::adoptNS):
55704         * platform/mac/FileChooserMac.mm:
55705         (WebCore::FileChooser::FileChooser):
55706         * platform/network/mac/ResourceErrorMac.mm:
55707         (WebCore::ResourceError::operator NSError*):
55708         * platform/network/mac/ResourceRequestMac.mm:
55709         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55710         * platform/network/mac/ResourceResponseMac.mm:
55711         (WebCore::ResourceResponse::nsURLResponse):
55713 2007-02-15  Brady Eidson  <beidson@apple.com>
55715         Reviewed by Lost Objective-C Hippyness (or hippiness)
55717         Oh boy, did I ever botch this one up...
55719         * loader/FrameLoader.cpp:
55720         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Null check the FrameView
55722 2007-02-15  Brady Eidson  <beidson@apple.com>
55724         Reviewed by Adam's complaint
55726         Adam wanted me to do an early return, instead.
55728         * loader/FrameLoader.cpp:
55729         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
55731 2007-02-15  Brady Eidson  <beidson@apple.com>
55733         Reviewed by Adele
55735         Forgot to bring the null check with me when I backed this code out of 
55736         the FrameLoaderClient
55738         * loader/FrameLoader.cpp:
55739         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): null check the HistoryItem
55741 2007-02-15  Brady Eidson  <beidson@apple.com>
55743         Reviewed by Adam
55745         Save scroll state for back/forward navigation in FrameLoader, not the client
55747        * loader/FrameLoader.cpp:
55748         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Actually save the scroll position
55749          here instead of asking the FrameLoaderClient
55750         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Ditto
55752         * loader/FrameLoaderClient.h: Renamed/repurposed 2 methods
55754         * platform/graphics/svg/SVGImageEmptyClients.h:
55755         (WebCore::SVGEmptyFrameLoaderClient::restoreViewState): Ditto
55756         (WebCore::SVGEmptyFrameLoaderClient::saveViewStateToItem): Ditto
55758 2007-02-15  Justin Garcia  <justin.garcia@apple.com>
55760         Reviewed by harrison
55761         
55762         <rdar://problem/4989774>
55763         REGRESSION: Pasting a image into a plain text message can place image on a new line
55765         <span><img><span><img></span></span> will appear as two
55766         images on different lines because of a layout/rendering
55767         bug.  This patch avoids the bug by producing cleaner
55768         markup so that the paste code can safely remove the style 
55769         spans.
55771         * editing/markup.cpp:
55772         (WebCore::createMarkup): Get the default style from the
55773         editable root or body instead of the document element.
55774         This produces cleaner markup since we don't inline the 
55775         root's styles.
55777 2007-02-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55779         Reviewed by Adam Roben.
55781         Add gdk version of ContextMenuClient based on qt version.
55783         * WebCoreSources.bkl:
55784         * page/gdk/ContextMenuClientGdk.cpp: Added.
55785         (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
55786         (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
55787         (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
55788         (WebCore::ContextMenuClientGdk::downloadURL):
55789         (WebCore::ContextMenuClientGdk::copyImageToClipboard):
55790         (WebCore::ContextMenuClientGdk::searchWithGoogle):
55791         (WebCore::ContextMenuClientGdk::lookUpInDictionary):
55792         (WebCore::ContextMenuClientGdk::speak):
55793         (WebCore::ContextMenuClientGdk::stopSpeaking):
55794         * page/gdk/ContextMenuClientGdk.h: Added.
55795         * webcore-base.bkl: curl is needed when building webcore_base files.
55797 2007-02-15  Kevin Decker  <kdecker@apple.com>
55799        Reviewed by Darin.
55801        Fixed: <rdar://problem/4983883> Background of a .mov window should not be white
55803        * loader/PluginDocument.cpp: 
55804        (WebCore::PluginTokenizer::createDocumentStructure): Set a background color of gray
55805        for full frame plug-ins, which makes it easier on the eyes. It's also the same 
55806        gray that PDFKit uses, too.
55808 2007-02-15  Mitz Pettel  <mitz@webkit.org>
55810         Reviewed by Darin.
55812         - fix http://bugs.webkit.org/show_bug.cgi?id=12625
55813           REGRESSION: Crash when closing the web inspector with text selected
55815         The problem was that selectionRect() was being called on a render tree that
55816         had pending style changes. The changes were committed as a side effect in
55817         the middle of traversing the render tree, and the current object got
55818         deleted as a result. The solution is to update the render tree before
55819         starting to traverse it.
55821         The inspector was affected because it makes style changes in response to
55822         an AppKit notification that's sent right before the windowDidResignKey:
55823         notification, under which WebKit calls selectionRect(). I couldn't recreate
55824         the same conditions (having uncommitted style changes in the tree when the
55825         window becomes inactive) using HTML/JS in Safari, hence the lack of
55826         a regression test to go with this patch.
55828         * rendering/RenderView.cpp:
55829         (WebCore::RenderView::selectionRect): Added call to updateRendering().
55831 2007-02-15  Mitz Pettel  <mitz@webkit.org>
55833         Reviewed by Darin.
55835         - fix http://bugs.webkit.org/show_bug.cgi?id=10127
55836           REGRESSION: Crash undoing delete in textarea
55838         Document::removeMarkers() was using a Vector iterator (which is just a
55839         pointer) and inserting into the Vector at the same time, which made the
55840         iterator invalid as the Vector's data buffer was relocated.
55841         
55842         Replaced all instances of Vector<DocumentMarker>::iterator with indices.
55844         * dom/Document.cpp:
55845         (WebCore::Document::addMarker):
55846         (WebCore::Document::copyMarkers):
55847         (WebCore::Document::removeMarkers):
55848         (WebCore::Document::repaintMarkers):
55849         (WebCore::Document::shiftMarkers):
55851 2007-02-15  Mitz Pettel  <mitz@webkit.org>
55853         Reviewed by Darin.
55855         - http://bugs.webkit.org/show_bug.cgi?id=12777
55856           REGRESSION (r18574): User profile pages display incorrectly at ebay.ca
55858         Fixes existing layout tests: tables/mozilla/bugs/bug45486.html
55859                                      tables/mozilla_expected_failures/core/col_span2.html
55861         * rendering/AutoTableLayout.cpp:
55862         (WebCore::AutoTableLayout::calcEffectiveWidth): Fixed a mismatch between which
55863         columns count as percentage columns when adding up the total percent and
55864         which columns count as percentage columns when converting non-percentage
55865         columns to effectively-percentage.
55867 2007-02-14  Mitz Pettel  <mitz@webkit.org>
55869         Reviewed by Sam Weinig!
55871         - fix http://bugs.webkit.org/show_bug.cgi?id=12773
55872           REGRESSION (r19490): Crash on ipx-server.de
55874         * manual-tests/background-image-change-in-page-cache.html: Added.
55875         * rendering/RenderBox.cpp:
55876         (WebCore::RenderBox::imageChanged): Bail out if the object is not in a view,
55877         which can happen if the document is in the page cache and the same cached
55878         image used for its background is also being used in another document that
55879         is currently in view.
55881 2007-02-14  Adam Roben  <aroben@apple.com>
55883         Reviewed by Darin.
55885         Fix http://bugs.webkit.org/show_bug.cgi?id=12517
55886         <rdar://problem/4971227> REGRESSION: Tab order incorrect when input
55887         inside frame/iframe gets initial focus (12517)
55889         Test: fast/events/frame-programmatic-focus.html
55891         * dom/Element.cpp:
55892         (WebCore::Element::focus): Call FocusController::setFocusedNode to set
55893         the focus for the whole page.
55894         * html/HTMLInputElement.cpp:
55895         (WebCore::HTMLInputElement::focus): Ditto.
55896         * html/HTMLTextAreaElement.cpp:
55897         (WebCore::HTMLTextAreaElement::focus): Ditto.
55898         * page/EventHandler.cpp:
55899         (WebCore::EventHandler::handleTextInputEvent): Send the textInput
55900         event to the same target that was sent the keypress event before it.
55901         * page/FocusController.cpp:
55902         (WebCore::FocusController::advanceFocus): Added a FIXME.
55903         (WebCore::FocusController::setFocusedNode): Added. Sets the focused
55904         node for a whole page.
55905         * page/FocusController.h: Added declaration.
55906         * platform/cf/RetainPtr.h: Removed unused pointer_cast functions.
55908 2007-02-14  Justin Garcia  <justin.garcia@apple.com>
55910         Reviewed by adele
55911         
55912         <rdar://problem/4976800>
55913         Outdent combines 2 separate strings on 2 different lines
55915         * editing/IndentOutdentCommand.cpp:
55916         (WebCore::IndentOutdentCommand::outdentParagraph): Add line breaks
55917         if removing the indented node causes content before or after it to
55918         collapse into the same paragraph as its content.
55920 2007-02-14  Justin Garcia  <justin.garcia@apple.com>
55922         Reviewed by adele
55923         
55924         <rdar://problem/4960120>
55925         REGRESSION: First Enter key ignored on initial focus of textarea after page load (11967)
55926         
55927         We'd insert a newline, but into an empty div.  We need two newlines
55928         in that case.
55930         * editing/InsertLineBreakCommand.cpp:
55931         (WebCore::lineBreakExistsAtPosition): Returns true if there is a
55932         br or a '\n' in text that preserves newlines at the incoming position.
55933         (WebCore::InsertLineBreakCommand::doApply): Fixed to handle the empty
55934         block case, the anonymous block case.
55936 2007-02-14  Darin Adler  <darin@apple.com>
55938         Reviewed by Hyatt.
55940         - test or http://bugs.webkit.org/show_bug.cgi?id=12417
55941           <rdar://problem/4990046> REGRESSION: pressing "Return" in a <select>
55942           box does not submit the form (12697)
55944         Test: fast/forms/select-enter-key.html
55946         * html/HTMLSelectElement.cpp:
55947         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
55948         Add code to submit when someone hits the Enter key.
55950 2007-02-14  Anders Carlsson  <acarlsson@apple.com>
55952         Reviewed by Darin.
55954         <rdar://problem/4960112>
55955         http://bugs.webkit.org/show_bug.cgi?id=12417
55956         REGRESSION: "Are you sure you want to send a form again?" sheet is displayed twice (validator.w3.org)
55957         
55958         The problem was that doing a reload would cause the "Cache-Control" HTTP header to be set on the request _after_ the first
55959         navigation policy delegate callback was called. This would break the request equality check that's used to prevent multiple policy
55960         delegate callbacks from getting called for the same request. The solution is to set the header as early as possible.
55961         
55962         This patch also fixes some bugs in the ResourceRequest equality operator.
55963         
55964         * loader/FrameLoader.cpp:
55965         (WebCore::FrameLoader::reload):
55966         Set the "Cache-Control" header field on the request here.
55967         
55968         * platform/network/FormData.h:
55969         (WebCore::operator==):
55970         Short-circuit if the pointers are the same.
55971         
55972         * platform/network/ResourceRequest.cpp:
55973         (WebCore::operator==):
55974         Check the equality of the objects, not the pointers.
55976 2007-02-14  David Hyatt  <hyatt@apple.com>
55978         Move setPlatformData out of FontFallbackListMac.mm and delete the file.  The function was completely
55979         cross-platform already.
55981         Reviewed by Ada
55983         * WebCore.xcodeproj/project.pbxproj:
55984         * platform/FontFallbackList.cpp:
55985         (WebCore::FontFallbackList::setPlatformFont):
55987 2007-02-14  David Hyatt  <hyatt@apple.com>
55989         Make the Font constructor that takes a FontPlatformData cross-platform, since the implementation was already
55990         completely cross-platform.
55992         Reviewed by Ada
55994         * platform/Font.cpp:
55995         (WebCore::Font::Font):
55996         * platform/Font.h:
55997         * platform/mac/FontMac.mm:
55999 2007-02-14  Antti Koivisto  <antti@apple.com>
56001         Reverting http://bugs.webkit.org/show_bug.cgi?id=11974, it causes repainting problems in some cases.
56003         * rendering/RenderTextControl.h:
56004         (WebCore::RenderTextControl::avoidsFloats):
56006 2007-02-14  Antti Koivisto  <antti@apple.com>
56008         Reviewed by Maciej.
56009         
56010         - fix http://bugs.webkit.org/show_bug.cgi?id=11974
56011         REGRESSION: Caret drawn over input when smaller than font size on initial focus
56012         <rdar://problem/4960258>
56013         
56014         Set controlClip for non-search text controls.
56016         * rendering/RenderTextControl.h:
56017         (WebCore::RenderTextControl::hasControlClip):
56019 2007-02-14  Mitz Pettel  <mitz@webkit.org>
56021         Reviewed by Hyatt.
56023         - fix http://bugs.webkit.org/show_bug.cgi?id=12726
56024           REGRESSION (r12073): Text wraps in the middle of a word instead of wrapping at the space before the word
56026         Test: fast/text/break-word.html
56028         The wrapW variable used to keep track of the width of the characters scanned
56029         so far by adding up the widths of individual characters. Because of the
56030         rounding hack, the total ended up being bigger than the width of the same characters
56031         when measured together as a single run.
56033         The fix is to use wrapW only as an upper bound, and once it overflows the line's width,
56034         fall back on measuring everything from the beginning of the line as one run.
56036         * rendering/bidi.cpp:
56037         (WebCore::RenderBlock::findNextLineBreak): Implemented the above fix, including not measuring
56038         additional single characters once wrapW overflows the line. Also moved the assignment
56039         to breakNBSP out of the loop since it is constant for the entire text object, made breakWords and
56040         midWordBreak update only when they might change, and cleaned up a few things.
56042 2007-02-14  Antti Koivisto  <antti@apple.com>
56044         Reviewed by Hyatt.
56046         - fix http://bugs.webkit.org/show_bug.cgi?id=11923
56047         REGRESSION: Placeholder text in password field shows as bullets
56048         <rdar://problem/4960257> 
56049         
56050         Disable textSecurity when placeholder is visible.
56051         
56052         * rendering/RenderTextControl.cpp:
56053         (WebCore::RenderTextControl::updatePlaceholder):
56055 2007-02-13  Alexey Proskuryakov  <ap@webkit.org>
56057         Reviewed by Mark Rowe.
56059         http://bugs.webkit.org/show_bug.cgi?id=12763
56060         REGRESSION: button title is displayed incorrectly at quotes.burntelectrons.org
56062         Test: fast/parser/entities-in-attributes.xhtml
56064         * dom/XMLTokenizer.cpp:
56065         (WebCore::getEntityHandler): Set a correct type for the found entity (I'm not really
56066         sure if XML_INTERNAL_GENERAL_ENTITY is _the_ correct one, but it fixes the problem).
56068 2007-02-13  Darin Adler  <darin@apple.com>
56070         Reviewed by Hyatt.
56072         - removed some bogus names (Hyatt smacked me since this doesn't fix a P1)
56074         * dom/EventNames.h: Removed half-implemented khtmlDragdrop and khtmlMove
56075         (you could add listeners, but nobody ever sent the events). Renamed the
56076         other two khtml-prefixed internal event names to use the webkit prefix.
56078         * bindings/js/kjs_dom.cpp:
56079         (KJS::DOMEventTargetNode::getValueProperty): Removed ondragdrop and onmove.
56080         (KJS::DOMEventTargetNode::putValueProperty): Ditto.
56081         * bindings/js/kjs_dom.h:
56082         * bindings/js/kjs_window.cpp:
56083         (KJS::Window::getValueProperty): Ditto.
56084         (KJS::Window::put): Ditto.
56085         * bindings/js/kjs_window.h:
56087         * dom/BeforeTextInsertedEvent.cpp:
56088         (WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent): Renamed to webkit.
56089         * editing/Editor.cpp:
56090         (WebCore::dispatchEditableContentChangedEvents): Ditto.
56091         * editing/ReplaceSelectionCommand.cpp:
56092         (WebCore::ReplacementFragment::ReplacementFragment): Ditto.
56093         * html/HTMLTextFieldInnerElement.cpp:
56094         (WebCore::HTMLTextFieldInnerTextElement::defaultEventHandler): Ditto.
56096 2007-02-13  Darin Adler  <darin@apple.com>
56098         Rubber stamped by Maciej.
56100         * dom/EventNames.h: Resort names. Removed unused names.
56102 2007-02-13  Anders Carlsson  <acarlsson@apple.com>
56104         Reviewed by Kevin Decker.
56106         <rdar://problem/4990049> 
56107         http://bugs.webkit.org/show_bug.cgi?id=12718
56108         REGRESSION: Segmentation fault when loading abc.go.com (12718)
56110         The problem is that redirecting to about:blank causes the delegate to be released even though the load wasn't finished.
56111         This is usally not a problem since NSURLConnection retains its delegate. However, the proxy delegate does not retain _it's_ 
56112         delegate. The solution is to make releaseDelegate clear out the proxy delegate's delegate.
56113         
56114         * platform/network/mac/ResourceHandleMac.mm:
56115         (WebCore::ResourceHandle::releaseDelegate):
56116         If there's a proxy, nil out its delegate too.
56118 2007-02-13  Matt Perry  <mpcomplete@chromium.org>
56120         Reviewed by Darin.
56122         - fix for http://bugs.webkit.org/show_bug.cgi?id=12750
56123           Vector operator== was not defined correctly. It returned void,
56124           did not accept const Vectors, and used an int instead of size_t. 
56126         * rendering/RenderStyle.h: Added a != operator for StyleDashboardRegion.
56127         The only reason this compiled before was that the comparing two vectors
56128         with a != was simply comparing the pointers.
56130 2007-02-13  Darin Adler  <darin@apple.com>
56132         - roll out fix for <rdar://problem/4874059> REGRESSION: Painter IX:register -
56133           Crash in WebCore:: ResourceLoader::willSendRequest()
56135         This fix was causing a crash in at least one layout test.
56137         * loader/FrameLoader.cpp:
56138         (WebCore::FrameLoader::stopAllLoaders):
56139         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
56141 2007-02-13  Mitz Pettel  <mitz@webkit.org>
56143         Reviewed by Hyatt.
56145         - fix http://bugs.webkit.org/show_bug.cgi?id=12746
56146         REGRESSION (r13853): List item's first line overflows containing div
56148         Test: fast/lists/item-not-in-list-line-wrapping.html
56150         * rendering/bidi.cpp:
56151         (WebCore::RenderBlock::findNextLineBreak): Use the list marker's isInside()
56152         instead of looking at its style()->listStylePosition(), since if the
56153         list item is not in a list, the marker is inside regardless of the style.
56155 2007-02-13  Rob Buis  <buis@kde.org>
56157         Reviewed by Maciej.
56159         http://bugs.webkit.org/show_bug.cgi?id=12578
56160         WebKit incorrectly strokes zero-width/height rectangles
56162         Create an empty path when encountering zero-width/height rectangles, similar to circles with zero radius.
56164         * platform/graphics/Path.cpp:
56165         (WebCore::Path::createRectangle):
56167 2007-02-13  Rob Buis  <buis@kde.org>
56169         Reviewed by Maciej.
56171         Remove SVGDOMImplementation from the project.
56173         * CMakeLists.txt:
56174         * WebCore.pro:
56175         * ksvg2/svg/SVGDOMImplementation.cpp: Removed.
56176         * ksvg2/svg/SVGDOMImplementation.h: Removed.
56178 2007-02-13  Brady Eidson <beidson@apple.com>
56180         Reviewed by Maciej and Adam
56182         Fixes <rdar://problem/4985497> - Crash when opening a new window to "Same Page"
56184         * loader/FrameLoader.cpp:
56185         (WebCore::FrameLoader::loadItem): Null check documentLoader() since if we're a brand new 
56186           WebView, cloning the history of another view, we have no documentLoader()
56188 2007-02-12  Antti Koivisto  <antti@apple.com>
56190         Reviewed by Maciej.
56192         -fix REGRESSION: <select disabled size="5"> listbox cannot be scrolled
56193         http://bugs.webkit.org/show_bug.cgi?id=11852
56194         <rdar://problem/4960129>
56195         
56196         Pass mouse press events to scrollbars even if event is swallowed.
56197         
56198         No layout test, DumpRenderTree eventSender can't hit scrollbars.
56200         * page/EventHandler.cpp:
56201         (WebCore::EventHandler::handleMousePressEvent):
56203 2007-02-12  David Hyatt  <hyatt@apple.com>
56205         Fix for bug 12149 (Radar Bug#4928692), external CSS causes incomplete
56206         text field focus.
56208         Make sure to clear out the focus node in willRemove() rather than in
56209         detach(), since detach/attach caused by style recalc should not affect
56210         the focused node.
56212         Reviewed by aroben
56214         * dom/ContainerNode.cpp:
56215         (WebCore::ContainerNode::willRemove):
56216         * dom/Document.cpp:
56217         (WebCore::Document::focusedNodeRemoved):
56218         (WebCore::Document::setFocusedNode):
56219         * dom/Document.h:
56220         * dom/Element.cpp:
56221         (WebCore::Element::updateFocusAppearance):
56222         * dom/Node.cpp:
56223         (WebCore::Node::willRemove):
56224         (WebCore::Node::detach):
56225         * html/HTMLInputElement.cpp:
56226         (WebCore::HTMLInputElement::updateFocusAppearance):
56228 2007-02-12  Kevin McCullough  <kmccullough@apple.com>
56230         - reverting fix for rdar://problem/4922454 because it caused regressions
56231           and performance problems
56233         * bindings/objc/DOM.mm:
56234         (-[DOMElement image]):
56235         (-[DOMElement _imageTIFFRepresentation]):
56236         * dom/XMLTokenizer.cpp:
56237         (WebCore::XMLTokenizer::notifyFinished):
56238         * html/HTMLImageLoader.cpp:
56239         (WebCore::HTMLImageLoader::dispatchLoadEvent):
56240         * html/HTMLTokenizer.cpp:
56241         (WebCore::HTMLTokenizer::reset):
56242         (WebCore::HTMLTokenizer::notifyFinished):
56243         * ksvg2/misc/SVGImageLoader.cpp:
56244         (WebCore::SVGImageLoader::dispatchLoadEvent):
56245         * loader/Cache.cpp:
56246         (WebCore::Cache::requestResource):
56247         (WebCore::Cache::remove):
56248         * loader/CachedImage.h:
56249         (WebCore::CachedImage::canRender):
56250         (WebCore::CachedImage::isErrorImage):
56251         * loader/CachedResource.h:
56252         * loader/CachedScript.h:
56253         (WebCore::CachedScript::errorOccurred):
56254         * loader/DocLoader.cpp:
56255         (WebCore::DocLoader::requestResource):
56256         (WebCore::DocLoader::setLoadInProgress):
56257         * loader/FrameLoader.cpp:
56258         (WebCore::FrameLoader::canLoad):
56259         * page/EventHandler.cpp:
56260         (WebCore::selectCursor):
56261         * rendering/HitTestResult.cpp:
56262         (WebCore::HitTestResult::image):
56263         * rendering/RenderImage.cpp:
56264         (WebCore::RenderImage::setCachedImage):
56265         (WebCore::RenderImage::imageChanged):
56266         (WebCore::RenderImage::paint):
56267         (WebCore::RenderImage::layout):
56268         (WebCore::RenderImage::calcAspectRatioWidth):
56269         (WebCore::RenderImage::calcAspectRatioHeight):
56270         * rendering/RenderImage.h:
56271         (WebCore::RenderImage::isErrorImage):
56272         * rendering/RenderListItem.cpp:
56273         (WebCore::RenderListItem::setStyle):
56274         * rendering/RenderListMarker.cpp:
56275         (WebCore::RenderListMarker::isImage):
56277 2007-02-12  Mitz Pettel  <mitz@webkit.org>
56279         Reviewed by Dave Hyatt.
56281         - fix http://bugs.webkit.org/show_bug.cgi?id=12123
56282           REGRESSION: Incomplete repaint of floats' overflows
56284         Tests: fast/repaint/float-overflow.html
56285                fast/repaint/float-overflow-right.html
56287         - fix http://bugs.webkit.org/show_bug.cgi?id=10116
56288           REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
56290         Reflected in existing test results.
56292         Unified floats and overflow for the purposes of painting and hit-testing.
56293         Overhanging and overflowing floats are now factored into a block's overflow
56294         unless their painting has been propagated to an ancestor.
56296         Changed table cells to no longer expand to enclose overflow, thus making
56297         it purely "visual overflow", having no effect on layout in WebCore. It
56298         still determines scrolling dimensions.
56300         * rendering/InlineFlowBox.cpp:
56301         (WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
56302         horizontal overflow in the inline box's dimensions.
56303         * rendering/RenderBlock.cpp:
56304         (WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
56305         behavior. Added code to add this block's floats (and their overflow) to its
56306         overflow rect if it is not in a block formatting context. Otherwise, the
56307         inclusion of floats in the overflow is deferred until this block's parent
56308         examines its floats and possibly adopts overhanging floats.
56309         (WebCore::RenderBlock::layoutBlockChildren):
56310         (WebCore::RenderBlock::paint): 
56311         (WebCore::RenderBlock::floatRect): Changed to return an empty rect if there
56312         are no floats or the floats are clipped, instead of returning the border box.
56313         (WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
56314         are not to be painted by the parent are added to the child's overflow rect.
56315         (WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
56316         bounds to include the given rect.
56317         (WebCore::RenderBlock::nodeAtPoint):
56318         * rendering/RenderBlock.h:
56319         * rendering/RenderFlexibleBox.cpp:
56320         (WebCore::RenderFlexibleBox::layoutBlock): 
56321         (WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
56322         child, add its floats to its overflow, since painting of floats does not
56323         propagate to flexible boxes. 
56324         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
56325         * rendering/RenderForeignObject.cpp:
56326         (WebCore::RenderForeignObject::layout):
56327         * rendering/RenderHTMLCanvas.cpp:
56328         (WebCore::RenderHTMLCanvas::layout):
56329         * rendering/RenderImage.cpp:
56330         (WebCore::RenderImage::layout):
56331         * rendering/RenderLayer.cpp:
56332         (WebCore::RenderLayer::updateLayerPositions):
56333         (WebCore::RenderLayer::absoluteBoundingBox):
56334         * rendering/RenderLayer.h:
56335         * rendering/RenderObject.cpp:
56336         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
56337         * rendering/RenderObject.h:
56338         (WebCore::RenderObject::expandsToEncloseOverhangingFloats):
56339         * rendering/RenderPath.cpp:
56340         (WebCore::RenderPath::layout):
56341         * rendering/RenderSVGContainer.cpp:
56342         (WebCore::RenderSVGContainer::layout):
56343         * rendering/RenderSVGText.cpp:
56344         (WebCore::RenderSVGText::layout):
56345         * rendering/RenderTable.cpp:
56346         (WebCore::RenderTable::layout):
56347         * rendering/RenderTableCell.h:
56348         (WebCore::RenderTableCell::expandsToEncloseOverhangingFloats):
56350 2007-02-12  Darin Adler  <darin@apple.com>
56352         Reviewed by Hyatt.
56354         - fix http://bugs.webkit.org/show_bug.cgi?id=12668
56355           <rdar://problem/4893344> REGRESSION: underline not visible for the international
56356           input inline hole in most text fields (12668)
56358         - fix bug where overline and line-through were 1px lower than we intended
56360         * platform/graphics/GraphicsContext.h: Removed unneeded y offset parameter.
56361         * platform/graphics/cairo/GraphicsContextCairo.cpp:
56362         (WebCore::GraphicsContext::drawLineForText): Removed bogus y offset and +1.
56363         * platform/graphics/cg/GraphicsContextCG.cpp:
56364         (WebCore::GraphicsContext::drawLineForText): Ditto.
56365         * platform/graphics/qt/GraphicsContextQt.cpp:
56366         (WebCore::GraphicsContext::drawLineForText): Ditto.
56368         * rendering/InlineFlowBox.cpp:
56369         (WebCore::InlineFlowBox::paintTextDecorations): Added the "+1" that used to be
56370         inside drawLineForText to the underline-drawing code. Changed the other callers
56371         of drawLineForText to include the y offset in the y coordinate.
56372         * rendering/InlineTextBox.cpp:
56373         (WebCore::InlineTextBox::paintDecoration): Ditto. Also renamed _tx and _ty to
56374         remove the gratuitious underscores.
56375         (WebCore::InlineTextBox::paintMarkedTextUnderline): Made the default thickness
56376         be 1px instead of 0 (which ends up being roughly 1px in the CG code path anyway).
56377         Fixed the code computing the position to put the underline at the bottom of the
56378         line (different from regular underlines which are put 1px under the baseline).
56379         The old code used to put the underline 1px further down in the thick case, and
56380         2px further down in the non-thick case. Both of those are bad, because they
56381         could be completely clipped out in many cases.
56383 2007-02-12  Anders Carlsson  <acarlsson@apple.com>
56385         Reviewed by Darin.
56387         <rdar://problem/4846962>
56388         Aperture: Aperture 1.5 - DOM exception occurs when exporting a web gallery
56390         * dom/ContainerNode.cpp:
56391         (WebCore::ContainerNode::replaceChild):
56392         Call checkReplaceChild here.
56393         
56394         * dom/Document.cpp:
56395         (WebCore::Document::canReplaceChild):
56396         * dom/Document.h:
56397         Add implementation of canReplaceChild that makes sure that doing the replacement won't cause
56398         more than one element and document type node to end up in the document.
56399         
56400         * dom/Node.cpp:
56401         (WebCore::Node::canReplaceChild):
56402         Base implementation of canReplaceChild.
56403         
56404         (WebCore::Node::checkReplaceChild):
56405         New function that does what checAddChild does but calls canReplaceChild.
56406         
56407 2007-02-12  Kevin Decker <kdecker@apple.com>
56409         Reviewed by Anders.
56411         Fixed: <rdar://problem/4874059> REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
56412         
56413         What happened here was that a WebDataSource was being dealloced *while* a load for that resource is still in progress. 
56415         * loader/FrameLoader.cpp:
56416         (WebCore::FrameLoader::stopAllLoaders): Calling stopAllLoaders cancels loads and informs the frame load delegate accordingly.
56417         The delegate however may decide to kick off a new provisional load as the result of the cancel. Therefore a local variable 
56418         for the provisional and main doucment loader is introduced, and we now only nil out the provisional loader if the local and
56419         member provisional variables represent the exact same load.
56420         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Added the same check here, too.
56422 2007-02-12  Lars Knoll  <lars@trolltech.com>
56424         Reviewed by Mitz.
56426         Do not create child renderers for table column groups
56427         if the child has not a table column display type.
56429         * dom/Node.cpp:
56430         (WebCore::Node::createRendererIfNeeded):
56431         * rendering/RenderObject.h:
56432         (WebCore::RenderObject::isChildAllowed):
56433         * rendering/RenderTableCol.cpp:
56434         (WebCore::RenderTableCol::isChildAllowed):
56435         * rendering/RenderTableCol.h:
56437 2007-02-12  Antti Koivisto  <antti@apple.com>
56439         Reviewed by Mitz
56441         Fix assertion failure in layout test.
56443         * html/HTMLMapElement.cpp:
56444         (WebCore::HTMLMapElement::parseMappedAttribute):
56446 2007-02-12  Kevin McCulough  <kmccullough@apple.com>
56448         Reviewed by Brady.
56450         - Fixing a performance regression caused by r19500.  The heart of the matter
56451         is that we now call canLoad on every resource request even ones in the cache,
56452         to avoid a security issue. So I could not take out the canLoad call, but I
56453         but I could try to make it more efficient.
56455         * loader/DocLoader.cpp:
56456         (WebCore::DocLoader::requestResource):
56457         (WebCore::DocLoader::setLoadInProgress):
56458         * loader/FrameLoader.cpp:
56459         (WebCore::FrameLoader::canLoad):
56461 2007-02-12  Darin Adler  <darin@apple.com>
56463         Reviewed by Oliver.
56465         - fix http://bugs.webkit.org/show_bug.cgi?id=12677
56466           <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm
56467           a clause in kotoeri (12677)
56469         - fix http://bugs.webkit.org/show_bug.cgi?id=12596
56470           <rdar://problem/4794346> REGRESSION: Tab key shifts form field focus instead of
56471           navigating prediction window (12596)
56473         - fix http://bugs.webkit.org/show_bug.cgi?id=10010
56474           <rdar://problem/4822935> REGRESSION: Pressing Return with unconfirmed text in
56475           Hangul inserts carriage return (10010)
56477         - fix http://bugs.webkit.org/show_bug.cgi?id=12531
56478           <rdar://problem/4975126> REGRESSION: Inline text input types repeated keys in
56479           latest nightly (r19336) (12531)
56481         - fix http://bugs.webkit.org/show_bug.cgi?id=12539
56482           <rdar://problem/4975130> REGRESSION: Pressing Backspace while in inline input
56483           area moves to the previous page in history (12539)
56485         This area still needs work because keypress events are being sent for all the
56486         events before they go to the input methods, and it seems that this is not
56487         compatible with what other browsers do and with what sites assume. That's covered
56488         by this bug:
56490             http://bugs.webkit.org/show_bug.cgi?id=10871
56491             <rdar://problem/4823129> REGRESSION: IME key events different in nightly (10871)
56493         which is still open.
56495         * bindings/objc/ExceptionHandlers.h: Remove selectRange helper that doesn't really
56496         belong here, and also isn't needed since the callers don't want to raise ObjC
56497         exceptions.
56498         * bindings/objc/ExceptionHandlers.mm: Ditto. Also removed unneeded external globals
56499         that aren't exported anyway and unneeded includes.
56501         * bridge/EditorClient.h: Added Mac-specific function, markedTextAbandoned. Long term
56502         this might move into platform instead, but it's fine to have it on the client for now
56503         as long as it doesn't cause trouble for platforms other than Mac.
56505         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Since
56506         all the event handling code in this function is intended to run on the node itself,
56507         not parent nodes, check and do nothing if this event is bubbling up from another
56508         node. Added code to call a function on EventHandler for default handling of text
56509         input events.
56511         * dom/KeyboardEvent.h:
56512         * dom/KeyboardEvent.cpp: (WebCore::findKeyboardEvent): Added. Just like the
56513         findUIEventWithKeyState function, but specific to keyboard events.
56515         * dom/TextEvent.h: Added isLineBreak and isBackTab flags so that we can carry
56516         additional information about what a text input event is trying to do, but still
56517         go through the DOM event machinery.
56518         * dom/TextEvent.cpp: Ditto.
56520         * editing/Editor.h:
56521         * editing/Editor.cpp:
56522         (WebCore::Editor::handleKeyPress): Removed unneeded check of isCaretOrRange, since
56523         isContentEditable already checks that.
56524         (WebCore::Editor::canEdit): Ditto.
56525         (WebCore::Editor::canEditRichly): Ditto.
56526         (WebCore::Editor::canPaste): Changed to call canEdit for brevity.
56527         (WebCore::Editor::replaceSelectionWithText): Changed to take a const String&.
56528         (WebCore::Editor::shouldInsertText): Ditto.
56529         (WebCore::hasEditableSelection): Removed unneeded check of isCaretOrRange, since
56530         isContentEditable already checks that.
56531         (WebCore::Editor::Editor): Initialize the new m_ignoreMarkedTextSelectionChange
56532         flag. Moved here from WebHTMLView.
56533         (WebCore::Editor::insertText): Moved most of the code from -[WebHTMLView insertText:]
56534         here, since this needs to be done in response to a text input event and we don't want
56535         to go back over the WebKit side for that.
56536         (WebCore::Editor::insertLineBreak): Added. Moved here from -[WebHTMLView insertLineBreak:]
56537         for the same reason -- needs to be done in response to text input events.
56538         (WebCore::Editor::insertParagraphSeparator): Ditto.
56539         (WebCore::Editor::selectMarkedText): Added. Used by insertText.
56540         (WebCore::Editor::discardMarkedText): Added. Used by insertText.
56541         (WebCore::Editor::unmarkText): Added. Used by insertText.
56542         * editing/mac/EditorMac.mm:
56543         (WebCore::Editor::unmarkText): Added. Used by insertText.
56545         * html/HTMLInputElement.cpp:
56546         (WebCore::HTMLInputElement::canHaveSelection): Changed to use isTextField to avoid repeating
56547         the switch statement.
56548         (WebCore::HTMLInputElement::selectionStart): Ditto.
56549         (WebCore::HTMLInputElement::selectionEnd): Ditto.
56550         (WebCore::HTMLInputElement::setSelectionStart): Ditto.
56551         (WebCore::HTMLInputElement::setSelectionEnd): Ditto.
56552         (WebCore::HTMLInputElement::select): Ditto.
56553         (WebCore::HTMLInputElement::setSelectionRange): Ditto.
56554         (WebCore::HTMLInputElement::createRenderer): Resorted cases alphaebtically.
56555         (WebCore::HTMLInputElement::defaultEventHandler): Added code to make hitting return cause the
56556         form to be submitted when it comes through as a text input event. This is now the normal case
56557         on Macintosh, because enter key presses normally turn into this. In addition, change the other
56558         event handling to run only after trying the base defaultEventHandler. That makes the key
56559         handling done in EventTargetNode take precedence over the event handling here for editable text
56560         fields, which is what we want. This gets rid of the need for the hack where we check
56561         inputManagerHasMarkedText and suppress the handling of the enter key.
56563         * page/EventHandler.h: Removed unneeded includes. Moved EventHandlerDragState down into the
56564         private part of the class. Changed sendContextMenuEvent to take a const&. Added new
56565         handleTextInputEvent and defaultTextInputEventHandler functions. Made eventLoopHandleMouseUp
56566         and eventLoopHandleMouseDragged private. Added private defaultTabEventHandler function.
56567         * page/EventHandler.cpp:
56568         (WebCore::EventHandler::sendContextMenuEvent): Changed parameter to be a const&.
56569         (WebCore::EventHandler::defaultKeyboardEventHandler): Rearranged things so that the key bindings
56570         handling in handleKeyPress comes before special tab event handling. In cases where the tab turns
56571         into text to insert, we now handle it in the text input event handler.
56572         (WebCore::EventHandler::handleTextInputEvent): Added. Creates and dispatches a text input event.
56573         (WebCore::EventHandler::defaultTextInputEventHandler): Added. Inserts text, but has special cases
56574         for the tab and newline character cases.
56575         (WebCore::EventHandler::defaultTabEventHandler): Added. Shared by the tab-handling code in
56576         the keyboard event and text input event handlers.
56577         * page/mac/EventHandlerMac.mm: Tweak formatting, remove some unused functions.
56579         * page/FocusController.h: Removed unnneded includes and forwards, and added an overload of
56580         advanceFocus that takes a FocusDirection parameter.
56581         * page/FocusController.cpp: (WebCore::FocusController::advanceFocus): Changed to allow a 0 for
56582         the event pointer. Also added a version where the direction is passed explicitly, to be used
56583         for cases where we want to tab backward even if the event doesn't have a shift modifier key set.
56585         * platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to EditorClient.
56586         This should really probably just use 0 for the EditorClient.
56588         * WebCore.exp: Update both for newly used and no-longer-used entry points.
56590         * page/mac/WebCoreFrameBridge.h:
56591         * page/mac/WebCoreFrameBridge.mm: Removed two unused methods.
56593 2007-02-12  Antti Koivisto  <antti@apple.com>
56595         Reviewed by Darin.
56597         - fixed Imagemap not clickable in www.toptenbooks.net/
56598         http://bugs.webkit.org/show_bug.cgi?id=12738
56599         
56600         Make imagemap names case insensitive in HTML mode
56602         * dom/Document.cpp:
56603         (WebCore::Document::getImageMap):
56604         * html/HTMLMapElement.cpp:
56605         (WebCore::HTMLMapElement::parseMappedAttribute):
56607 2007-02-12  Maciej Stachowiak  <mjs@apple.com>
56609         Reviewed by Antti.
56611         - fixed <rdar://problem/4928675> REGRESSION: Crash in CGBlt_copyBytes under WebCore::Font::drawGlyphs (12083)
56612         http://bugs.webkit.org/show_bug.cgi?id=12083
56613         
56614         Test: fast/text/text-shadow-extreme-value.html
56616         * platform/graphics/cg/GraphicsContextCG.cpp:
56617         (WebCore::GraphicsContext::setShadow): Clamp shadow value to 1000px, anything more seems to 
56618         make CG unhappy.
56620 2007-02-11  Brady Eidson <beidson@apple.com>
56622         Reviewed by Maciej.
56624         First in what will be a series of HistoryItem enhancements to help debugging
56626         * history/HistoryItem.cpp:
56627         (WebCore::HistoryItem::showTree):
56628         (WebCore::HistoryItem::showTreeWithIndent):
56629         (showTree): Outside of WebCore namespace, and extern "C" - to make even the 
56630           DWARF debugger able to find it...  *sigh* 
56631         * history/HistoryItem.h:
56633 2007-02-11  Eric Seidel  <eric@webkit.org>
56635         Reviewed by Anders.
56637         - fixed <rdar://problem/4975133> ASSERT failure and crash right-clicking on image in SVG use test
56638         http://bugs.webkit.org/show_bug.cgi?id=12580
56639         
56640         Test: svg/cust/use-events-crash.svg
56642         * bindings/js/kjs_dom.cpp:
56643         (KJS::toJS):
56644         * ksvg2/svg/SVGElementInstance.cpp:
56645         (WebCore::SVGElementInstance::toNode):
56646         * ksvg2/svg/SVGElementInstance.h:
56648 2007-02-11  Mitz Pettel  <mitz@webkit.org>
56650         Reviewed by Maciej.
56652         - fix http://bugs.webkit.org/show_bug.cgi?id=10144
56653           REGRESSION: Reproducible assertion failure in DeleteSelectionCommand::fixupWhitespace()
56655         Test: fast/text/delete-hard-break-character.html
56657         The bug was caused by not updating a line whose line break object and offset
56658         has been deleted. When deleting text, all lines containing the deleted text
56659         are marked dirty. However, if the first character being deleted is a newline
56660         which serves as a hard line break for the previous line, then that line will
56661         not be marked, and since it will be a clean line ending with a line break,
56662         relayout will begin at the next line. The fix is to check for this when
56663         determining where to relayout from. 
56665         * rendering/bidi.cpp:
56666         (WebCore::RenderBlock::determineStartPosition): Changed the condition for
56667         including the last clean line in relayout to include the case where the
56668         last clean line ends with a line break, but that line break is a newline that
56669         has been deleted.
56671 2007-02-12  Antti Koivisto  <antti@apple.com>
56673         Reviewed by Maciej.
56674         
56675         REGRESSION: Google Calendar cell highlight misplaced
56676         http://bugs.webkit.org/show_bug.cgi?id=12687
56677         
56678         Make offsetLeft/offsetTop/offsetParent behavior match Firefox.
56680         * rendering/RenderObject.cpp:
56681         (WebCore::RenderObject::offsetLeft):
56682         (WebCore::RenderObject::offsetTop):
56683         (WebCore::RenderObject::offsetParent):
56685 2007-02-10  Antti Koivisto  <antti@apple.com>
56687         Reviewed by Maciej.
56689         - fixed REGRESSION: No day/week scrollbar in Google Calendar
56690         http://bugs.webkit.org/show_bug.cgi?id=11985
56692         Make sure overflow:auto scrollbars are always enabled. If they were overflow:scroll
56693         and dynamically changed to auto they might still be disabled.
56695         * rendering/RenderLayer.cpp:
56696         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
56698 2007-02-11  Alexey Proskuryakov  <ap@webkit.org>
56700         Reviewed by Hyatt.
56702         http://bugs.webkit.org/show_bug.cgi?id=12581
56703         XPath //title shouldn't match <title> in XHTML
56705         Test: fast/xpath/ensure-null-namespace.xhtml
56707         * xml/XPathStep.cpp:
56708         (WebCore::XPath::Step::nodeTestMatches): Only let a null namespace match any for HTML.
56710 2007-02-10  Alexey Proskuryakov  <ap@webkit.org>
56712         Reviewed by Adam.
56714         http://bugs.webkit.org/show_bug.cgi?id=12701
56715         REGRESSION: After javascript, onChange not triggered when selecting same option
56717         * html/HTMLSelectElement.cpp:
56718         (WebCore::HTMLSelectElement::setSelectedIndex): Remember m_lastOnChangeIndex value,
56719         as it can change from setSelected() now.
56720         (WebCore::HTMLSelectElement::notifyOptionSelected): Update m_lastOnChangeIndex.
56722         * manual-tests/select-onchange-after-js.html: Added. Also tests for bug 11402.
56724 2007-02-10  David Carson  <dacarson@gmail.com>`
56726         Reviewed by Maciej.
56728         Manual tests for http://bugs.webkit.org/show_bug.cgi?id=12636
56729         Call different Java methods that take a variety of Array parameters
56730         from Javascript, passing a Javascript array.
56732         * manual-tests/liveconnect-applet-array-parameters.html: Added.
56733         * manual-tests/resources/ArrayParameterTestApplet.class: Added.
56734         * manual-tests/resources/ArrayParameterTestApplet.java: Added.
56736 2007-02-10  Alexey Proskuryakov  <ap@webkit.org>
56738         Reviewed by Maciej.
56740         http://bugs.webkit.org/show_bug.cgi?id=12724
56741         Crash when enumerating XPath namespace axis
56743         * xml/XPathStep.cpp:
56744         (WebCore::XPath::Step::nodesInAxis): Namespace axis enumeration was broken in that it crashed, and also in that
56745         it returned attribute nodes instead of XPath namespace ones. Removed it altogether.
56747 2007-02-10  Mitz Pettel  <mitz@webkit.org>
56749         Reviewed by Adam.
56751         - fix http://bugs.webkit.org/show_bug.cgi?id=12565
56752           ASSERTION failure on some declarative animations <rdar://problem/4975132>
56754         * ksvg2/svg/SVGAnimationElement.cpp:
56755         (WebCore::parseValues): Changed the string length math to avoid truncating
56756         the last character of each value.
56757         * manual-tests/svg-animation-parseValues.svg: Added.
56759 2007-02-10  Mitz Pettel  <mitz@webkit.org>
56761         Reviewed by Adam.
56763         - fix http://bugs.webkit.org/show_bug.cgi?id=11621
56764           REGRESSION (Native slider): slider thumb not updated when the mouse is dragged/released out of range
56766         No automated test case because dumping the render tree updates layer positions anyway.
56768         * manual-tests/slider-thumb-tracking.html: Added.
56769         * rendering/RenderSlider.cpp:
56770         (WebCore::RenderSlider::setCurrentPosition): Added call to updateLayerPosition()
56771         for the thumb's layer.
56773 2007-02-09  Brady Eidson <beidson@apple.com>
56775         Reviewed by Maciej
56777         <rdar://problem/4965133> WebKit sends file:// url referrers
56779         * loader/SubresourceLoader.cpp:
56780         (WebCore::SubresourceLoader::create): In SubresourceLoader::create(), we make a copy of the original request
56781         to use for the load.  We then call FrameLoader::canLoad() which tells us if we should hide the referer.  Before 
56782         this fix if it said to hide the referrer, we would simply not apply a new referrer to our copy of the request.
56783         But if the original request already had a referrer, so did our copy.  We simply have to clear the referrer from
56784         the copied request.
56786 2007-02-10  Maciej Stachowiak  <mjs@apple.com>
56788         Reviewed by me, patch from Feng Qian (cleaned up by me some).
56790         - fixed <rdar://problem/4988091> objects attached to Window not cleared (memory leak)
56791         
56792         Test case: fast/dom/Window/window-appendages-cleared.html
56794         * bindings/js/kjs_window.cpp:
56795         (KJS::Window::clearHelperObjectProperties):
56796         (KJS::Window::clear):
56797         * bindings/js/kjs_window.h:
56799 2007-02-09  Brady Eidson  <beidson@apple.com>
56801         Reviewed by Tim Hatcher
56803         <rdar://problem/4985497> - Plugs a potential null DocumentLoader deref when 
56804         transitioning out of the Bookmarks View
56806         * loader/FrameLoader.cpp:
56807         (WebCore::FrameLoader::recursiveGoToItem): add a null check
56809 2007-02-09  Beth Dakin  <bdakin@apple.com>
56811         Rubber-stamped by John . . . and Adam.
56813         * page/ContextMenuController.cpp:
56814         (WebCore::ContextMenuController::contextMenuItemSelected): Missing 
56815         break.
56817 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56819         Reviewed by darin
56821         <rdar://problem/4975120>
56822         REGRESSION: double-cursor after switching window away/back (11770)
56823         <http://bugs.webkit.org/show_bug.cgi?id=11328>
56824         Gmail Editor: Caret can simultaneously appear in both the TO: and message body fields
56826         * page/mac/WebCoreFrameBridge.h: Removed two unused methods
56827         left over from the old form control implementation.
56829 2007-02-09  John Sullivan  <sullivan@apple.com>
56831         * rendering/bidi.cpp:
56832         (WebCore::bidiNext):
56833         At Darin's suggestion, moved the "next = 0" line from my previous patch to the start of the loop body
56835 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56837         Reviewed by john
56838         
56839         <rdar://problem/4960116>
56840         REGRESSION: Nightly Safari crashes in WebCore::SelectionController::xPosForVerticalArrowNavigation (12416)
56842         * editing/SelectionController.cpp:
56843         (WebCore::SelectionController::xPosForVerticalArrowNavigation):
56844         Null check.  VisiblePosition creation can fail if a node that 
56845         contains the selection was made invisible after the selection 
56846         was made and before this function is called during a selection 
56847         modification operation.
56849 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56851         Reviewed by john
56852         
56853         <rdar://problem/4983858>
56854         REGRESSION: In a new mail message, attempting to select a single word causes the selection to extend to the previous line
56856         * editing/TextIterator.cpp:
56857         (WebCore::SimplifiedBackwardsTextIterator::exitNode):
56858         We recently split shouldEmitNewlineForNode into
56859         shouldEmitNewline{Before, After}Node, so this function now
56860         needs an implementation that is different from
56861         SimplifiedBackwardsTextIterator::handleNonTextNode.  The
56862         difference is that we must call shouldEmit*BeforeNode
56863         instead of shouldEmit*AfterNode since we are a) exiting
56864         nodes and b) moving backward.
56866 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56868         Reviewed by john
56870         <rdar://problem/4916541>
56871         Some of the selection isn't preserved during an Indent opreration
56873         * editing/IndentOutdentCommand.cpp:
56874         (WebCore::indexForVisiblePosition): Added.
56875         (WebCore::IndentOutdentCommand::indentRegion): Use rangeLength
56876         and rangeFromLocationAndLength to restore the selection after
56877         the repeated moveParagraph calls necessary to perform indent are
56878         finished.
56880 2007-02-09  John Sullivan  <sullivan@apple.com>
56882         Reviewed by Kevin Decker
56883         
56884         - fixed <rdar://problem/4960095> REPRODUCIBLE HANG: WebKit freezes when printing as PDF
56885           a certain kind of code (12449)
56887         No test case because I don't know how to make the bug occur without printing.
56889         * rendering/bidi.cpp:
56890         (WebCore::bidiNext):
56891         reset loop's "next" variable after using it; we were setting "current" to the same value
56892         of "next" each subsequent time through the loop, which is not helpful.
56894 2007-02-09  Darin Adler  <darin@apple.com>
56896         Reviewed by Adele.
56898         - Add TextEvent to the DOM (based on the proposed DOM level 3)
56899           to be used to fix some international input bugs soon.
56900           At this point, we don't send any text events.
56902         - Remove some obsolete files.
56904         * CMakeLists.txt:
56905         * WebCore.pro:
56906         * WebCore.xcodeproj/project.pbxproj:
56907         * WebCoreSources.bkl:
56908         Add new files, remove obsolete files.
56910         * DerivedSources.make: Add TextEvent to the Objective-C and JavaScript bindings lists.
56911         * WebCore.exp: Export DOMTextEvent Objective-C wrapper.
56913         * bindings/js/kjs_events.cpp: (KJS::toJS): Added TextEvent to the list of Event subclasses
56914         so we make the right kind of JS wrapper.
56915         * bindings/objc/DOMEvents.mm: (+[DOMEvent _eventWith:]): Same thing, for Objective-C.
56917         * bindings/objc/DOMInternal.h: Added DOMTextEventInternal.h.
56919         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::hasFeature):
56920         Added "TextEvents", "3.0" to the list of things we'll answer true for
56921         (as specified in the DOM Level 3 documentation).
56922         This isn't so great until we actually send textInput events, but that's coming soon.
56924         * dom/Document.cpp: (WebCore::Document::createEvent): Add "TextEvent" as a way to make
56925         a TextEvent (as specified in the DOM Level 3 documentation).
56927         * dom/Event.h:
56928         * dom/Event.cpp: (WebCore::Event::isTextEvent): Added virtual function to be used
56929         for runtime type checking of Event objects (as for other event types).
56931         * dom/TextEvent.cpp: Added.
56932         * dom/TextEvent.h: Added.
56933         * dom/TextEvent.idl: Added.
56935         * platform/mac/WebCoreWidgetHolder.h: Removed.
56936         * rendering/CounterListItem.h: Removed.
56937         * rendering/CounterResetNode.cpp: Removed.
56938         * rendering/CounterResetNode.h: Removed.
56940 2007-02-09  Anders Carlsson  <acarlsson@apple.com>
56942         Reviewed by Geoff.
56944         <rdar://problem/4816376> 
56945         REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
56946         
56947         The bug was that the NNW policy delegate never calls back on the policy listener so we'll try to do a load
56948         while there's a policy decision underway. The extra call to setPolicyDocumentLoader would cause a detached (and deallocated)
56949         WebDataSource to be reattached and thus causing a crash.
56950         
56951         * loader/FrameLoader.cpp:
56952         (WebCore::FrameLoader::load):
56953         Remove extra call to setPolicyDocumentLoader.
56955 2007-02-09  Beth Dakin  <bdakin@apple.com>
56957         Reviewed by Darin.
56959         Fix for <rdar://problem/4674537> REGRESSION: Adobe Acrobat 8 - Text 
56960         blinks when mouse is moved, and is invisible otherwise
56962         Acrobat 8 was relying on a WebKit bug that was fixed about a year 
56963         ago with r12753. The bug was that we would not reload a page if the 
56964         source of an iframe was set to the same value it already was. Now 
56965         that we have fixed the bug, Acrobat constantly reloads their EULA, 
56966         making it blinky and impossible to read. 
56968         No layout test since the fix is to add an Acrobat-specific quirk.
56970         * WebCore.exp:
56971         * html/HTMLFrameElementBase.cpp:
56972         (WebCore::HTMLFrameElementBase::setLocation): If the new url is the 
56973         same as the old one and we are honoring the Acrobat quirk, don't do 
56974         anything.
56975         * page/Settings.cpp:
56976         (WebCore::Settings::Settings):
56977         (WebCore::Settings::setNeedsAcrobatFrameReloadingQuirk):
56978         * page/Settings.h:
56979         (WebCore::Settings::needsAcrobatFrameReloadingQuirk):
56981 2007-02-09  Brady Eidson  <beidson@apple.com>
56983         Rubberstamped by Dave Harrison
56985         Disable the thread-check assertion in WebCore, as well as Webkit
56987         * WebCore.xcodeproj/project.pbxproj:
56989 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
56991         Reviewed by Geoff.
56993         No need to pause timeout checks anymore.
56994         
56995         * bindings/js/kjs_window.cpp:
56996         (KJS::WindowFunc::callAsFunction):
56998 2007-02-09  John Sullivan  <sullivan@apple.com>
57000         Reviewed by Beth
57001         
57002         - WebCore part of fix for radar 4939636, problems with context menu items and binaries linked
57003           against WebKit 2.0.
57005         * platform/ContextMenuItem.h:
57006         (WebCore::):
57007         Tweaked comment; bumped enum value for new SPI tags to avoid conflict with pre-3.0 SPI tag values.
57009 2007-02-09  Nicholas Shanks  <webkit@nickshanks.com>
57011         Reviewed by Dave Hyatt.
57013         Removed broken recognition of :last-* and :only-* selectors
57015         * css/CSSGrammar.y:
57016         * css/CSSSelector.cpp:
57017         (WebCore::CSSSelector::extractPseudoType):
57018         * css/CSSSelector.h:
57019         (WebCore::CSSSelector::):
57020         * css/cssstyleselector.cpp:
57021         (WebCore::CSSStyleSelector::checkOneSelector):
57023 2007-02-09  Maciej Stachowiak  <mjs@apple.com>
57025         Reviewed by Mark.
57027         <rdar://problem/4980176>
57029         * page/Frame.cpp:
57030         (WebCore::Frame::pageDestroyed): Since this frame is getting
57031         disconnected from its page, ensure it is not the focus node.
57033 2007-02-09  Krzysztof  <kkowalczyk@gmail.com>
57035         Reviewed by Maciej.
57037         gdklauncher crashes when compiled with NDEBUG defined.
57039         * Projects/gdk/webcore-gdk.bkl:
57041 2007-02-09  Maciej Stachowiak  <mjs@apple.com>
57043         Reviewed by Mitz.
57045         <rdar://problem/4971224> REGRESSION: ASSERT in WebCore with Mail (12491)
57046         http://bugs.webkit.org/show_bug.cgi?id=12491
57048         No test case. Not testable since there is no way to do substitute
57049         data loads from layout tests.
57050         
57051         * loader/MainResourceLoader.cpp:
57052         (WebCore::MainResourceLoader::continueAfterContentPolicy): Don't dispatch data load
57053         callback when loading empty data.
57055 2007-02-09  Mark Rowe  <mrowe@apple.com>
57057         Reviewed by Maciej.
57059         http://bugs.webkit.org/show_bug.cgi?id=12705
57060         REGRESSION: Crash with user stylesheet set
57062         Allow the Frame::canLoad check to skipped so that user stylesheets can be loaded in remote documents.
57064         * ChangeLog:
57065         * loader/DocLoader.cpp:
57066         (WebCore::DocLoader::requestCSSStyleSheet): Skip canLoad check if this is a user stylesheet.
57067         (WebCore::DocLoader::requestUserCSSStyleSheet):
57068         (WebCore::DocLoader::requestResource): Allow canLoad check to be skipped.
57069         * loader/DocLoader.h:
57070         * page/Frame.cpp:
57071         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
57073 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57075         Reviewed by Darin.
57077         Linux/gdk build fixes.
57079         * Projects/gdk/webcore-gdk.bkl: Account for file renaming.
57080         * platform/gdk/KeyEventGdk.cpp: Make gdk's tab key recognized as tab so that
57081         keyboard link walking works on gdk.
57082         (WebCore::keyIdentifierForGdkKeyCode):
57084 2007-02-08  Adele Peterson  <adele@apple.com>
57086         Reviewed by Brady.
57088         Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
57089         <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
57091         When a frame's window was focused, the page didn't get updated about the new frame getting focus.
57092         This was causing handleKeyPress to fail because it kept getting a selection for the wrong frame (which wasn't editable).
57094         Test: fast/frames/iframe-window-focus.html
57096         * page/Frame.cpp:
57097         (WebCore::Frame::focusWindow):
57098         (WebCore::Frame::unfocusWindow):
57099         * page/Frame.h:
57100         * page/mac/FrameMac.mm:
57101         (WebCore::FrameMac::focusWindow):
57102         (WebCore::FrameMac::unfocusWindow):
57104 2007-02-08  Adele Peterson  <adele@apple.com>
57106         Reviewed by Brady.
57108         Fix for http://bugs.webkit.org/show_bug.cgi?id=12480
57109         <rdar://problem/4971222> REGRESSION (NativeListBox): Deselecting option causes list to jump to top
57111         Test: fast/forms/listbox-deselect-scroll.html
57113         * html/HTMLSelectElement.cpp:
57114         (WebCore::HTMLSelectElement::activeSelectionStartListIndex): Added.  Returns the index for the active selection.  If there is no active selection,
57115          it returns the first selected index.
57116         (WebCore::HTMLSelectElement::activeSelectionEndListIndex): Added.  If there is no active selection, it returns the last selected index.
57117         * html/HTMLSelectElement.h:
57118         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::scrollToRevealSelection): Instead of using the first and last selected indices,
57119           use the active selection indices to determine which item to reveal.  This way, when you're selecting with the keyboard, or the mouse,
57120           no unnecessary scrolling will occur if the end of your active selection is already visible.
57122 2007-02-08  Adele Peterson  <adele@apple.com>
57124         Reviewed by Hyatt.
57126         Fix for <rdar://problem/4963411> Items of SELECT element are incorrectly highlighted when display:block is set
57128         Test: fast/forms/select-block-background.html
57130         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
57131           Paint the item backgrounds during the PaintPhaseChildBlockBackground or PaintPhaseChildBlockBackgrounds phase.
57133 2007-02-08  Mitz Pettel  <mitz@webkit.org>
57135         Reviewed by Adele.
57137         - fix http://bugs.webkit.org/show_bug.cgi?id=11047
57138           REGRESSION: Empty options cause the entire select to collapse
57139         
57140         Test: fast/forms/select-empty-option-height.html
57142         - fix http://bugs.webkit.org/show_bug.cgi?id=10783
57143           REGRESSION (r16044): Clicking a popup changes layout around it
57145         * rendering/RenderMenuList.cpp:
57146         (WebCore::RenderMenuList::setText): If the option text is empty, use a RenderBR
57147         as inner text, to ensure that the inner div has line height.
57149 2007-02-08  Geoffrey Garen  <ggaren@apple.com>
57151         Reviewed by Beth Dakin.
57153         Added a hard counter for SubresourceLoaders because the leaks tool now
57154         ignores them.
57155         
57156         * loader/SubresourceLoader.cpp:
57157         (WebCore::):
57158         (WebCore::SubresourceLoaderCounter::~SubresourceLoaderCounter):
57159         (WebCore::SubresourceLoader::SubresourceLoader):
57160         (WebCore::SubresourceLoader::~SubresourceLoader):
57161         * page/Frame.cpp: Removed unnecessary #define
57163 2007-02-08  Geoffrey Garen  <ggaren@apple.com>
57165         Reviewed by Beth Dakin.
57167         Fixed <rdar://problem/4982374> CSSComputedStyleDeclaration::getPropertyCSSValue 
57168         leak reported by buildbot
57169         
57170         The leak was a typo: "new" instead of "return new". I also generously
57171         deployed RefPtr in places that were holding ref-counted objects in
57172         bare pointers.
57174         * css/CSSComputedStyleDeclaration.cpp:
57175         (WebCore::valueForShadow):
57176         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
57178 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57180         Reviewed by Adam Roben.
57182         Linux/gdk build fixes.
57184         * platform/gdk/EditorClientGdk.cpp: Added. Based on qt version.
57185         (WebCore::EditorClientGdk::shouldDeleteRange):
57186         (WebCore::EditorClientGdk::shouldShowDeleteInterface):
57187         (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
57188         (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
57189         (WebCore::EditorClientGdk::spellCheckerDocumentTag):
57190         (WebCore::EditorClientGdk::shouldBeginEditing):
57191         (WebCore::EditorClientGdk::shouldEndEditing):
57192         (WebCore::EditorClientGdk::shouldInsertText):
57193         (WebCore::EditorClientGdk::shouldApplyStyle):
57194         (WebCore::EditorClientGdk::didBeginEditing):
57195         (WebCore::EditorClientGdk::respondToChangedContents):
57196         (WebCore::EditorClientGdk::didEndEditing):
57197         (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
57198         (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
57199         (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
57200         (WebCore::EditorClientGdk::isEditable):
57201         (WebCore::EditorClientGdk::registerCommandForUndo):
57202         (WebCore::EditorClientGdk::registerCommandForRedo):
57203         (WebCore::EditorClientGdk::clearUndoRedoOperations):
57204         (WebCore::EditorClientGdk::canUndo):
57205         (WebCore::EditorClientGdk::canRedo):
57206         (WebCore::EditorClientGdk::undo):
57207         (WebCore::EditorClientGdk::redo):
57208         (WebCore::EditorClientGdk::shouldInsertNode):
57209         (WebCore::EditorClientGdk::pageDestroyed):
57210         (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
57211         (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
57212         (WebCore::EditorClientGdk::toggleGrammarChecking):
57213         (WebCore::EditorClientGdk::handleKeyPress):
57214         (WebCore::EditorClientGdk::EditorClientGdk):
57215         (WebCore::EditorClientGdk::setPage):
57216         * platform/gdk/EditorClientGdk.h: Added. Ditto.
57217         * platform/gdk/FrameGdk.cpp: Add exitAfterLoading and dumpRenderTreeAfterLoading
57218         as small debugging features. Remove FrameGdkClient as no other platform has Frame*Client
57219         anymore. Adjust for new APIs.
57220         (WebCore::FrameGdk::FrameGdk):
57221         (WebCore::FrameGdk::onDidFinishLoad):
57222         (WebCore::FrameGdk::dumpRenderTree):
57223         (WebCore::FrameGdk::keyPress):
57224         (WebCore::FrameGdk::handleGdkEvent):
57225         (WebCore::FrameGdk::focusWindow):
57226         (WebCore::FrameGdk::unfocusWindow):
57227         (WebCore::FrameGdk::getObjectInstanceForWidget):
57228         (WebCore::FrameGdk::getEmbedInstanceForWidget):
57229         (WebCore::FrameGdk::bindingRootObject):
57230         (WebCore::FrameGdk::print):
57231         (WebCore::FrameGdk::getAppletInstanceForWidget):
57232         (WebCore::FrameGdk::issueCutCommand):
57233         (WebCore::FrameGdk::issueCopyCommand):
57234         (WebCore::FrameGdk::issuePasteCommand):
57235         (WebCore::FrameGdk::issueTransposeCommand):
57236         (WebCore::FrameGdk::issuePasteAndMatchStyleCommand):
57237         (WebCore::FrameGdk::markedTextRange):
57238         (WebCore::FrameGdk::shouldChangeSelection):
57239         (WebCore::FrameGdk::respondToChangedSelection):
57240         (WebCore::FrameGdk::mimeTypeForFileName):
57241         * platform/gdk/FrameGdk.h: Ditto.
57242         (WebCore::FrameGdk::setExitAfterLoading):
57243         (WebCore::FrameGdk::exitAfterLoading):
57244         (WebCore::FrameGdk::setDumpRenderTreeAfterLoading):
57245         (WebCore::FrameGdk::dumpRenderTreeAfterLoading):
57246         (WebCore::GdkFrame):
57247         * platform/gdk/TemporaryLinkStubs.cpp: Adjust to new APIs. Small cleanups.
57248         (FrameView::updateBorder):
57249         (Widget::setEnabled):
57250         (Widget::isEnabled):
57251         (Widget::enableFlushDrawing):
57252         (Widget::removeFromParent):
57253         (Widget::paint):
57254         (Widget::setIsSelected):
57255         (Widget::invalidate):
57256         (Widget::invalidateRect):
57257         (PlatformMouseEvent::PlatformMouseEvent):
57258         (WebCore::findWordBoundary):
57259         (ChromeClientGdk::chromeDestroyed):
57260         (ChromeClientGdk::closeWindowSoon):
57261         (ChromeClientGdk::canTakeFocus):
57262         (ChromeClientGdk::takeFocus):
57263         (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
57264         (ChromeClientGdk::addMessageToConsole):
57265         (ChromeClientGdk::runBeforeUnloadConfirmPanel):
57266         (ChromeClientGdk::runJavaScriptAlert):
57267         (ChromeClientGdk::runJavaScriptConfirm):
57268         (ChromeClientGdk::runJavaScriptPrompt):
57269         (ChromeClientGdk::setStatusbarText):
57270         (ChromeClientGdk::shouldInterruptJavaScript):
57271         (WebCore::inputElementAltText):
57272         (WebCore::resetButtonDefaultLabel):
57273         (WebCore::searchableIndexIntroduction):
57274         (WebCore::fileButtonChooseFileLabel):
57275         (WebCore::fileButtonNoFileSelectedLabel):
57276         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
57277         (WebCore::contextMenuItemTagDownloadLinkToDisk):
57278         (WebCore::contextMenuItemTagCopyLinkToClipboard):
57279         (WebCore::contextMenuItemTagOpenImageInNewWindow):
57280         (WebCore::contextMenuItemTagDownloadImageToDisk):
57281         (WebCore::contextMenuItemTagCopyImageToClipboard):
57282         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
57283         (WebCore::contextMenuItemTagCopy):
57284         (WebCore::contextMenuItemTagGoBack):
57285         (WebCore::contextMenuItemTagGoForward):
57286         (WebCore::contextMenuItemTagStop):
57287         (WebCore::contextMenuItemTagReload):
57288         (WebCore::contextMenuItemTagCut):
57289         (WebCore::contextMenuItemTagPaste):
57290         (WebCore::contextMenuItemTagNoGuessesFound):
57291         (WebCore::contextMenuItemTagIgnoreSpelling):
57292         (WebCore::contextMenuItemTagLearnSpelling):
57293         (WebCore::contextMenuItemTagSearchWeb):
57294         (WebCore::contextMenuItemTagLookUpInDictionary):
57295         (WebCore::contextMenuItemTagOpenLink):
57296         (WebCore::contextMenuItemTagIgnoreGrammar):
57297         (WebCore::contextMenuItemTagSpellingMenu):
57298         (WebCore::contextMenuItemTagShowSpellingPanel):
57299         (WebCore::contextMenuItemTagCheckSpelling):
57300         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
57301         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
57302         (WebCore::contextMenuItemTagFontMenu):
57303         (WebCore::contextMenuItemTagBold):
57304         (WebCore::contextMenuItemTagItalic):
57305         (WebCore::contextMenuItemTagUnderline):
57306         (WebCore::contextMenuItemTagOutline):
57307         (WebCore::contextMenuItemTagWritingDirectionMenu):
57308         (WebCore::contextMenuItemTagDefaultDirection):
57309         (WebCore::contextMenuItemTagLeftToRight):
57310         (WebCore::contextMenuItemTagRightToLeft):
57311         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
57312         (PlugInInfoStore::pluginCount):
57313         (WebCore::PlugInInfoStore::supportsMIMEType):
57314         (WebCore::refreshPlugins):
57315         (SearchPopupMenu::saveRecentSearches):
57316         (SearchPopupMenu::loadRecentSearches):
57317         (SearchPopupMenu::SearchPopupMenu):
57318         (Path::apply):
57319         (PlatformScrollbar::PlatformScrollbar):
57320         (PlatformScrollbar::~PlatformScrollbar):
57321         (PlatformScrollbar::width):
57322         (PlatformScrollbar::height):
57323         (PlatformScrollbar::setEnabled):
57324         (PlatformScrollbar::paint):
57325         (PlatformScrollbar::updateThumbPosition):
57326         (PlatformScrollbar::updateThumbProportion):
57327         (PlatformScrollbar::setRect):
57328         (ResourceHandle::willLoadFromCache):
57329         (ResourceHandle::loadsBlocked):
57330         (ResourceHandle::loadResourceSynchronously):
57331         (PageCache::close):
57332         (Editor::ignoreSpelling):
57333         (Editor::learnSpelling):
57334         (Editor::isSelectionUngrammatical):
57335         (Editor::isSelectionMisspelled):
57336         (Editor::guessesForMisspelledSelection):
57337         (Editor::guessesForUngrammaticalSelection):
57338         (Editor::markMisspellingsAfterTypingToPosition):
57339         (Editor::newGeneralClipboard):
57340         (Pasteboard::generalPasteboard):
57341         (Pasteboard::writeSelection):
57342         (Pasteboard::writeURL):
57343         (Pasteboard::clear):
57344         (Pasteboard::canSmartReplace):
57345         (Pasteboard::documentFragment):
57346         (Pasteboard::plainText):
57347         (Pasteboard::Pasteboard):
57348         (Pasteboard::~Pasteboard):
57349         (ContextMenu::ContextMenu):
57350         (ContextMenu::~ContextMenu):
57351         (ContextMenu::appendItem):
57352         (ContextMenu::setPlatformDescription):
57353         (ContextMenu::platformDescription):
57354         (ContextMenuItem::ContextMenuItem):
57355         (ContextMenuItem::~ContextMenuItem):
57356         (ContextMenuItem::releasePlatformDescription):
57357         (ContextMenuItem::type):
57358         (ContextMenuItem::setType):
57359         (ContextMenuItem::action):
57360         (ContextMenuItem::setAction):
57361         (ContextMenuItem::title):
57362         (ContextMenuItem::setTitle):
57363         (ContextMenuItem::platformSubMenu):
57364         (ContextMenuItem::setSubMenu):
57365         (ContextMenuItem::setChecked):
57366         (ContextMenuItem::setEnabled):
57367         (WebCore::systemBeep):
57368         (WebCore::userIdleTime):
57370 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57372         Reviewed by Adam Roben.
57374         Linux/gdk build fixes.
57376         * platform/GlyphPageTreeNode.h: Fix header guard name.
57377         * platform/gdk/ChromeClientGdk.h:
57378         * platform/gdk/CursorGdk.cpp:
57379         (WebCore::verticalTextCursor):
57380         (WebCore::cellCursor):
57381         (WebCore::contextMenuCursor):
57382         (WebCore::noDropCursor):
57383         (WebCore::copyCursor):
57384         (WebCore::progressCursor):
57385         (WebCore::aliasCursor):
57386         * platform/gdk/MouseEventGdk.cpp:
57387         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
57388         * platform/gdk/PageGdk.cpp: Removed. No longer used.
57389         * platform/gdk/RenderThemeGdk.cpp:
57390         (WebCore::RenderThemeGdk::getThemeData):
57391         (WebCore::RenderThemeGdk::setCheckboxSize):
57392         (WebCore::RenderThemeGdk::paintCheckbox):
57393         (WebCore::RenderThemeGdk::setRadioSize):
57394         (WebCore::RenderThemeGdk::paintRadio):
57395         (WebCore::RenderThemeGdk::paintButton):
57396         (WebCore::RenderThemeGdk::adjustTextFieldStyle):
57397         (WebCore::RenderThemeGdk::paintTextField):
57398         (WebCore::RenderThemeGdk::paintTextArea):
57399         (WebCore::RenderThemeGdk::systemFont):
57400         * platform/gdk/RenderThemeGdk.h:
57401         * platform/gdk/ScreenGdk.cpp:
57402         (WebCore::screenDepth):
57403         (WebCore::screenDepthPerComponent):
57404         (WebCore::screenIsMonochrome):
57405         (WebCore::screenRect):
57406         (WebCore::screenAvailableRect):
57408 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57410         Reviewed by Adam Roben.
57412         Linux/gdk build fixes for cairo.
57414         * platform/graphics/GraphicsContext.cpp:
57415         * platform/graphics/cairo/GraphicsContextCairo.cpp:
57416         (WebCore::GraphicsContext::GraphicsContext):
57417         (WebCore::GraphicsContext::strokeArc):
57418         (WebCore::GraphicsContext::drawFocusRing):
57419         (WebCore::GraphicsContext::setFocusRingClip):
57420         (WebCore::GraphicsContext::clearFocusRingClip):
57421         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
57422         (WebCore::GraphicsContext::origin):
57423         (WebCore::GraphicsContext::setPlatformFillColor):
57424         (WebCore::GraphicsContext::setPlatformStrokeColor):
57425         (WebCore::GraphicsContext::setPlatformStrokeThickness):
57426         (WebCore::GraphicsContext::setPlatformStrokeStyle):
57427         (WebCore::GraphicsContext::setPlatformFont):
57428         (WebCore::GraphicsContext::setURLForRect):
57429         (WebCore::GraphicsContext::addRoundedRectClip):
57430         (WebCore::GraphicsContext::addInnerRoundedRectClip):
57431         (WebCore::GraphicsContext::setShadow):
57432         (WebCore::GraphicsContext::clearShadow):
57433         (WebCore::GraphicsContext::beginTransparencyLayer):
57434         (WebCore::GraphicsContext::endTransparencyLayer):
57435         (WebCore::GraphicsContext::clearRect):
57436         (WebCore::GraphicsContext::strokeRect):
57437         (WebCore::GraphicsContext::setLineCap):
57438         (WebCore::GraphicsContext::setLineJoin):
57439         (WebCore::GraphicsContext::setMiterLimit):
57440         (WebCore::GraphicsContext::setAlpha):
57441         (WebCore::toCairoOperator):
57442         (WebCore::GraphicsContext::setCompositeOperation):
57443         (WebCore::GraphicsContext::clip):
57444         (WebCore::GraphicsContext::rotate):
57445         (WebCore::GraphicsContext::scale):
57446         (WebCore::GraphicsContext::clipOut):
57447         (WebCore::GraphicsContext::clipOutEllipseInRect):
57448         (WebCore::GraphicsContext::fillRoundedRect):
57450 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57452         Reviewed by Adam Roben.
57454         Linux/gdk build fixes.
57456         * Projects/gdk/webcore-gdk.bkl:
57457         * WebCoreSources.bkl:
57458         * webcore-base.bkl:
57460 2007-02-08  Brady Eidson  <beidson@apple.com>
57462         Reviewed by Tim Hatcher
57464         Tweaked the thread violation behavior to be disabled by default, and to provide
57465         an easy breakpoint to set.  
57466         The possibilities for the "WebCoreThreadCheck" user defaults key are -
57467           - The value "None" disables thread checking
57468           - The value "Log" causes an NSLog on a violation
57469           - The value "Exception" causes exceptions to be raised on a violation
57471         * platform/Logging.h:
57472         * platform/mac/LoggingMac.mm:
57473         (WebCore::_WebCoreThreadViolationCheck):
57474         (WebCoreReportThreadViolation):  In the global namespace, making breakpoints cake!
57476 2007-02-08  Brady Eidson  <beidson@apple.com>
57478         Reviewed by Tim Hatcher
57480         <rdar://problem/4983515> Need mechanism to protect against WebKit calls from secondary threads
57481         This initial landing is a conservative move until we can be certain of performance impact.
57482         By writing to the user defaults key @"WebCoreThreadCheck" for the WebKit app you're running -
57483           - The value "None" disables thread checking
57484           - The value "Exception" causes exceptions to be raised on a violation
57485           - The default is to do the check, and NSLog each violation
57487         * bindings/objc/ExceptionHandlers.h:  Add a "Is Main Thread" assert macro
57488         * bindings/scripts/CodeGeneratorObjC.pm: Use new mechanism in allocs and deallocs for now
57490         * platform/Logging.h: Added WebCoreThreadViolationCheck macro
57491         * platform/mac/LoggingMac.mm:
57492         (WebCore::_WebCoreThreadViolationCheck): Check for main-threadedness, and do some stuff
57494 2007-02-08  Kevin McCullough  <KMcCullough@apple.com>
57496         Reviewed by Maciej, Darin, and Mark.
57498         rdar://problem/4922454
57499         - Prevents remote sites from executing local scripts.
57501         * bindings/objc/DOM.mm: - renamed a function that is now in the base class
57502         (-[DOMElement image]):
57503         (-[DOMElement _imageTIFFRepresentation]):
57504         * dom/XMLTokenizer.cpp: - removed needless asserts
57505         (WebCore::XMLTokenizer::notifyFinished):
57506         * html/HTMLImageLoader.cpp: - renamed a function that is now in the base class
57507         (WebCore::HTMLImageLoader::dispatchLoadEvent):
57508         * html/HTMLTokenizer.cpp: - removed needless asserts
57509         (WebCore::HTMLTokenizer::reset):
57510         (WebCore::HTMLTokenizer::notifyFinished):
57511         * ksvg2/misc/SVGImageLoader.cpp: - renamed a function that is now in the base class
57512         (WebCore::SVGImageLoader::dispatchLoadEvent):
57513         * loader/Cache.cpp: - return early if an error occured
57514         (WebCore::Cache::requestResource):
57515         (WebCore::Cache::remove):
57516         * loader/CachedImage.h: - renamed a function that is now in the base class
57517         (WebCore::CachedImage::canRender):
57518         * loader/CachedResource.h: - renamed a function that is now in the base class
57519         (WebCore::CachedResource::errorOccurred):
57520         * loader/CachedScript.h: - renamed a function that is now in the base class 
57521         (WebCore::CachedScript::schedule):
57522         * loader/DocLoader.cpp: - The heart of the fix, prevents resources from being created or retrieved from the cache if a remote site is requesting the local resource.
57523         (WebCore::DocLoader::requestResource):
57524         (WebCore::DocLoader::setLoadInProgress):
57525         * page/EventHandler.cpp: - renamed a function that is now in the base class
57526         (WebCore::selectCursor):
57527         * rendering/HitTestResult.cpp: - renamed a function that is now in the base class
57528         (WebCore::HitTestResult::image):
57529         * rendering/RenderImage.cpp: - renamed a function that is now in the base class
57530         (WebCore::RenderImage::setCachedImage):
57531         (WebCore::RenderImage::imageChanged):
57532         (WebCore::RenderImage::paint):
57533         (WebCore::RenderImage::layout):
57534         (WebCore::RenderImage::calcAspectRatioWidth):
57535         (WebCore::RenderImage::calcAspectRatioHeight):
57536         * rendering/RenderImage.h: - renamed a function that is now in the base class
57537         (WebCore::RenderImage::errorOccurred):
57538         * rendering/RenderListItem.cpp: - renamed a function that is now in the base class
57539         (WebCore::RenderListItem::setStyle):
57540         * rendering/RenderListMarker.cpp: - renamed a function that is now in the base class
57541         (WebCore::RenderListMarker::isImage):
57543 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57545         Reviewed by Maciej.
57547         Add updateGeometry() to gdk's ScrollView. Needed to fix resizing of the window
57548         in gdk.
57550         * platform/ScrollView.h:
57551         * platform/gdk/ScrollViewGdk.cpp:
57552         (WebCore::ScrollView::updateGeometry):
57553         (WebCore::ScrollView::setDrawable):
57555 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57557         Reviewed by Maciej.
57559         Linux/gdk build fixes.
57561         * platform/ContextMenuItem.h:
57562         * platform/PlatformMenuDescription.h:
57563         * platform/gdk/PopupMenuGdk.cpp: Added. Renamed from RenderPopupMenuGdk.cpp for
57564         consistency with other platforms.
57565         (WebCore::PopupMenu::PopupMenu):
57566         (WebCore::PopupMenu::~PopupMenu):
57567         * platform/gdk/RenderPopupMenuGdk.cpp: Removed.
57568         * platform/gdk/RenderPopupMenuGdk.h: Removed.
57570 2007-02-07  Mitz Pettel  <mitz@webkit.org>
57572         Reviewed by Maciej.
57574         - fix http://bugs.webkit.org/show_bug.cgi?id=12608
57575           Incorrect min. width calculation of a series of floats with clear:both and white-space:nowrap
57577         Test: fast/block/float/nowrap-clear-min-width.html
57579         * rendering/RenderBlock.cpp:
57580         (WebCore::RenderBlock::calcInlineMinMaxWidth):
57582 2007-02-07  Mitz Pettel  <mitz@webkit.org>
57584         Reviewed by Dave Hyatt.
57586         - fix http://bugs.webkit.org/show_bug.cgi?id=10522
57587           REGRESSION: Incomplete repaint after table relayout that decreases height
57589         Test: fast/repaint/intermediate-layout-position.html
57591         * rendering/RenderBlock.cpp:
57592         (WebCore::RenderBlock::layoutBlock): Adjust the old bounds by the layout delta,
57593         to get the block's absolute bounds as they were before its ancestors moved it
57594         during layout.
57595         (WebCore::RenderBlock::collapseMargins): Update the layout delta for the child
57596         when moving it.
57597         (WebCore::RenderBlock::clearFloatsIfNeeded): Ditto.
57598         (WebCore::RenderBlock::determineHorizontalPosition): Ditto.
57599         (WebCore::RenderBlock::layoutBlockChildren): Ditto.
57600         * rendering/RenderFlexibleBox.cpp:
57601         (WebCore::RenderFlexibleBox::layoutBlock): Adjust the old bounds by the current
57602         layout delta.
57603         * rendering/RenderHTMLCanvas.cpp:
57604         (WebCore::RenderHTMLCanvas::layout): Ditto.
57605         * rendering/RenderImage.cpp:
57606         (WebCore::RenderImage::layout): Ditto.
57607         * rendering/RenderTable.cpp:
57608         (WebCore::RenderTable::layout): Ditto.
57609         * rendering/RenderView.h:
57610         (WebCore::RenderView::layoutDelta): Added. Keeps track of the offset between
57611         the position of the object currently being laid out and its position at the
57612         end of the last layout.
57613         (WebCore::RenderView::addLayoutDelta): Added.
57615 2007-02-07  Christopher Brichford  <chrisb@adobe.com>
57617         Reviewed by Brady.
57619         http://bugs.webkit.org/show_bug.cgi?id=6286
57620         Very large (~500MB) images cause reproducible Safari crash
57622         * loader/CachedImage.cpp: 
57623         (WebCore::CachedImage::bufferData): Detect failure to create a
57624         large Vector<> and call error() when that happens.
57626 2007-02-07  Mitz Pettel  <mitz@webkit.org>
57628         Reviewed by Dave Hyatt.
57630         - fix http://bugs.webkit.org/show_bug.cgi?id=5399
57631           no-repeat on negatively positioned background images are ignored
57633         Test: fast/backgrounds/repeat/negative-offset-repeat.html
57635         - fix http://bugs.webkit.org/show_bug.cgi?id=5821
57636           Changing background of <col> doesn't repaint the column
57638         Test: fast/repaint/table-col-background.html
57640         - fix http://bugs.webkit.org/show_bug.cgi?id=11720
57641           REGRESSION: large amounts of CPU consumed viewing this site
57643         * rendering/RenderBox.cpp:
57644         (WebCore::RenderBox::imageChanged): Added. Finds the border and/or background
57645         layer(s) that use the image and invalidates only the rect in which the image
57646         actually paints. There are two special cases in this function: 1) for the body
57647         element, the background is propagated to the root; 2) inline flows do a full
57648         repaint.
57649         (WebCore::RenderBox::calculateBackgroundImageGeometry): Added. Factored out,
57650         simplified and corrected the calculation of the rectangle into which the background
57651         image paints, the tile size and the pattern phase.
57652         (WebCore::RenderBox::paintBackgroundExtended):
57653         * rendering/RenderBox.h:
57654         * rendering/RenderObject.cpp:
57655         * rendering/RenderObject.h:
57656         (WebCore::RenderObject::imageChanged): Moved the implementation to RenderBox.
57657         * rendering/RenderTableCol.cpp:
57658         (WebCore::RenderTableCol::getAbsoluteRepaintRect): Overridden to return the
57659         table's repaint rect.
57660         (WebCore::RenderTableCol::imageChanged): Overridden to do a full repaint, which
57661         currently repaints the entire table.
57662         * rendering/RenderTableCol.h:
57663         * rendering/RenderTableRow.cpp:
57664         (WebCore::RenderTableRow::imageChanged): Overridden to do a full repaint
57665         of the row, since the backgrounds are painted by the cells.
57666         * rendering/RenderTableRow.h:
57667         * rendering/RenderTableSection.cpp:
57668         (WebCore::RenderTableSection::imageChanged): Overridden to do a full
57669         repaint of the section, since the backgrounds are painted by the cells.
57670         * rendering/RenderTableSection.h:
57672 2007-02-07  Anders Carlsson  <acarlsson@apple.com>
57674         Reviewed by Maciej.
57676         Move shouldInterruptJavaScript to the Chrome.
57678         * bindings/js/kjs_binding.cpp:
57679         (KJS::ScriptInterpreter::shouldInterruptScript):
57680         * page/Chrome.cpp:
57681         (WebCore::Chrome::shouldInterruptJavaScript):
57682         * page/Chrome.h:
57683         * page/ChromeClient.h:
57684         * page/Frame.h:
57685         * page/mac/FrameMac.h:
57686         * page/mac/FrameMac.mm:
57687         * page/mac/WebCoreFrameBridge.h:
57688         * platform/graphics/svg/SVGImageEmptyClients.h:
57689         (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
57691 2007-02-07  Darin Adler  <darin@apple.com>
57693         Reviewed by Maciej.
57695         - <rdar://problem/4826861> WebKit tests show memory leaks in NSHTMLReader, caused by method named "hash"
57697         * bindings/scripts/CodeGeneratorObjC.pm: Added a list of method names we should never use, since they
57698         are in base classes WebScriptObject and NSObject. Luckily, only "hash" is causing trouble. Added
57699         "hash" to the existing special case for "id". Now "hash" is "hashName" just as "id" is "idName".
57701 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57703         Reviewed by Adam Roben.
57705         Linux/gdk build fixes for graphics-related stuff.
57707         * platform/graphics/cairo/ImageCairo.cpp:
57708         (WebCore::BitmapImage::checkForSolidColor):
57709         * platform/graphics/cairo/ImageSourceCairo.cpp:
57710         (WebCore::ImageSource::setData):
57711         * platform/graphics/gdk/ImageGdk.cpp:
57712         (WebCore::BitmapImage::initPlatformData):
57713         (WebCore::BitmapImage::invalidatePlatformData):
57714         (WebCore::Image::loadPlatformResource):
57715         (WebCore::Image::drawPattern):
57717 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57719         Reviewed by Maciej.
57721         Linux/gdk build fixes related to networking.
57723         * platform/network/ResourceHandleInternal.h: Add accessor for m_client.
57724         (WebCore::ResourceHandleInternal::client):
57725         * platform/network/gdk/ResourceHandleCurl.cpp: Add missing functions and
57726         massage for changed APIs.
57727         (WebCore::ResourceHandle::start):
57728         (WebCore::ResourceHandle::cancel):
57729         (WebCore::ResourceHandle::bufferedData):
57730         (WebCore::ResourceHandle::supportsBufferedData):
57731         (WebCore::ResourceHandle::setDefersLoading):
57732         * platform/network/gdk/ResourceHandleManager.cpp: Rename get() to
57733         sharedInstance(). Massaged for changed APIs.
57734         (WebCore::ResourceHandleManager::sharedInstance):
57735         (WebCore::writeCallback):
57736         (WebCore::ResourceHandleManager::downloadTimerCallback):
57737         (WebCore::ResourceHandleManager::remove):
57738         * platform/network/gdk/ResourceHandleManager.h: Ditto.
57740 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57742         Reviewed by Maciej.
57744         Mismatched type of alloc/free function crashes gdk build.
57746         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
57747         (WebCore::JPEGImageReader::close):
57749 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57751         Reviewed by Adam Roben.
57753         Linux/gdk build fixes - add file based on qt implementation.
57755         * platform/DragData.h:
57756         * platform/gdk/DragDataGdk.cpp: Added.
57758 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57760         Reviewed by Adam Roben.
57762         Linux/gdk build fixes - add new files based on qt implementation.
57764         * page/gdk/DragControllerGdk.cpp: Added.
57765         (WebCore::DragController::dragOperation):
57766         * page/gdk/EventHandlerGdk.cpp: Added.
57767         (WebCore::EventHandler::focusDocumentView):
57768         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
57769         (WebCore::EventHandler::handleDrag):
57770         (WebCore::EventHandler::eventActivatedView):
57772 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57774         Reviewed by Adam Roben.
57776         Linux/gdk build fixes - add new files based on Qt implementation.
57778         * loader/gdk/DocumentLoaderGdk.cpp: Added.
57779         (WebCore::DocumentLoader::getResponseModifiedHeader):
57780         * loader/gdk/FrameLoaderClientGdk.cpp: Added.
57781         (WebCore::FrameLoaderClientGdk::FrameLoaderClientGdk):
57782         (WebCore::FrameLoaderClientGdk::frame):
57783         (WebCore::FrameLoaderClientGdk::userAgent):
57784         (WebCore::FrameLoaderClientGdk::createDocumentLoader):
57785         (WebCore::FrameLoaderClientGdk::dispatchWillSubmitForm):
57786         (WebCore::FrameLoaderClientGdk::committedLoad):
57787         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
57788         (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
57789         (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
57790         (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
57791         (WebCore::FrameLoaderClientGdk::postProgressStartedNotification):
57792         (WebCore::FrameLoaderClientGdk::postProgressEstimateChangedNotification):
57793         (WebCore::FrameLoaderClientGdk::postProgressFinishedNotification):
57794         (WebCore::FrameLoaderClientGdk::frameLoaderDestroyed):
57795         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveResponse):
57796         (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForMIMEType):
57797         (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNewWindowAction):
57798         (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNavigationAction):
57799         (WebCore::FrameLoaderClientGdk::createPlugin):
57800         (WebCore::FrameLoaderClientGdk::createFrame):
57801         (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
57802         (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
57803         (WebCore::FrameLoaderClientGdk::objectContentType):
57804         (WebCore::FrameLoaderClientGdk::overrideMediaType):
57805         (WebCore::FrameLoaderClientGdk::windowObjectCleared):
57806         (WebCore::FrameLoaderClientGdk::setMainFrameDocumentReady):
57807         (WebCore::FrameLoaderClientGdk::hasWebView):
57808         (WebCore::FrameLoaderClientGdk::hasFrameView):
57809         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoad):
57810         (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
57811         (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
57812         (WebCore::FrameLoaderClientGdk::makeDocumentView):
57813         (WebCore::FrameLoaderClientGdk::makeRepresentation):
57814         (WebCore::FrameLoaderClientGdk::forceLayout):
57815         (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
57816         (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
57817         (WebCore::FrameLoaderClientGdk::detachedFromParent1):
57818         (WebCore::FrameLoaderClientGdk::detachedFromParent2):
57819         (WebCore::FrameLoaderClientGdk::detachedFromParent3):
57820         (WebCore::FrameLoaderClientGdk::detachedFromParent4):
57821         (WebCore::FrameLoaderClientGdk::loadedFromPageCache):
57822         (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
57823         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
57824         (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
57825         (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
57826         (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
57827         (WebCore::FrameLoaderClientGdk::dispatchWillClose):
57828         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
57829         (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
57830         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
57831         (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
57832         (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
57833         (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
57834         (WebCore::FrameLoaderClientGdk::dispatchShow):
57835         (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
57836         (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
57837         (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
57838         (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
57839         (WebCore::FrameLoaderClientGdk::willChangeTitle):
57840         (WebCore::FrameLoaderClientGdk::didChangeTitle):
57841         (WebCore::FrameLoaderClientGdk::finishedLoading):
57842         (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
57843         (WebCore::FrameLoaderClientGdk::setDefersLoading):
57844         (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
57845         (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
57846         (WebCore::FrameLoaderClientGdk::clearArchivedResources):
57847         (WebCore::FrameLoaderClientGdk::canHandleRequest):
57848         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
57849         (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
57850         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
57851         (WebCore::FrameLoaderClientGdk::restoreScrollPositionAndViewState):
57852         (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
57853         (WebCore::FrameLoaderClientGdk::didFinishLoad):
57854         (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
57855         (WebCore::FrameLoaderClientGdk::setTitle):
57856         (WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
57857         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
57858         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
57859         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
57860         (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
57861         (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
57862         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
57863         (WebCore::FrameLoaderClientGdk::download):
57864         (WebCore::FrameLoaderClientGdk::cancelledError):
57865         (WebCore::FrameLoaderClientGdk::cannotShowURLError):
57866         (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
57867         (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
57868         (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
57869         (WebCore::FrameLoaderClientGdk::shouldFallBack):
57870         (WebCore::FrameLoaderClientGdk::willUseArchive):
57871         (WebCore::FrameLoaderClientGdk::saveScrollPositionAndViewStateToItem):
57872         (WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
57873         (WebCore::FrameLoaderClientGdk::canCachePage):
57874         (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
57875         (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
57876         (WebCore::FrameLoaderClientGdk::setMainDocumentError):
57877         (WebCore::FrameLoaderClientGdk::startDownload):
57878         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
57879         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
57880         (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
57881         * loader/gdk/FrameLoaderClientGdk.h: Added.
57882         (WebCore::FrameLoaderClientGdk::~FrameLoaderClientGdk):
57883         (WebCore::FrameLoaderClientGdk::setFrame):
57885 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57887         Reviewed by Maciej.
57889         Linux/gdk fixes related to fonts.
57891         * platform/gdk/FontDataGdk.cpp:
57892         (WebCore::FontData::platformInit): remove a work-around for older cairo versions
57893         since Ubuntu 6.10 ships with cairo that is new enough
57894         * platform/gdk/FontGdk.cpp:
57895         (WebCore::Font::drawGlyphs):
57896         * platform/gdk/FontPlatformDataGdk.cpp: Remove unused variables.
57897         (WebCore::FontPlatformData::FontPlatformData):
57899 2007-02-07  Alexey Proskuryakov  <ap@webkit.org>
57901         Reviewed by Darin.
57903         http://bugs.webkit.org/show_bug.cgi?id=12582
57904         REGRESSION: Unclosed <title> makes the window display garbage or empty title
57906         Automatic testing is not possible, and manual testing probably doesn't make sense.
57908         * loader/DocumentLoader.cpp:
57909         (WebCore::canonicalizedTitle): Bail out early if the passed in string is all whitespace.
57911 2007-02-06  Anders Carlsson  <acarlsson@apple.com>
57913         Reviewed by John Sullivan.
57915         <rdar://problem/4977952>
57916         REGRESSION: Yahoo Messenger IM is totally blank
57917         
57918         * loader/FrameLoader.cpp:
57919         (WebCore::FrameLoader::checkContentPolicy):
57920         Don't ask the policy delegate for content that has valid substitute data.
57921         
57922         (WebCore::FrameLoader::checkNavigationPolicy):
57923         If the loader has substitute data but doesn't have an unreachable URL, let the policy
57924         delegate decide what to do.
57926 2007-02-07  Geoffrey Garen  <ggaren@apple.com>
57928         Reviewed by Darin Adler.
57930         Restoring some of the functionality I removed in r19445. It's insufficient for
57931         each page to cancel keepAlive only for its child frames, because a frame
57932         can be removed from the page before we get a chance to cancel its keepAlive.
57933         So, the page destructor has to cancel keepAlive for all frames. This is safe
57934         because we prohibit closing a WebView while JavaScript is executing.
57936         * page/Frame.cpp:
57937         (WebCore::keepAliveSet):
57938         (WebCore::Frame::keepAlive):
57939         (WebCore::Frame::cancelAllKeepAlive):
57940         (WebCore::Frame::lifeSupportTimerFired):
57941         * page/Frame.h:
57942         * page/Page.cpp:
57943         (WebCore::Page::~Page):
57945 2007-02-07  Alexey Proskuryakov  <ap@webkit.org>
57947         Reviewed by Darin.
57949         http://bugs.webkit.org/show_bug.cgi?id=12603
57950         A crash when trying to use XPath functions normalize-space(), string-length() and number()
57952         Test: fast/xpath/implicit-node-args.html
57954         * xml/XPathFunctions.cpp:
57955         (WebCore::XPath::FunNumber::doEvaluate): Implemented zero parameter case.
57956         (WebCore::XPath::FunctionMapping::): Corrected descriptions of these functions, as they
57957         do allow zero parameters.
57958         (WebCore::XPath::createFunction): Combined the two failure cases to ensure that this
57959         function never returns 0.
57961 2007-02-07  Zack Rusin  <zrusin@trolltech.com>
57963         Fix compilation
57965         * page/qt/EventHandlerQt.cpp:
57966         (WebCore::EventHandler::eventActivatedView):
57968 2007-02-06  Alice Liu  <alice.liu@apple.com>
57970         Reviewed by Maciej.
57972         Added editing command functions for scrolling by page and moving the caret
57974         * editing/Editor.cpp:
57975         (WebCore::execMoveUpByPageAndModifyCaret):
57976         (WebCore::execMoveDownByPageAndModifyCaret):
57977         (WebCore::CommandEntry::):
57979 2007-02-06  Justin Garcia  <justin.garcia@apple.com>
57981         Reviewed by john
57983         <rdar://problem/4922367>
57984         WebView selectLine: followed by deleteBackward: deletes TABLE element of following line
57986         * editing/AppendNodeCommand.cpp:
57987         (WebCore::AppendNodeCommand::doApply): Don't ASSERT when manipulating
57988         non-editable content that is embedded in editable content.  We'll do 
57989         this kind of manipulation when removing redundant style spans after
57990         pasting content that has non-editable pieces.
57991         * editing/InsertNodeBeforeCommand.cpp:
57992         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
57993         * editing/htmlediting.cpp:
57994         (WebCore::isContentEditable): Added, wrapper for Node::isContentEditable
57995         (WebCore::rangeCompliantEquivalent): Although legal, 
57996         [{table, select, etc.}, {0, numChildren}] don't refer to children of the element, 
57997         but positions before and after the element.  So, rangeCompliantEquivalent is 
57998         really responsible for converting illegal positions *and* legal positions 
57999         that have a special meaning internally.
58000         * editing/htmlediting.h:
58002 2007-02-06  Anders Carlsson  <acarlsson@apple.com>
58004         Reviewed by Brady.
58006         * platform/String.cpp:
58007         (WebCore::String::ascii):
58008         Fix dumping null Strings.
58010 2007-02-06  Anders Carlsson  <acarlsson@apple.com>
58012         Reviewed by Geoff.
58014         Fix <rdar://problem/4979484>
58015         
58016         * css/CSSPrimitiveValue.cpp:
58017         (WebCore::isCSSTokenizerIdentifier):
58018         Do the range check before calling isalpha or isalnum.
58020 2007-02-06  Geoffrey Garen  <ggaren@apple.com>
58022         Reviewed by Darin Adler.
58024         Fixed Frame/RenderObject/Node leak report seen while running SVG image tests.
58025         (We'll need this fix if we ever re-enable SVG image.)
58026         
58027         The extra reference belonged to the Frame keepAlive timer (so this was
58028         not a "real" leak, in the end). The Page destructor has code to cancel all 
58029         Frame keepAlive timers upon the destruction of the last Page, but an SVG 
58030         image puts a Page within a Page, making this condition impossible to meet.
58031         
58032         The fix here is to have each individual page cancel the keepAlive timers 
58033         belonging to its child frames.
58034         
58035         * page/Frame.cpp: Changed the FrameCounter to use WTF logging.
58036         (WebCore::): Nixed the lifeSupportSet, since it's no longer used.
58037         (WebCore::Frame::cancelKeepAlive): Renamed from "endLifeSupport" to match
58038         the name "keepAlive".
58039         * page/Page.cpp:
58040         (WebCore::Page::~Page): Made each page cancel its child keepAlive timers 
58041         and clear its mainFrame, since we may never reach the condition of having 0 Pages.
58043 2007-02-06  Adam Roben  <aroben@apple.com>
58045         Rubberstamped by Brady.
58047         Revert the log channel constants to their old values for all you pretty
58048         people out there who were using the old ones. I also renamed
58049         LogResources to LogPlatformLeaks to be a bit more specific.
58051         * platform/Logging.cpp:
58052         (WebCore::):
58053         * platform/Logging.h:
58055 2007-02-05  Justin Garcia  <justin.garcia@apple.com>
58057         Reviewed by john
58059         <rdar://problem/4959067>
58060         Bullets get erased or moved down to another line
58061         <rdar://problem/4912529>
58062         Seed: Bulleted list in Note in Mail.app does not work with Japanese input mode
58063         
58064         Do not expand the selection to include fully selected 
58065         special elements when insering text over a selection.
58067         * editing/CompositeEditCommand.cpp:
58068         (WebCore::CompositeEditCommand::deleteSelection): Pass
58069         expandForSpecialElements through to DeleteSelectionCommand's constructor.
58070         (WebCore::CompositeEditCommand::moveParagraphs): Use the 
58071         convenience function.
58072         * editing/CompositeEditCommand.h:
58073         * editing/DeleteSelectionCommand.h:
58074         * editing/InsertTextCommand.cpp:
58075         (WebCore::InsertTextCommand::input): Do not expand the selection
58076         to be deleted for special elements.
58077         * editing/ReplaceSelectionCommand.cpp:
58078         (WebCore::ReplaceSelectionCommand::doApply): Added a FIXME about 
58079         when we should expand the selection.
58081 2007-02-06  Geoffrey Garen  <ggaren@apple.com>
58083         Reviewed by Anders Carlsson.
58084         
58085         Disabled support for SVG image because it crashes all the time.
58087         * loader/CachedImage.cpp:
58088         (WebCore::CachedImage::createImage):
58090 2007-02-06  Mitz Pettel  <mitz@webkit.org>
58092         Reviewed by Darin.
58094         - fix http://bugs.webkit.org/show_bug.cgi?id=12518
58095           Betsson.com crashes browser
58097         Test: fast/layers/generated-layer-scrollbar-crash.html
58099         * rendering/RenderLayer.cpp:
58100         (WebCore::RenderLayer::createScrollbar): Changed element()->document() to
58101         document() to work with anonymous objects.
58102         (WebCore::RenderLayer::updateOverflowStatus): Ditto.
58104 2007-02-06  Eric Seidel  <eric@webkit.org>
58106         Reviewed by mitz.
58108         WebKit ignores floating point values for stroke-miterlimit
58109         http://bugs.webkit.org/show_bug.cgi?id=12577
58110         
58111         Test: svg/W3C-SVG-1.1/painting-stroke-07-t.svg
58113         * ksvg2/css/SVGCSSParser.cpp:
58114         (WebCore::CSSParser::parseSVGValue):
58115         * ksvg2/css/SVGCSSStyleSelector.cpp:
58116         (WebCore::CSSStyleSelector::applySVGProperty):
58117         * ksvg2/css/SVGRenderStyle.h:
58118         * ksvg2/css/SVGRenderStyleDefs.h:
58119         (WebCore::StyleStrokeData::operator!=):
58121 2007-02-06  Adam Roben  <aroben@apple.com>
58123         Reviewed by Ada and Oliver.
58125         Adding a new LogResources channel for tracking platform resource usage.
58127         * platform/Logging.cpp: Added new channel, cleaned up constants to be more readable.
58128         * platform/Logging.h: Declare new channel.
58130 2007-02-06  Alexey Proskuryakov  <ap@webkit.org>
58132         Reviewed by Geoff.
58134         http://bugs.webkit.org/show_bug.cgi?id=12619
58135         Non-abbreviated XPaths don't work
58137         Test: fast/xpath/ancestor-axis.html
58139         * xml/XPathParser.cpp:
58140         (WebCore::XPath::Parser::lex): Fix axis name parsing to actually work.
58141         * xml/XPathStep.cpp:
58142         (WebCore::XPath::Step::nodeTestMatches): Fix "*" node test to actually work.
58144 2007-02-06  Mark Rowe  <mrowe@apple.com>
58146         Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
58147         See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
58149         * css/CSSComputedStyleDeclaration.cpp:
58150         (WebCore::):
58151         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58152         * css/cssparser.cpp:
58153         (WebCore::CSSParser::parseValue):
58154         * css/cssstyleselector.cpp:
58155         (WebCore::CSSStyleSelector::applyDeclarations):
58156         (WebCore::CSSStyleSelector::applyProperty):
58157         * platform/FontCache.cpp:
58158         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
58159         (WebCore::FontPlatformDataCacheKey::operator==):
58160         (WebCore::computeHash):
58161         (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
58162         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
58163         (WebCore::FontCache::getCachedFontPlatformData):
58164         * platform/FontDescription.h:
58165         (WebCore::FontDescription::FontDescription):
58166         (WebCore::FontDescription::weight):
58167         (WebCore::FontDescription::setWeight):
58168         (WebCore::FontDescription::operator==):
58169         * platform/mac/FontCacheMac.mm:
58170         (WebCore::FontCache::createFontPlatformData):
58171         * platform/mac/WebFontCache.mm:
58172         (acceptableChoice):
58173         (betterChoice):
58174         (+[WebFontCache fontWithFamily:traits:size:]):
58176 2007-02-05  Adele Peterson  <adele@apple.com>
58178         Reviewed by Darin.
58180         A few small updates to my bidi patch.
58182         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Moved the declaration of the CharacterBuffer outside the if statement since we use its data outside that scope.
58183         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
58184         * rendering/bidi.cpp: (WebCore::RenderBlock::bidiReorderCharacters): Used a PassRefPtr for the BidiContext.
58186 2007-02-05  Adele Peterson  <adele@apple.com>
58188         Reviewed by Adam.
58190         Fix for assertion failure in fast/events/objc-keyboard-event-creation.html
58192         * html/HTMLInputElement.cpp:
58193         (WebCore::HTMLInputElement::selectionStart): Check that the selection offsets are not equal to -1 (which is means the selection has never been set) instead of checking for >= 0.
58194         (WebCore::HTMLInputElement::selectionEnd): ditto.
58195         (WebCore::HTMLInputElement::setValue): ditto.
58196         (WebCore::HTMLInputElement::selection): Return an empty selection if the input is not a text field or if no selection has ever been set in the text field.
58197         * html/HTMLTextAreaElement.cpp:
58198         (WebCore::HTMLTextAreaElement::selectionStart): Check that the selection offsets are not equal to -1.
58199         (WebCore::HTMLTextAreaElement::selectionEnd): ditto.
58200         (WebCore::HTMLTextAreaElement::setValue): ditto.
58201         (WebCore::HTMLTextAreaElement::selection): Return an empty selection if no selection has ever been set in the textarea.
58203         * dom/Position.cpp: Added FIXMEs that we should catch the negative offset earlier.
58204         (WebCore::Position::previous):
58205         (WebCore::Position::next):
58207 2007-02-05  Justin Garcia  <justin.garcia@apple.com>
58209         Reviewed by harrison
58211         <rdar://problem/4947387>
58212         REGRESSION Shift Command Left should only select to the beginning of the line
58214         * editing/Editor.cpp:
58215         (WebCore::CommandEntry::): Never copy/paste code.
58217 2007-02-05  Darin Adler  <darin@apple.com>
58219         Reviewed by John Sullivan.
58221         - fix http://bugs.webkit.org/show_bug.cgi?id=11535
58222           <rdar://problem/4946959> REGRESSION: onclick="this.select();" not working on new forms (11535)
58224         Test: fast/forms/input-select-on-click.html
58226         * page/EventHandler.h: Added m_mouseDownWasSingleClickInSelection boolean.
58227         Organized other booleans a bit more logically.
58228         * page/EventHandler.cpp:
58229         (WebCore::EventHandler::EventHandler): Rearrange order to match EventHandler.h, add
58230         m_mouseDownWasSingleClickInSelection initialization.
58231         (WebCore::EventHandler::handleMousePressEventSingleClick): Set m_mouseDownWasSingleClickInSelection
58232         to true in the appropriate special case.
58233         (WebCore::EventHandler::handleMousePressEvent): Set m_mouseDownWasSingleClickInSelection to false.
58234         (WebCore::EventHandler::handleMouseReleaseEvent): Change code to clear selection or set to caret to
58235         only fire if m_mouseDownWasSingleClickInSelection was true rather than firing for any
58236         m_mouseDownMayStartSelect case.
58238 2007-02-05  George Staikos  <staikos@kde.org>
58240         Reviewed by Maciej.
58242         Send HTTP cookies.
58244         * platform/network/qt/ResourceHandleManagerQt.cpp:
58245         (WebCore::RequestQt::RequestQt):
58247 2007-02-05  Adele Peterson  <adele@apple.com>
58249         Reviewed by Mitz and Anders.
58251         Fix for http://bugs.webkit.org/show_bug.cgi?id=11811
58252         <rdar://problem/4947184> REGRESSION (r11783): Hebrew text in list boxes is reversed
58254         http://bugs.webkit.org/show_bug.cgi?id=11812
58255         <rdar://problem/4960269> REGRESSION (Native file upload): Hebrew filenames are reversed
58257         Tests: 
58258         fast/text/international/bidi-listbox.html
58259         fast/text/international/bidi-listbox-atsui.html
58261         * rendering/RenderBlock.h: Added static bidiReorderCharacters that will run the bidi algorithm on a character buffer.
58262         * rendering/bidi.cpp:
58263         (WebCore::RenderBlock::bidiReorderCharacters): Added. Creates an anonymous RenderBlock and RenderText to feed into bidiReorderLines.
58264         (WebCore::RenderBlock::constructLine): Uses the new convenience methods on BidiRun.
58265         * rendering/bidi.h:
58266         (WebCore::BidiRun::reversed): Added convenience method.
58267         (WebCore::BidiRun::dirOverride): ditto.
58269         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Creates a buffer and calls bidiReorderCharacters
58270           to get a correctly ordered character buffer for drawText.
58271         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
58273 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58275         Reviewed by Darin.
58277         - fix http://bugs.webkit.org/show_bug.cgi?id=12590
58278           REGRESSION: Text selection is weird in textareas in Trac wiki editing pages
58280         Test: fast/repaint/selection-gap-overflow-scroll.html
58282         * rendering/RenderBlock.cpp:
58283         (WebCore::RenderBlock::selectionGapRects): Adjust for overflow scroll.
58285 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58287         Reviewed by Adele.
58289         - fix http://bugs.webkit.org/show_bug.cgi?id=11916
58290           REGRESSION (SearchField): RTL search fields are mixed up
58292         Test: fast/forms/search-rtl.html
58294         * rendering/RenderTextControl.cpp:
58295         (WebCore::RenderTextControl::createInnerBlockStyle): Always make the inner
58296         block LTR so that the results button will be on the left and the cancel
58297         button will be on the right.
58298         (WebCore::RenderTextControl::createInnerTextStyle): Inherit the direction
58299         property directly from the control so that it won't be masked by the inner
58300         block's LTR override.
58301         (WebCore::RenderTextControl::nodeAtPoint): Removed code that swapped the
58302         results and cancel buttons for RTL.
58303         (WebCore::RenderTextControl::forwardEvent): Ditto.
58304         (WebCore::RenderTextControl::clientPaddingLeft): Ditto.
58305         (WebCore::RenderTextControl::clientPaddingRight): Ditto.
58307 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58309         Reviewed by Adele.
58311         - fix http://bugs.webkit.org/show_bug.cgi?id=12618
58312           REGRESSION (SearchField): Dragging across the text and releasing over the clear button clears the field
58314         Test: fast/forms/search-cancel-button-mouseup.html
58316         Made the cancel button capturing.
58318         * html/HTMLTextFieldInnerElement.cpp:
58319         (WebCore::HTMLSearchFieldCancelButtonElement::HTMLSearchFieldCancelButtonElement):
58320         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
58321         * html/HTMLTextFieldInnerElement.h:
58323 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58325         Reviewed by Darin.
58327         - fix http://bugs.webkit.org/show_bug.cgi?id=6626
58328           Arabic & Farsi rendered with no shaping (all glyphs separate, unreadable!)
58330         No test possible since Mac OS X only ships with fonts that contain shaping
58331         information.
58333         * icu/unicode/ushape.h: Added from
58334         http://www.opensource.apple.com/darwinsource/10.4.8.ppc/ICU-6.2.9/icuSources/common/unicode/
58335         * platform/FontData.h:
58336         (WebCore::FontData::shapesArabic): Added. Returns whether the font contains
58337         shaping information for Arabic or not.
58338         * platform/mac/FontDataMac.mm:
58339         (WebCore::FontData::platformInit):
58340         (WebCore::FontData::checkShapesArabic): Added. Checks whether the font contains
58341         a glyph metamorphosis table. The heuristic is that if a font contains Arabic glyphs
58342         and a metamorphosis table, then it includes shaping information for Arabic.
58343         * platform/mac/FontMac.mm:
58344         (WebCore::overrideLayoutOperation): Changed to use the same character buffer passed
58345         to ATSUI instead of the original character buffer and to give zero-width spaces zero
58346         width.
58347         (WebCore::isArabicLamWithAlefLigature): Added. Checks if the character is one
58348         of the Arabic presentation forms of Lam with Alef.
58349         (WebCore::shapeArabic): Added. This is a wrapper around the ICU Arabic shaping routine
58350         that replaces each space following a Lam with Alef ligature resulting from shaping
58351         with a zero-width space.
58352         (WebCore::ATSULayoutParameters::initialize): Changed to allocate the auxiliary buffer
58353         lazily for mirroring and Arabic shaping. Added a call to shapeArabic() when required.
58355 2007-02-05  Eric Seidel  <eric@webkit.org>
58357         No review, build fix only.
58359         * ksvg2/svg/SVGStyleElement.cpp: add forgotten header.
58361 2007-02-05  Eric Seidel  <eric@webkit.org>
58363         Reviewed by bdash.
58365         Fix style name testcase which I broke in my last commit.
58367         * ksvg2/svg/SVGStyleElement.cpp:
58368         (WebCore::SVGStyleElement::xmlspace):
58369         (WebCore::SVGStyleElement::title): override Element::title()
58370         (WebCore::SVGStyleElement::parseMappedAttribute):
58371         * ksvg2/svg/SVGStyleElement.h:
58373 2007-02-04  Eric Seidel  <eric@webkit.org>
58375         Reviewed by darin.
58377         Fix hand cursor on link hover for SVG
58378         Fix status text on link hover for SVG
58379         Fix tooltips on link hover for SVG
58380         Fix link dragging for SVG
58381         http://bugs.webkit.org/show_bug.cgi?id=12575
58382         
58383         Test: added manual-tests/svg-links.svg
58385         * dom/Document.cpp:
58386         (WebCore::Document::prepareMouseEvent):
58387         * dom/Element.cpp:
58388         (WebCore::Element::title):
58389         * dom/Element.h:
58390         * html/HTMLElement.cpp:
58391         (WebCore::HTMLElement::setId):
58392         (WebCore::HTMLElement::title):
58393         (WebCore::HTMLElement::setTitle):
58394         (WebCore::HTMLElement::setLang):
58395         * html/HTMLElement.h:
58396         * ksvg2/svg/SVGAElement.cpp:
58397         (WebCore::SVGAElement::title):
58398         (WebCore::SVGAElement::parseMappedAttribute):
58399         (WebCore::SVGAElement::defaultEventHandler):
58400         * ksvg2/svg/SVGAElement.h:
58401         * ksvg2/svg/SVGTitleElement.cpp:
58402         * ksvg2/svg/SVGTitleElement.h:
58403         * manual-tests/svg-links.svg: Added.
58404         * rendering/HitTestResult.cpp:
58405         (WebCore::HitTestResult::title):
58406         (WebCore::HitTestResult::absoluteImageURL):
58407         (WebCore::HitTestResult::absoluteLinkURL):
58408         (WebCore::HitTestResult::isLiveLink):
58409         (WebCore::HitTestResult::titleDisplayString):
58411 2007-02-04  Alexey Proskuryakov  <ap@webkit.org>
58413         Reviewed by Darin.
58415         http://bugs.webkit.org/show_bug.cgi?id=12602
58416         XPath functions string(), normalize-space() and string-length() don't work
58417         without arguments
58419         Test: fast/xpath/implicit-node-args.html
58421         * xml/XPathFunctions.cpp:
58422         (WebCore::XPath::FunString::doEvaluate):
58423         (WebCore::XPath::FunStringLength::doEvaluate):
58424         (WebCore::XPath::FunNormalizeSpace::doEvaluate):
58425         Don't try to pass RefPtr<Node> to the Value ctor.
58427 2007-02-04  Alexey Proskuryakov  <ap@webkit.org>
58429         Reviewed by Darin.
58431         http://bugs.webkit.org/show_bug.cgi?id=8791
58432         XPath should support custom node resolvers
58434         * bindings/js/JSCustomXPathNSResolver.cpp: Added.
58435         (WebCore::JSCustomXPathNSResolver::create):
58436         (WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
58437         (WebCore::JSCustomXPathNSResolver::~JSCustomXPathNSResolver):
58438         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
58439         * bindings/js/JSCustomXPathNSResolver.h: Added.
58440         * bindings/objc/DOMCustomXPathNSResolver.h: Added.
58441         * bindings/objc/DOMCustomXPathNSResolver.mm: Added.
58442         (WebCore::DOMCustomXPathNSResolver::DOMCustomXPathNSResolver):
58443         (WebCore::DOMCustomXPathNSResolver::~DOMCustomXPathNSResolver):
58444         (WebCore::DOMCustomXPathNSResolver::lookupNamespaceURI):
58445         Wrappers for JS/ObjC objects that can be used as resolvers.
58447         * bindings/scripts/CodeGeneratorJS.pm:
58448         * bindings/scripts/CodeGeneratorObjC.pm:
58449         Use the above wrappers to support custom resolvers.
58451         * xml/XPathNSResolver.cpp:
58452         * xml/XPathNSResolver.h:
58453         Turned this class into an abstract one.
58455         * xml/NativeXPathNSResolver.cpp: Added.
58456         (WebCore::NativeXPathNSResolver::NativeXPathNSResolver):
58457         (WebCore::NativeXPathNSResolver::~NativeXPathNSResolver):
58458         (WebCore::NativeXPathNSResolver::lookupNamespaceURI):
58459         * xml/NativeXPathNSResolver.h: Added.
58460         A XPathNSResolver subclass, doing what XPathNSResolver used to do.
58462         * xml/XPathEvaluator.cpp:
58463         (WebCore::XPathEvaluator::createNSResolver): Create a NativeXPathNSResolver.
58465         * WebCore.xcodeproj/project.pbxproj: Added new files.
58467 2007-02-04  Oliver Hunt  <oliver@apple.com>
58469         Reviewed by Adam.
58471         Tidying up EventHandler, and moving more of
58472         EventHandlerMac.mm to EventHandler.cpp
58474         Also added EventHandler::eventLoopHandleMouse[Dragged,Up]
58475         these are basically helper functions to allow correct event
58476         handling on MacOS.        
58478         * page/EventHandler.cpp:
58479         (WebCore::EventHandler::handleMouseUp):
58480         (WebCore::EventHandler::dragSourceMovedTo):
58481         (WebCore::EventHandler::dragSourceEndedAt):
58482         (WebCore::EventHandler::dispatchDragSrcEvent):
58483            Moved from EventHandlerMac to EventHandler
58485         * page/EventHandler.h:
58486         (WebCore::EventHandler::eventLoopHandleMouseUp):
58487         (WebCore::EventHandler::eventLoopHandleMouseDragged):
58488           Null implementations of two Mac helper functions
58489         * page/mac/EventHandlerMac.mm:
58490         (WebCore::EventHandler::eventLoopHandleMouseDragged):           
58491         (WebCore::EventHandler::handleDrag):
58492           Much tidying, reduced nesting, made less dependent on NS types   
58493         (WebCore::EventHandler::eventLoopHandleMouseDragged):
58494         (WebCore::EventHandler::eventLoopHandleMouseUp):  
58495           Helper functions to let us process events properly on MacOS
58497         * page/mac/WebCoreFrameBridge.mm:
58498         (-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
58500 2007-02-04  George Staikos  <staikos@kde.org>
58502         Reviewed by Zack.
58504         Some Qt hacks and cleanups - makes rendering of forms much better on
58505         OS X
58507         * platform/qt/PlatformKeyboardEventQt.cpp: Add Key_Return/Enter
58508         (WebCore::keyIdentifierForQtKeyCode):
58509         (WebCore::windowsKeyCodeForKeyEvent):
58510         * platform/qt/RenderThemeQt.cpp: Hacks and fix buttons
58511         (WebCore::RenderThemeQt::addIntrinsicMargins):
58512         (WebCore::RenderThemeQt::setCheckboxSize):
58513         (WebCore::RenderThemeQt::supportsFocus):
58514         (WebCore::RenderThemeQt::applyTheme):
58516 2007-02-03  Maciej Stachowiak  <mjs@apple.com>
58518         Rubber stamped by Adam.
58520         - remove obsolete code that has an annoying space in the directory name
58522         * WebCore.vcproj/Image Viewer/Image Viewer.cpp: Removed.
58523         * WebCore.vcproj/Image Viewer/Image Viewer.h: Removed.
58524         * WebCore.vcproj/Image Viewer/Image Viewer.rc: Removed.
58525         * WebCore.vcproj/Image Viewer/Image Viewer.reg: Removed.
58526         * WebCore.vcproj/Image Viewer/Image Viewer.vcproj: Removed.
58527         * WebCore.vcproj/Image Viewer/ImageDocument.cpp: Removed.
58528         * WebCore.vcproj/Image Viewer/ImageDocument.h: Removed.
58529         * WebCore.vcproj/Image Viewer/ImageMainFrame.cpp: Removed.
58530         * WebCore.vcproj/Image Viewer/ImageMainFrame.h: Removed.
58531         * WebCore.vcproj/Image Viewer/ImageView.cpp: Removed.
58532         * WebCore.vcproj/Image Viewer/ImageView.h: Removed.
58533         * WebCore.vcproj/Image Viewer/Resource.h: Removed.
58534         * WebCore.vcproj/Image Viewer/res/Image Viewer.ico: Removed.
58535         * WebCore.vcproj/Image Viewer/res/Image ViewerDoc.ico: Removed.
58536         * WebCore.vcproj/Image Viewer/res/ImageViewer.rc2: Removed.
58537         * WebCore.vcproj/Image Viewer/res/Toolbar.bmp: Removed.
58538         * WebCore.vcproj/Image Viewer/stdafx.cpp: Removed.
58539         * WebCore.vcproj/Image Viewer/stdafx.h: Removed.
58541 2007-02-04  Mitz Pettel  <mitz@webkit.org>
58543         Reviewed by Oliver.
58545         - fix http://bugs.webkit.org/show_bug.cgi?id=12564
58546           REGRESSION: Uncaught AppKit exception when using the scrollwheel while Gmail is loading
58548         * platform/mac/PlatformMouseEventMac.mm:
58549         (WebCore::eventNumberForEvent): Scroll wheel events don't have an event number.
58551 2007-02-04  Nikolas Zimmermann  <zimmermann@kde.org>
58553         Reviewed by Sam.
58555         Add support for xml:space="preserve" for SVG text.
58556         It can be modeled by using white-space="pre" and replace \n by spaces.
58558         Handle xml:space="default" correctly.
58559         Always remove tabs from SVG text - as demanded by spec.
58561         Added test: svg/custom/text-whitespace-handling.svg
58563         * css/svg.css:
58564         * ksvg2/svg/SVGTextContentElement.cpp:
58565         (WebCore::SVGTextContentElement::parseMappedAttribute):
58566         * rendering/RenderText.cpp:
58567         (WebCore::RenderText::setStyle):
58568         (WebCore::RenderText::setTextInternal):
58569         * rendering/bidi.cpp:
58570         (WebCore::shouldPreserveNewline):
58571         (WebCore::RenderBlock::skipWhitespace):
58572         (WebCore::RenderBlock::findNextLineBreak):
58574 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58576         Reviewed by Darin.
58578         http://bugs.webkit.org/show_bug.cgi?id=12560
58579         W3C XPath test Text_Nodes.svg fails
58581         Covered by dom/svg/level3/xpath/Text_Nodes.svg
58583         * xml/XPathStep.cpp:
58584         (WebCore::XPath::Step::nodeTestMatches): Only include the first text sibling in text() matches.
58586 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58588         Reviewed by Darin.
58590         http://bugs.webkit.org/show_bug.cgi?id=12485
58591         XPath id() function doesn't work as root in paths
58593         Test: fast/xpath/id-path.html
58595         * xml/XPathPath.cpp:
58596         (WebCore::XPath::Path::doEvaluate): Implemented.
58597         (WebCore::XPath::LocationPath::evaluate): A new overload that takes an initial NodeVector.
58598         (WebCore::XPath::LocationPath::doEvaluate): Moved most of the logic to the new evaluate().
58600         * xml/XPathPath.h: Added a new evaluate() overload and a using declaration to keep the
58601         generic one visible.
58603 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58605         Reviewed by Darin.
58607         http://bugs.webkit.org/show_bug.cgi?id=12559
58608         REGRESSION: Crash in checkForHeadCharset() under GuardMalloc
58610         No tests possible.
58612         * loader/TextResourceDecoder.cpp:
58613         (WebCore::TextResourceDecoder::checkForHeadCharset): Fix end of buffer checks; sprinkle a number 
58614         of new ones over the function.
58616 2007-02-03  David Kilzer  <ddkilzer@webkit.org>
58618         Reviewed by NOBODY (no-svg build fix).
58620         * page/EventHandler.cpp: Include FloatPoint.h.
58622 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58624         Reviewed by Mitz.
58626         http://bugs.webkit.org/show_bug.cgi?id=12549
58627         Wrong character encoding at www.ravmilim.co.il
58629         Test: fast/encoding/meta-charset.html
58631         * loader/TextResourceDecoder.cpp:
58632         (WebCore::TextResourceDecoder::checkForHeadCharset): Fix an off by one error.
58634 2007-02-02  Maciej Stachowiak  <mjs@apple.com>
58635         
58636         Reviewed by Hyatt & Adele.
58637         
58638         - <rdar://problem/4896972> TV guide listings page doesn't finish loading (11674)
58639         
58640         Test case: fast/forms/disabled-select-change-index.html
58641         
58642         * html/HTMLOptionElement.cpp:
58643         (WebCore::HTMLOptionElement::setSelected): Allow changing selected state of a disabled
58644         option.
58645         
58646 2007-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
58648         Build fix, not reviewed.
58650         Blind attempt to fix Qt build.
58652         * WebCore.pro: Add RenderSVGGradientStop.cpp / RenderSVGHiddenContainer.cpp
58654 2007-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
58656         Reviewed by Eric & Maciej.
58658         Fix serveral <use> issues:
58659         - When events are dispatch to a referenced element, the actual event.target
58660           has to be set to the corresponding SVGElementInstance object
58662         - Node::shadowAncestorNode() should _not_ return the shadowParentNode for SVG elements
58663           This is only needed for the HTML forms concept and breaks event dispatching for SVG shadow tree elements.
58665         - Add SVGElementInstance as possible EventTarget in bindings/js/kjs_dom.cpp
58666           (Now event.target returns the actual SVGElementInstance object for a shadow tree element)
58668         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12502 (Reproducible crash when browsing SVG map.)
58669         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12511 (<use> has event dispatching issues)
58671         Added test: svg/custom/use-event-handler-on-use-element.svg
58672         Added test: svg/custom/use-event-handler-on-referenced-element.svg
58673         Added test: svg/custom/use-elementInstance-event-target.svg
58674         Added test: svg/custom/use-elementInstance-methods.svg
58676         * bindings/js/kjs_dom.cpp:
58677         (KJS::toJS):
58678         * dom/EventTarget.cpp:
58679         (WebCore::EventTarget::toSVGElementInstance):
58680         * dom/EventTarget.h:
58681         * dom/EventTargetNode.cpp:
58682         (WebCore::EventTargetNode::handleLocalEvents):
58683         (WebCore::EventTargetNode::dispatchGenericEvent):
58684         (WebCore::EventTargetNode::dispatchEvent):
58685         * dom/EventTargetNode.h:
58686         * dom/Node.cpp:
58687         (WebCore::Node::shadowAncestorNode):
58688         * ksvg2/svg/SVGElement.cpp:
58689         (WebCore::shadowTreeParentElementForShadowTreeElement):
58690         (WebCore::SVGElement::dispatchEvent):
58691         * ksvg2/svg/SVGElement.h:
58692         * ksvg2/svg/SVGElementInstance.cpp:
58693         (WebCore::SVGElementInstance::toSVGElementInstance):
58694         * ksvg2/svg/SVGElementInstance.h:
58695         * ksvg2/svg/SVGUseElement.cpp:
58696         (WebCore::SVGUseElement::notifyAttributeChange):
58697         (WebCore::SVGUseElement::instanceForShadowTreeElement):
58698         * ksvg2/svg/SVGUseElement.h:
58700 2007-02-02  Oliver Hunt  <oliver@apple.com>
58702         Reviewed by Geoff.
58704         Add guard around accessing [NSEvent eventNumber] to ensure
58705         we don't attempt to access it on on non-mouse related NSEvent.
58707         * platform/mac/PlatformMouseEventMac.mm:
58708         (WebCore::eventNumberForEvent):
58709         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
58711 2007-02-02  Adam Roben  <aroben@apple.com>
58713         Reviewed by Anders.
58715         Try to be a little less selfish about DocumentLoader.
58717         Spotted while working on <rdar://problem/4957747>.
58719         * page/ContextMenuController.cpp:
58720         (WebCore::ContextMenuController::contextMenuItemSelected):
58721             Everyone can open frames in new windows.
58723 2007-02-02  Nikolas Zimmermann  <zimmermann@kde.org>
58725         Reviewed by Eric.
58727         Move xml:space/xml:lang from svgattrs.in to xmlattrs.in where they actually belong.
58728         Now they are actually recognized by SVGLangSpace::parseMappedAttribute.
58729         Patch implementing xml:space="preserve" coming soon, which acts as test for this stuff.
58731         Always build XMLNames.cpp (not only for SVG) and replace all occourences of
58732         "http://www.w3.org/XML/1998/namespace" by "XMLNames::xmlNamespaceURI".
58734         * DerivedSources.make:
58735         * dom/DOMImplementation.cpp:
58736         (WebCore::DOMImplementation::createDocument):
58737         * ksvg2/svg/SVGLangSpace.cpp:
58738         (WebCore::SVGLangSpace::SVGLangSpace):
58739         (WebCore::SVGLangSpace::parseMappedAttribute):
58740         * ksvg2/svg/SVGLangSpace.h:
58741         * ksvg2/svg/svgattrs.in:
58742         * page/Frame.cpp:
58743         (WebCore::Frame::Frame):
58744         * xml/XPathNSResolver.cpp:
58745         (WebCore::XPathNSResolver::lookupNamespaceURI):
58746         * xml/xmlattrs.in:
58748 2007-02-02  Beth Dakin  <bdakin@apple.com>
58750         Reviewed by Maciej.
58752         Working on a layout test.
58754         Fix for <rdar://problem/4966100> REGRESSION: Reproducible ASSERT 
58755         hit at Walgreens.com
58757         * page/Frame.cpp:
58758         (WebCore::Frame::setView): If we are setting the view to 0 and 
58759         detaching the document, call unscheduleRealyout() on the old view 
58760         before setting it to 0.
58762 2007-02-01  Geoffrey Garen  <ggaren@apple.com>
58764         Reviewed by Maciej Stachowiak.
58765         
58766         Added support for selectively ignoring WebCore::Node leaks during layout
58767         tests, so that we can ignore known leaks in other components.
58769         * WebCore.exp:
58770         * dom/Node.cpp:
58771         (WebCore::Node::isSupported): Moved isSupported up with the rest of the static functions.
58773         (WebCore::): Added an ignoreSet, which collects WebCore::Nodes whose lifetime
58774         we want to ignore. We need to track which nodes to ignore rather than, say,
58775         just suspending the count, because node destruction depends on lots of
58776         different variables, so it would be nearly impossible to know when exactly 
58777         to suspend the count and when exactly to resume it.
58779         (WebCore::NodeCounter::~NodeCounter): Changed to use WTFLog instead of fprintf.
58781         (WebCore::Node::startIgnoringLeaks): Do the ignoring.
58782         (WebCore::Node::stopIgnoringLeaks): ditto
58783         (WebCore::Node::Node): ditto
58784         (WebCore::Node::~Node): ditto
58786         * dom/Node.h: Moved isSupported up with the rest of the static functions.
58788         * platform/mac/LoggingMac.mm:
58789         (WebCore::initializeWithUserDefault): Renamed from "initializeLoggingChannel"
58790         because the real goal here is to honor a user default -- WTFLoggingChannels
58791         need no run-time initialization. Also replaced "off by default, on if a 
58792         user default says so" behavior with "only override existing setting if a
58793         user default says so" behavior. It seemed like a bug that you would specify 
58794         a channel's on/off state in its definition, but this function would unconditionally
58795         blow that state away.
58796         (WebCore::InitializeLoggingChannelsIfNecessary):
58798 2007-02-02  Eric Seidel  <eric@webkit.org>
58800         Reviewed by mitz.
58802         Fix gradient stop style resolution to be less of a hack, fixing style invalidation:
58803         http://bugs.webkit.org/show_bug.cgi?id=12193
58804         and fix stop-color and stop-opacity not to inherit:
58805         http://bugs.webkit.org/show_bug.cgi?id=12193
58806         
58807         Tests:
58808         * svg/custom/gradient-stops-style-change.svg: added
58809         * svg/W3C-SVG-1.1/pservers-grad-18-b.svg: updated
58811         * WebCore.xcodeproj/project.pbxproj:
58812         * ksvg2/css/SVGCSSStyleSelector.cpp:
58813         (WebCore::CSSStyleSelector::applySVGProperty):
58814         * ksvg2/css/SVGRenderStyle.cpp:
58815         (WebCore::SVGRenderStyle::inheritedNotEqual):
58816         (WebCore::SVGRenderStyle::inheritFrom):
58817         * ksvg2/css/SVGRenderStyle.h:
58818         * ksvg2/svg/SVGDefsElement.cpp:
58819         (WebCore::SVGDefsElement::createRenderer):
58820         * ksvg2/svg/SVGGradientElement.cpp:
58821         (WebCore::SVGGradientElement::createRenderer):
58822         (WebCore::SVGGradientElement::buildStops):
58823         * ksvg2/svg/SVGGradientElement.h:
58824         (WebCore::SVGGradientElement::rendererIsNeeded):
58825         * ksvg2/svg/SVGStopElement.cpp:
58826         (WebCore::SVGStopElement::createRenderer):
58827         * ksvg2/svg/SVGStopElement.h:
58828         (WebCore::SVGStopElement::rendererIsNeeded):
58829         * rendering/RenderSVGGradientStop.cpp: Added.
58830         * rendering/RenderSVGGradientStop.h: Added.
58831         * rendering/RenderSVGHiddenContainer.cpp: Added.
58832         * rendering/RenderSVGHiddenContainer.h: Added.
58833         * rendering/RenderSVGContainer.cpp:
58834         * rendering/RenderSVGContainer.h:
58836 2007-02-02  Zack Rusin  <zrusin@trolltech.com>
58838         Reviewed by Lars
58840         Fix scrolling-on-selection bug by correctly
58841         scrolling to the offset instead of trying to 
58842         ensure visibility with margins.
58844         * platform/qt/ScrollViewQt.cpp:
58845         (WebCore::ScrollView::scrollPointRecursively):
58847 2007-02-02  Zack Rusin  <zrusin@trolltech.com>
58849         Reviewed by Lars
58851         Fix drawing of dashed and colored lines. Pen
58852         has to be inherited for stroke to stay consistent.
58854         * platform/graphics/qt/GraphicsContextQt.cpp:
58855         (WebCore::GraphicsContext::setAlpha):
58856         (WebCore::GraphicsContext::setPlatformStrokeColor):
58857         (WebCore::GraphicsContext::setPlatformStrokeStyle):
58859 2007-02-01  Nicholas Shanks  <webkit@nickshanks.com>
58861         Reviewed by Mark.
58863         Add support for CSS2 font-stretch property.
58865         * css/CSSComputedStyleDeclaration.cpp:
58866         (WebCore::):
58867         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58868         * css/cssparser.cpp:
58869         (WebCore::CSSParser::parseValue):
58870         * css/cssstyleselector.cpp:
58871         (WebCore::CSSStyleSelector::applyDeclarations):
58872         (WebCore::CSSStyleSelector::applyProperty):
58873         * platform/FontCache.cpp:
58874         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
58875         (WebCore::FontPlatformDataCacheKey::operator==):
58876         (WebCore::computeHash):
58877         (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
58878         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
58879         (WebCore::FontCache::getCachedFontPlatformData):
58880         * platform/FontDescription.h:
58881         (WebCore::):
58882         (WebCore::FontDescription::FontDescription):
58883         (WebCore::FontDescription::stretch):
58884         (WebCore::FontDescription::narrowerStretch):
58885         (WebCore::FontDescription::widerStretch):
58886         (WebCore::FontDescription::setStretch):
58887         (WebCore::FontDescription::operator==):
58888         * platform/mac/FontCacheMac.mm:
58889         (WebCore::FontCache::createFontPlatformData):
58890         * platform/mac/WebFontCache.mm:
58891         (acceptableChoice):
58892         (betterChoice):
58893         (+[WebFontCache fontWithFamily:traits:size:]):
58895 2007-02-01  Timothy Hatcher  <timothy@apple.com>
58897         Reviewed by Mark Rowe.
58899         <rdar://problem/4969201> REGRESSION: Safari applies the wrong font to BODY element at http://www.apple.com/downloads/dashboard/
58901         * platform/mac/WebFontCache.mm:
58902         (+[WebFontCache fontWithFamily:traits:size:]): Don't call [NSFont fontWithName:] with the desiredFamily on Tiger.
58904 2007-02-01  Alexey Proskuryakov  <ap@webkit.org>
58906         Reviewed by Darin.
58908         http://bugs.webkit.org/show_bug.cgi?id=12506
58909         REGRESSION: Safari doesn't display hebrew text on a web page,
58910         displayed correctly on Tiger
58912         * loader/TextResourceDecoder.cpp:
58913         (WebCore::TextResourceDecoder::checkForHeadCharset): Advance the pointer when necessary.
58915 2007-02-01  George Staikos  <staikos@kde.org>
58917         Reviewed by Zack and Lars.
58919         Add a cookie interface for the Qt build.
58921         * WebCore.pro:
58922         * platform/qt/CookieJarQt.cpp:
58923         (WebCore::setCookies):
58924         (WebCore::cookies):
58925         (WebCore::cookiesEnabled):
58927 2007-02-01  Maciej Stachowiak  <mjs@apple.com>
58929         Reviewed by Adele.
58930         
58931         - fixed <rdar://problem/4922764> ASSERTION: (!m_contentFunction) in PolicyCheck::call trying to visit feed URL (CNN, Apple, etc.)
58933         * loader/FrameLoader.cpp:
58934         (WebCore::FrameLoader::stopPolicyCheck): Call new cancel method instead of call(false) on old check.
58935         (WebCore::PolicyCheck::cancel): call any callback function that is set with false or PolicyIgnore as
58936         appropriate.
58937         * loader/FrameLoader.h:
58939 2007-02-01  Beth Dakin  <bdakin@apple.com>
58941         Reviewed by Hyatt.
58943         Fix for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION 
58944         (r12065-r12082): Navigation graphic wraps to the next line on 
58945         duart.com and <rdar://problem/4960505> REGRESSION: The Awesome 
58946         Windows Vista page has a layout error in the header table (10517)
58948         The problem is that we never supported a quirk that other browsers 
58949         support where, under very specific circumstances, a table cell will 
58950         grow to fit an image inside of it. This is only a regression 
58951         because a bug was fixed were we were 1 pixel off in the calculation 
58952         of overflow in some cases.
58954         * rendering/RenderBlock.cpp:
58955         (WebCore::shouldGrowTableCellForImage):
58956         (WebCore::RenderBlock::calcInlineMinMaxWidth):
58958 2007-02-01  Zack Rusin  <zrusin@trolltech.com>
58960         Reviewed by Lars
58962         Implement native look for comboboxes
58963         and fix/implement popup menus.
58965         * platform/PopupMenu.h:
58966         * platform/qt/PopupMenuQt.cpp:
58967         (WebCore::PopupMenu::PopupMenu):
58968         (WebCore::PopupMenu::~PopupMenu):
58969         (WebCore::PopupMenu::clear):
58970         (WebCore::PopupMenu::populate):
58971         (WebCore::PopupMenu::show):
58972         (WebCore::PopupMenu::hide):
58973         (WebCore::PopupMenu::updateFromElement):
58974         * platform/qt/RenderThemeQt.cpp:
58975         (WebCore::RenderThemeQt::adjustMenuListStyle):
58976         (WebCore::RenderThemeQt::paintButton):
58977         (WebCore::RenderThemeQt::paintTextField):
58978         (WebCore::RenderThemeQt::paintMenuList):
58980 2007-02-01  Darin Adler  <darin@apple.com>
58982         Reviewed by Maciej.
58984         - fix <rdar://problem/4887428> REGRESSION: Implement slight delay for firing incremental onSearch event
58986         * rendering/RenderTextControl.h:
58987         * rendering/RenderTextControl.cpp:
58988         (WebCore::RenderTextControl::RenderTextControl): Set up timer.
58989         (WebCore::RenderTextControl::subtreeHasChanged): Start timer here instead of immediately sending event.
58990         (WebCore::RenderTextControl::searchEventTimerFired): Added. Sends search event.
58991         (WebCore::RenderTextControl::stopSearchEventTimer): Added.
58992         (WebCore::RenderTextControl::startSearchEventTimer): Added. Sends search event right away if there is
58993         no text. If there is some text, sets the timer using the same delay rule as NSSearchField. If you keep
58994         typing, then the timer keeps getting reset 0.2 seconds into the future until you pause.
58996         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::onSearch): Tell the renderer to
58997         stop the timer, since we're sending a search event. This helps when a caller other than
58998         the timer decides to send an explicit search event.
59000 2007-02-01  Maciej Stachowiak  <mjs@apple.com>
59002         Fix by Darin, reviewed by Maciej.
59004         - fix ~10% performance regression from encoding fix
59006         * loader/TextResourceDecoder.cpp:
59007         (WebCore::TextResourceDecoder::checkForHeadCharset): Fix a logic
59008         error which made huge strings accidentally.
59010 2007-02-01  Lars Knoll <lars@trolltech.com>
59012         Fix the Qt build
59014         * page/qt/EventHandlerQt.cpp:
59016 2007-01-31  Darin Adler  <darin@apple.com>
59018         Reviewed by Adam and Geoff.
59020         - fix <rdar://problem/4786767> REGRESSION: <select> controls are not resized when zooming text
59022         Test: fast/forms/select-width-font-change.html
59024         * rendering/RenderMenuList.h: Cleaned up formatting a bit. Removed unneeded include of PopupMenu.h.
59025         Made a lot more things private, including the PopupMenuClient base class, all of the virtual
59026         functions from PopupMenuClient, and the setTextFromOption function. Added updateOptionsWidth.
59028         * rendering/RenderMenuList.cpp:
59029         (WebCore::RenderMenuList::setStyle): Added code to call updateOptionsWidth when the font changes.
59030         (WebCore::RenderMenuList::updateOptionsWidth): Added. Factored code out of updateFromElement.
59031         Changed to do nothing when m_optionsWidth is already correct.
59032         (WebCore::RenderMenuList::updateFromElement): Moved code to recomputed options width to the new
59033         updateOptionsWidth function.
59034         (WebCore::RenderMenuList::text): Made const.
59036 2007-01-31  Oliver Hunt  <oliver@apple.com>
59038         Reviewed by Adam.
59040         Migrate more drag and drop logic to WebCore, start preparing
59041         to move EventHandler::handleDrag from EventHandlerMac to EventHandler 
59043         * WebCore.exp:   
59044           updating methods
59045                     
59046         * dom/Clipboard.cpp:
59047         * dom/Clipboard.h:
59048         (WebCore::Clipboard::Clipboard):
59049         (WebCore::Clipboard::setDragHasStarted):
59050         (WebCore::Clipboard::dragStarted): 
59051           Moving from ClipboardMac to Clipboard 
59053         * dom/EventTargetNode.cpp:
59054         (WebCore::EventTargetNode::dispatchMouseEvent):
59055           PlatformMouseEvent no longer lies about button state, however 
59056           DOM Events don't allow NoButton, so we need to convert NoButton 
59057           to LeftButton when we create a DOM Event from PlatformMouseEvent
59059         * page/DragClient.h:
59060           Tidying comment 
59062         * page/DragController.cpp:
59063         (WebCore::createMouseEvent):
59064           Updated for new PlatformMouseEvent constructors
59065         (WebCore::DragController::mayStartDragAtEventLocation):
59066           Migrated from WebKit
59068         * page/DragController.h:
59069           Added above function declarations
59071         * page/EventHandler.cpp:
59072         (WebCore::EventHandler::dragState): 
59073         (WebCore::EventHandler::dragHysteresisExceeded):
59074         (WebCore::EventHandler::freeClipboard):
59075         (WebCore::EventHandler::shouldDragAutoNode):
59076           Moved from EventHandlerMac
59077         (WebCore::EventHandler::handleMouseMoveEvent):
59078         (WebCore::EventHandler::eventMayStartDrag):
59079         (WebCore::EventHandler::handleMousePressEvent):
59080           Use DragController     
59082         * page/EventHandler.h:
59083           Added DragState struct definition to EventHandler
59085         * page/mac/EventHandlerMac.mm:
59086         (WebCore::EventHandler::eventActivatedView):
59087         (WebCore::EventHandler::handleDrag):
59088         (WebCore::EventHandler::handleMouseUp):
59089         (WebCore::EventHandler::mouseDown):
59090           Update to use DragController and PlatformMouseEvent
59092         * page/mac/WebCoreFrameBridge.h:
59093         * page/mac/WebCoreFrameBridge.mm:
59094         (-[WebCoreFrameBridge dragSourceMovedTo:]):
59095         (-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
59096           Use DragController for state
59098         * platform/PlatformMouseEvent.h:
59099         (WebCore::):
59100         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
59101         (WebCore::PlatformMouseEvent::eventType):
59102         (WebCore::PlatformMouseEvent::timestamp):
59103         (WebCore::PlatformMouseEvent::eventNumber):
59104         (WebCore::PlatformMouseEvent::setClickCount):
59105           Exposing necessary data for Drag logic
59107         * platform/mac/ClipboardMac.h:
59108         * platform/mac/ClipboardMac.mm:
59109         (WebCore::ClipboardMac::ClipboardMac):
59110         (WebCore::ClipboardMac::setDragImage):
59111           Have moved a number of fields from ClipboardMac to Clipboard
59112           so need to use accessors in a few places now
59114         * platform/mac/PlatformMouseEventMac.mm:
59115         (WebCore::mouseButtonForEvent):
59116         (WebCore::mouseEventForNSEvent):
59117         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
59118           Determine MouseEventType, and provide event time info
59120 2007-01-31  Alexey Proskuryakov  <ap@webkit.org>
59122         Reviewed by Darin.
59124         http://bugs.webkit.org/show_bug.cgi?id=12506
59125         REGRESSION: Safari doesn't display hebrew text on a web page,
59126         displayed correctly on Tiger
59128         * loader/TextResourceDecoder.cpp:
59129         (WebCore::TextResourceDecoder::checkForHeadCharset): Skip over 
59130         quoted attributes.
59132 2007-01-31  David Carson  <dacarson@gmail.com>
59134         Reviewed by Darin.
59136         - fix http://bugs.webkit.org/show_bug.cgi?id=12510
59137         Initialize the variable m_totalLoops
59138         Is tested by LayoutTests/fast/css/MarqueeLayoutTest.html
59140         * rendering/RenderLayer.cpp:
59141         (WebCore::Marquee::Marquee):
59143 2007-01-31  Anders Carlsson  <acarlsson@apple.com>
59145         Reviewed by Maciej.
59147         <rdar://problem/4886776>
59148         REGRESSION: After opening a web archive, location shows the actual URL, not the webarchive file
59150         * WebCore.exp:
59151         * loader/FrameLoader.cpp:
59152         (WebCore::FrameLoader::continueLoadWithData):
59153         * loader/FrameLoader.h:
59154         New function which continues a load but using a given buffer instead.
59155         
59156 2007-01-31  Adele Peterson  <adele@apple.com>
59158         Reviewed by Adam.
59160         Fix for http://bugs.webkit.org/show_bug.cgi?id=12516
59161         REGRESSION (r19313): All keyboard navigation has stopped working
59163         For non-editable selections, handleKeyPress doesn't need to call _interceptEditingKeyEvent. 
59165         * editing/Editor.cpp:
59166         (WebCore::selectionForEvent): Moved this to the top of the file.
59167         (WebCore::Editor::handleKeyPress): Do the equivalent of the _canEdit check that used to be in WebKit WebEditorClient::handleKeyPress.
59169 2007-01-31  Geoffrey Garen  <ggaren@apple.com>
59171         Reviewed by Darin Adler.
59173         Added a Range counter to detect leaks. Tweaked the Node counter.
59174         
59175         Also fixed a TextIterator destructive modification bug that I noticed along the
59176         way. No test case for this bug because no clients have been bitten by it
59177         yet.
59179         * dom/Node.cpp: Renamed NodeImplCounter to NodeCounter, changed counter
59180         to unsigned, fixed formatting to match style guidelines.
59181         (WebCore::NodeCounter::~NodeCounter):
59182         (WebCore::Node::Node):
59183         (WebCore::Node::~Node):
59185         * dom/Range.cpp:
59186         (WebCore::RangeCounter::~RangeCounter): Added.
59187         (WebCore::Range::Range):
59188         (WebCore::Range::~Range):
59189         (WebCore::Range::ownerDocument): New accessor, used by TextIterator to avoid
59190         annoying NULL checks.
59191         * dom/Range.h:
59193         * editing/TextIterator.cpp:
59194         (WebCore::TextIterator::subrange): 
59195         (1) Don't initialize result with entireRange --  doing so would create a 
59196         PassRefPtr that pointed to entireRange, so this function would destructively 
59197         modify the Range you passed it. Initialize it with a new Range instead.
59198         (2) Don't use a PassRefPtr as a local variable, because they have sneaky
59199         semantics. Use a RefPtr instead.
59200         (3) Don't call CharacterIterator::range() willy-nilly, since it does 
59201         non-trivial work. Use a local variable instead.
59203 2007-01-31  Adele Peterson  <adele@apple.com>
59205         Reviewed by Darin.
59207         WebCore part of fix for <rdar://problem/4521461> REGRESSION: when keyPress event changes form focus, inserted key goes to wrong control
59209         Test: fast/events/keypress-focus-change.html
59211         * editing/Editor.cpp:
59212         (WebCore::selectionForEvent): Added.  This computes a selection that considers the case where an event handler 
59213          has moved the selection outside of a text control.  In that case, we use the target control's selection.
59214         (WebCore::Editor::insertText): This gets the selectionForEvent, checks that the selection is editable,
59215          and calls TypingCommand::insertText with the correct selection.
59217         * editing/TypingCommand.h: Added a version of insertText that takes a selection.  The old version of insertText will call this, and pass
59218           in the frame's selection.
59219         * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): Added. Uses the passed in selection to 
59220           set the starting and ending selections correctly so that the editing machinery will insert the text in the correct place.
59222         * page/Page.h: Added convenience method to get selection from focused or main frame.
59223         * page/Page.cpp: (WebCore::Page::selection):
59225         * html/HTMLInputElement.h: Added selection methods to get selection for text controls.
59226         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::selection):
59227         * html/HTMLTextAreaElement.h:
59228         * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::selection):
59229         * rendering/RenderTextControl.h:
59230         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::selection):
59232 2007-01-31  Darin Adler  <darin@apple.com>
59234         - fix build
59236         * ForwardingHeaders/wtf/ListHashSet.h: Added.
59238 2007-01-31  Zack Rusin  <zrusin@trolltech.com>
59240         Reviewed by Lars
59242         Return the correct selection color.
59244         * platform/qt/RenderThemeQt.cpp:
59245         (WebCore::RenderThemeQt::supportsFocusRing):
59246         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
59247         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
59248         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
59249         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
59251 2007-01-31  Maciej Stachowiak  <mjs@apple.com>
59253         Reviewed by Mark.
59255         - fixed <rdar://problem/4751164> REGRESSION: Safari places text on incorrect button when returning to a page via back [10541]
59256         http://bugs.webkit.org/show_bug.cgi?id=10541
59258         * dom/Document.cpp:
59259         (WebCore::Document::formElementsState):
59260         * dom/Document.h:
59261         
59262         I couldn't figure out the back/forward support in the tests enough
59263         to make an automated test, but this maual test reproduces the
59264         problem 100% without this patch:
59265         
59266         * manual-tests/back.html: Added.
59267         * manual-tests/form-control-madness.html: Added.
59269 2007-01-31  David Kilzer  <ddkilzer@kilzer.net>
59271         Reviewed by Mitz.
59273         - fix http://bugs.webkit.org/show_bug.cgi?id=12490
59274           Clean up canPlaceOnLine logic in bidi.cpp
59276         No test cases since there is no change in functionality.
59278         * rendering/bidi.cpp:
59279         (WebCore::RenderBlock::findNextLineBreak): Simplify canFitOnLine expression.
59281 2007-01-31  Zack Rusin  <zack@kde.org>
59283         Adding comments explaining how the focus ring implementation
59284         works on the Qt platform and just move focus ring rendering
59285         related code to the same spot.
59287         * platform/graphics/qt/GraphicsContextQt.cpp:
59288         (WebCore::setFocusRingColorChangeFunction):
59289         (WebCore::focusRingColor):
59290         (WebCore::GraphicsContext::drawFocusRing):
59291         * platform/qt/TemporaryLinkStubs.cpp:
59293 2007-01-31  Zack Rusin  <zrusin@trolltech.com>
59295         Reviewed by Lars
59297         Properly propagate key events. 
59299         * page/qt/FrameQt.cpp:
59300         * page/qt/FrameQt.h: Remove redundant method.
59301         * platform/qt/ScrollViewCanvasQt.cpp:
59302         (WebCore::ScrollViewCanvasQt::handleKeyEvent):
59304 2007-01-31  George Staikos  <staikos@kde.org>
59306         Reviewed by Zack and Lars.
59308         Fix double delete on cancel as well as assertion with proxy.
59310         * platform/network/qt/ResourceHandleManagerQt.cpp:
59311         (WebCore::WebCoreHttp::getConnection):
59312         (WebCore::WebCoreHttp::onRequestFinished):
59313         (WebCore::WebCoreHttp::cancel):
59315 2007-01-31  Mark Rowe  <mrowe@apple.com>
59317         Reviewed by Oliver.
59319         * dom/Document.h: Change #if XSLT_SUPPORT to #ifdef XSLT_SUPPORT.
59321 2007-01-31  Lars Knoll <lars@trolltech.com>
59323         Fix the Qt build.
59325         * platform/network/qt/ResourceHandleQt.cpp:
59326         (WebCore::ResourceHandle::setDefersLoading):
59328 2007-01-31  Zack Rusin  <zack@kde.org>
59330         Reviewed by Eric.
59332         Implement SVGImage on the Qt platform.
59334         * WebCore.pro:
59335         * loader/CachedImage.cpp:
59336         (WebCore::CachedImage::createImage):
59337         * platform/graphics/ImageBuffer.h:
59338         * platform/graphics/qt/ImageBufferQt.cpp:
59339         (WebCore::ImageBuffer::create):
59340         (WebCore::ImageBuffer::ImageBuffer):
59341         (WebCore::ImageBuffer::~ImageBuffer):
59342         (WebCore::ImageBuffer::context):
59343         (WebCore::ImageBuffer::pixmap):
59344         * platform/graphics/svg/SVGImage.cpp:
59345         (WebCore::SVGImage::nativeImageForCurrentFrame):
59346         (WebCore::SVGImage::setData):
59348 2007-01-30  Maciej Stachowiak  <mjs@apple.com>
59350         Reviewed by Brady.
59352         - fixed <rdar://problem/4939366> REGRESSION: Assertion failure and crash when going back in history (12314)
59354         * loader/FrameLoader.cpp:
59355         (WebCore::FrameLoader::createWindow): special case a frame name of "_blank"
59356         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): ditto
59358 2007-01-30  Maciej Stachowiak  <mjs@apple.com>
59360         Reviewed by Anders.
59362         - fixed <rdar://problem/4963871> REGRESSION: Crash occurs at WebCore::Frame::loader() when attempting to open a saved archive file
59364         * loader/DocumentLoader.cpp:
59365         (WebCore::DocumentLoader::request): Removed obsolete FIXME.
59366         (WebCore::DocumentLoader::initialRequest): Ditto.
59367         * loader/MainResourceLoader.cpp:
59368         (WebCore::MainResourceLoader::MainResourceLoader): Handle data loads from a timer, otherwise bad things happen.
59369         (WebCore::MainResourceLoader::handleDataLoadNow):
59370         (WebCore::MainResourceLoader::handleDataLoadSoon):
59371         (WebCore::MainResourceLoader::loadNow):
59372         (WebCore::MainResourceLoader::didCancel): cancel data load timer
59373         * loader/MainResourceLoader.h:
59375 2007-01-30  Timothy Hatcher  <timothy@apple.com>
59377         Reviewed by Darin.
59379         <rdar://problem/4961953> Stop using NSString deprecated methods like initWithCString:
59381         * WebCore.xcodeproj/project.pbxproj:
59382         * platform/graphics/svg/filters/cg/WKArithmeticFilter.m:
59383         (-[WKArithmeticFilter init]):
59384         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.m:
59385         (-[WKComponentMergeFilter init]):
59386         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m:
59387         (-[WKDiffuseLightingFilter init]):
59388         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m:
59389         (-[WKDiscreteTransferFilter init]):
59390         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m:
59391         (-[WKDisplacementMapFilter init]):
59392         * platform/graphics/svg/filters/cg/WKDistantLightFilter.m:
59393         (-[WKDistantLightFilter init]):
59394         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.m:
59395         (-[WKGammaTransferFilter init]):
59396         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.m:
59397         (-[WKLinearTransferFilter init]):
59398         * platform/graphics/svg/filters/cg/WKNormalMapFilter.m:
59399         (-[WKNormalMapFilter init]):
59400         * platform/graphics/svg/filters/cg/WKPointLightFilter.m:
59401         (-[WKPointLightFilter init]):
59402         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m:
59403         (-[WKSpecularLightingFilter init]):
59404         * platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
59405         (-[WKSpotLightFilter init]):
59406         * platform/graphics/svg/filters/cg/WKTableTransferFilter.m:
59407         (-[WKTableTransferFilter init]):
59409 2007-01-30  David Hyatt  <hyatt@apple.com>
59411         Fix for Radar bug #4679426, golden gate bridge Web site layout broken.
59412         
59413         This is a regression caused by the addition of :lang support.  This
59414         feature caused us to accept any pseudo-class/element with function
59415         arguments, even ones we couldn't handle.  The site used such a construct
59416         in conjunction with :not, which turned :not(something-crazy) into not(false).
59417         This ended up being "true", and so we started matching a rule we used to
59418         reject.
59420         The fix is to now aggressively parse pseudo-elements and classes and to
59421         cause the rejection of an entire rule if any pseudoclass or element within
59422         any simple selector of that rule is unrecognized.
59424         Reviewed by darin
59426         fast/css/invalid-pseudo-classes.html
59428         * css/CSSGrammar.y:
59429         * css/CSSSelector.cpp:
59430         (WebCore::CSSSelector::extractPseudoType):
59431         * css/CSSSelector.h:
59432         (WebCore::CSSSelector::):
59433         * css/cssstyleselector.cpp:
59434         (WebCore::CSSStyleSelector::checkOneSelector):
59436 2007-01-30  Mitz Pettel  <mitz@webkit.org>
59438         Reviewed by Darin.
59440         - fix http://bugs.webkit.org/show_bug.cgi?id=12487
59441           REGRESSION: Repro crash when a second background image is animated
59443         Test: fast/images/animated-background-image-crash.html
59445         * rendering/RenderObject.cpp:
59446         (WebCore::RenderObject::arenaDelete): Deref() all background images and the
59447         border image.
59449 2007-01-30  Darin Adler  <darin@apple.com>
59451         Reviewed by Maciej.
59453         * dom/EventTarget.h:
59454         * dom/EventTarget.cpp: (WebCore::EventTarget::toNode):
59455         Use EventTargetNode instead of Node. Removed unneeded includes.
59456         Make EventTarget's destructor protected to make it clear that you
59457         should never delete one.
59459         * dom/EventTargetNode.h:
59460         (WebCore::EventTargetNode::toNode):
59461         Tweaked formatting. Updated for change to return value.
59463         * platform/graphics/BitmapImage.h: Updated comment for clarity.
59464         Marked FrameData Noncopyable.
59466         * platform/graphics/Image.h: Tweaked formatting.
59468         * platform/graphics/ImageAnimationObserver.h:
59469         Make ImageAnimationObserver's destructor protected to make it clear that you
59470         should never delete one.
59472 2007-01-30  Mitz Pettel  <mitz@webkit.org>
59474         Reviewed by Darin (by way of Hyatt).
59476         - fix http://bugs.webkit.org/show_bug.cgi?id=12373
59477           ASSERTION FAILURE: !child->needsLayout() on paypal.com
59479         Test: fast/table/inline-form-assert.html
59481         * rendering/RenderContainer.cpp:
59482         (WebCore::RenderContainer::layout): Changed the assertion to ignore inlines.
59484 2007-01-30  Alexey Proskuryakov  <ap@webkit.org>
59486         Reviewed by Darin.
59488         http://bugs.webkit.org/show_bug.cgi?id=12486
59489         XPathNSResolver.lookupNamespaceURI should return null if no URI is found
59491         * xml/XPathNSResolver.idl: added [ConvertNullStringTo=Null].
59493 2007-01-30  Anders Carlsson  <acarlsson@apple.com>
59495         Reviewed by Maciej.
59497         Revert the parts of 19244 that removed deferring NSURLConnections, that was not a correct change.
59498         Remove ASSERTS from loader.cpp that aren't true anymore since the callbacks are invoked without a handle
59499         when loading a subresource from an archive.
59501         * loader/MainResourceLoader.cpp:
59502         (WebCore::MainResourceLoader::loadNow):
59503         * loader/ResourceLoader.cpp:
59504         (WebCore::ResourceLoader::releaseResources):
59505         (WebCore::ResourceLoader::load):
59506         (WebCore::ResourceLoader::setDefersLoading):
59507         * loader/loader.cpp:
59508         (WebCore::Loader::didFail):
59509         (WebCore::Loader::didReceiveResponse):
59510         (WebCore::Loader::didReceiveData):
59511         * platform/network/ResourceHandle.cpp:
59512         (WebCore::ResourceHandle::ResourceHandle):
59513         (WebCore::ResourceHandle::create):
59514         * platform/network/ResourceHandle.h:
59515         * platform/network/ResourceHandleInternal.h:
59516         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
59517         * platform/network/mac/ResourceHandleMac.mm:
59518         (WebCore::ResourceHandle::start):
59519         (WebCore::ResourceHandle::setDefersLoading):
59521 2007-01-30  Darin Adler  <darin@apple.com>
59523         Reviewed by John.
59525         - fix for <rdar://problem/4911504> REGRESSION: With a image selected, ctrl-clicking
59526           on page displays the wrong contextual menu items "Search in Google", "Search in Spotlight"
59527           and "Look up in Dictionary"
59529         * platform/ContextMenu.cpp:
59530         (WebCore::selectionContainsPossibleWord): Added. Returns true if there are some
59531         non-whitespace characters in the selection.
59532         (WebCore::ContextMenu::populate): Don't add SearchSpotlightItem, SearchWebItem,
59533         or LookInDictionaryItem if selectionContainsPossibleWord returns false.
59535 2007-01-30  Nikolas Zimmermann  <zimmermann@kde.org>
59537         Reviewed by Oliver.
59539         Respect stroke-width in absolute repaint rect calculations for SVG text.
59540         Added test: svg/custom/text-repaint-including-stroke.svg
59542         * rendering/RenderSVGText.cpp:
59543         (WebCore::RenderSVGText::relativeBBox):
59545 2007-01-30  Steve Falkenburg  <sfalken@apple.com>
59547         Reviewed by Oliver.
59549         Add missing includes.
59551         * ksvg2/svg/SVGElementInstance.cpp:
59553 2007-01-30  Alexey Proskuryakov  <ap@webkit.org>
59555         Reviewed by Darin.
59557         http://bugs.webkit.org/show_bug.cgi?id=12452
59558         XPath id() function is not supported
59560         * xml/XPathFunctions.cpp:
59561         (WebCore::XPath::isWhitespace): A helper to detect XML whitespace.
59563         (WebCore::XPath::FunId::isConstant):
59564         (WebCore::XPath::FunId::doEvaluate):
59565         (WebCore::XPath::FunctionMapping::):
59566         Implemented id().
59568 2007-01-30  Zack Rusin  <zrusin@trolltech.com>
59570         Reviewed by Sam.
59572         Make the gradients work on the Qt platform.
59574         * platform/graphics/svg/SVGPaintServerGradient.h:
59575         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
59576         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
59577         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
59578         (WebCore::SVGPaintServerGradient::fillColorArray):
59579         (WebCore::SVGPaintServerGradient::setup):
59580         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
59581         (WebCore::SVGPaintServerLinearGradient::setupGradient):
59582         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
59583         (WebCore::SVGPaintServerRadialGradient::setupGradient):
59585 2007-01-30  Nikolas Zimmermann  <zimmermann@kde.org>
59587         Reviewed by Eric & Oliver. Leak related fixes reviewed by Mark.
59589         Finally make the SVG <use> implementation use the proper "shadow tree" concept,
59590         which is also used by the HTML forms implementation. It's the first time in ksvg
59591         history that <use> is not implement as a crude hack, but proper & sane.
59593         Implement deep expansion of use trees both for the instance & shadow tree.
59594         (<use> on a <symbol> containing a <g> containg a <use> element referencing a <rect>)
59596         The shadow tree is free of any symbol/use tags, but is properly expanded to the
59597         actual referenced content. The instance tree (SVGElementInstance objects) now exactly
59598         exposes the "expanded" shadow tree, as required by the specification. Previously
59599         we cloned referenced <use> elements, so our faked use shadow tree itself contained
59600         <use> elements. That lead to very nasty bugs - finally these dirty pieces are gone.
59602         Checked twice that the updating logic works for all weird "deep expansions" cases. Example:
59603         <rect id="someRect"/> <g id="g"> <symbol> <use xlink:href="#someRect"/> </g> <use xlink:href="#g" id="use"/>
59605         If you walk through the instanceRoot using JavasScript, and explicitely modify some propertties of "someRect"
59606         -> all instances get updated correctly. For such simple cases it doesn't even involve recloning the shadow tree!
59608         SVGElementInstance is now an EventTarget, as demanded by the specification - sending events to <use> instances
59609         will be implemented in a follow-up patch - as well as the "share event listeners with referenced target" logic.
59611         Fixes all updating/stability issues with svg/carto.net/window.svg.
59612         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (<use> does not handle recursion safely)
59614         Added test: svg/custom/use-on-use.svg (deep use referencing)
59615         Added test: svg/custom/use-on-g-containing-use.svg (nested deep use referencing)
59616         Added test: svg/custom/use-modify-target-container.svg (instanceRoot scripting, modifying <g> target)
59617         Added test: svg/custom/use-modify-target-symbol.svg (instanceRoot scripting, modfiying <symbol> target)
59618         Added test: svg/custom/use-modify-container-in-target.svg (modify <g> within referenced use target -> needs to update instances)
59619         Added test: svg/custom/use-recursion-1.svg (referencing container, whose children reference itself)
59620         Added test: svg/custom/use-recursion-2.svg (<use> self referencing)
59621         Added test: svg/custom/use-recursion-3.svg (<use> self rerencing, within <use> target)
59622         Added test: svg/custom/use-recursion-4.svg (cyclic referencing, within <use> target)
59624         * bindings/scripts/CodeGeneratorJS.pm:
59625         * css/cssstyleselector.cpp:
59626         (WebCore::CSSStyleSelector::initForStyleResolve):
59627         (WebCore::CSSStyleSelector::adjustRenderStyle):
59628         * ksvg2/misc/SVGDocumentExtensions.cpp:
59629         (WebCore::SVGDocumentExtensions::removeTimeContainer):
59630         * ksvg2/svg/SVGElement.cpp:
59631         (WebCore::SVGElement::SVGElement):
59632         (WebCore::SVGElement::viewportElement):
59633         * ksvg2/svg/SVGElement.h:
59634         (WebCore::SVGElement::isShadowNode):
59635         (WebCore::SVGElement::shadowParentNode):
59636         (WebCore::SVGElement::setShadowParentNode):
59637         * ksvg2/svg/SVGElementInstance.cpp:
59638         (WebCore::SVGElementInstance::SVGElementInstance):
59639         (WebCore::SVGElementInstance::correspondingUseElement):
59640         (WebCore::SVGElementInstance::shadowTreeElement):
59641         (WebCore::SVGElementInstance::setShadowTreeElement):
59642         (WebCore::containsUseChildNode):
59643         (WebCore::SVGElementInstance::updateInstance):
59644         (WebCore::SVGElementInstance::addEventListener):
59645         (WebCore::SVGElementInstance::removeEventListener):
59646         (WebCore::SVGElementInstance::dispatchEvent):
59647         * ksvg2/svg/SVGElementInstance.h:
59648         (WebCore::SVGElementInstance::refEventTarget):
59649         (WebCore::SVGElementInstance::derefEventTarget):
59650         (WebCore::SVGElementInstance::hasOneRef):
59651         (WebCore::SVGElementInstance::refCount):
59652         (WebCore::SVGElementInstance::setParent):
59653         (WebCore::SVGElementInstance::parent):
59654         * ksvg2/svg/SVGElementInstance.idl:
59655         * ksvg2/svg/SVGGElement.cpp:
59656         (WebCore::SVGGElement::localMatrix):
59657         * ksvg2/svg/SVGGElement.h:
59658         * ksvg2/svg/SVGHiddenElement.h: Removed.
59659         * ksvg2/svg/SVGSVGElement.cpp:
59660         (WebCore::SVGSVGElement::~SVGSVGElement):
59661         * ksvg2/svg/SVGStyledElement.cpp:
59662         (WebCore::SVGStyledElement::updateElementInstance):
59663         * ksvg2/svg/SVGUseElement.cpp:
59664         (WebCore::SVGUseElement::removedFromDocument):
59665         (WebCore::SVGUseElement::notifyAttributeChange):
59666         (WebCore::dumpInstanceTree):
59667         (WebCore::SVGUseElement::buildPendingResource):
59668         (WebCore::SVGUseElement::attach):
59669         (WebCore::SVGUseElement::buildInstanceTree):
59670         (WebCore::SVGUseElement::handleDeepUseReferencing):
59671         (WebCore::SVGUseElement::buildShadowTree):
59672         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
59673         (WebCore::SVGUseElement::attachShadowTree):
59674         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
59675         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
59676         * ksvg2/svg/SVGUseElement.h:
59678 2007-01-30  Maciej Stachowiak  <mjs@apple.com>
59680         Reviewed by Eric.
59682         <rdar://problem/4928646> REGRESSION: manual-tests/remove-input-file-onchange.html crashes
59683         
59684         * platform/FileChooser.h:
59685         (WebCore::FileChooser::disconnected): New method, so the RenderFileControl can tell when it's
59686         gotten disconected.
59687         * rendering/RenderFileUploadControl.cpp:
59688         (WebCore::RenderFileUploadControl::valueChanged): Avoid calling repainted() when onChange()
59689         handler destroyed us.
59691 2007-01-30  Simon Hausmann  <hausmann@kde.org>
59693         Reviewed by Zack.
59695         Combine libJavaScriptCore into libWebKitQt.
59696         Build with ELF visibility if possible.
59698         * WebCore.pro:
59700 2007-01-30  Zack Rusin  <zack@kde.org>
59702         The method has been removed from the header
59703         (make it compile)
59705         * platform/network/qt/ResourceHandleQt.cpp:
59707 2007-01-30  Zack Rusin  <zrusin@trolltech.com>
59709         Reviewed by aroben
59711         Compile fix. 
59713         * loader/ResourceLoader.cpp:
59714         (WebCore::ResourceLoader::releaseResources):
59715         (WebCore::ResourceLoader::setDefersLoading):
59717 2007-01-29  Zack Rusin  <zack@kde.org>
59719         Reviewed by Lars
59721         Propagate the allows-scrolling property on the frames
59722         correctly. If the frame has been constructed as non-
59723         scrolling, respect that and don't show scrollbars.
59725         * platform/ScrollView.h:
59726         * platform/qt/ScrollViewQt.cpp:
59727         (WebCore::ScrollView::ScrollView):
59728         (WebCore::ScrollView::setHScrollbarMode):
59729         (WebCore::ScrollView::setVScrollbarMode):
59730         (WebCore::ScrollView::setAllowsScrolling):
59732 2007-01-29  Geoffrey Garen  <ggaren@apple.com>
59734         I am the chosen one! I have seen the faces of the final five! I will
59735         save the WebKit build!
59736         
59737         * loader/ResourceLoader.cpp:
59738         (WebCore::ResourceLoader::load):
59740 2007-01-30  Graham Dennis  <graham.dennis@gmail.com>
59742         Reviewed by Maciej.
59744         Part of fix for http://bugs.webkit.org/show_bug.cgi?id=10725
59745         Image data in from RTFD clipboard data thrown away
59746         
59747         ResourceHandles no longer need to be able to defer loading as that is
59748         now handled by the ResourceLoader.
59750         * loader/MainResourceLoader.cpp:
59751         (WebCore::MainResourceLoader::loadNow): updated to remove defersLoading argument.
59752         * loader/ResourceLoader.cpp:
59753         (WebCore::ResourceLoader::releaseResources): release the deferred request.
59754         (WebCore::ResourceLoader::load): defer creating the ResourceHandle instead of
59755         asking the ResourceHandle to defer loading.
59756         (WebCore::ResourceLoader::setDefersLoading): create the ResourceHandle if we have deferred creating it.
59757         * loader/ResourceLoader.h:
59758         * platform/network/ResourceHandle.cpp: ResourceHandle's don't need to know about deferLoading.
59759         (WebCore::ResourceHandle::ResourceHandle):
59760         (WebCore::ResourceHandle::create):
59761         * platform/network/ResourceHandle.h: ditto.
59762         * platform/network/ResourceHandleInternal.h: ditto.
59763         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
59764         * platform/network/mac/ResourceHandleMac.mm: ditto.
59765         (WebCore::ResourceHandle::start):
59767 2007-01-29  Brady Eidson  <beidson@apple.com>
59769         Reviewed by Alice
59771         Lets use smart pointers, shall we?
59773         * platform/network/ResourceHandleInternal.h:
59775 2007-01-29  Justin Garcia  <justin.garcia@apple.com>
59777         Reviewed by harrison
59778         
59779         <rdar://problem/4960137>
59780         ASSERTION FAILURE calling SelectionController::setBaseAndExtent (11833)
59782         * editing/SelectionController.cpp:
59783         (WebCore::SelectionController::setSelection): Hand off the selection
59784         to the selectionController responsible for it, instead of asserting.
59785         A selection object can't be constructed with endpoints in different 
59786         documents, so this code is only necessary for one endpoint.
59788 2007-01-29  Ada Chan  <adachan@apple.com>
59790         Reviewed by Brady.
59791         
59792         Moved the update of the title of the current entry in the backforward list to WebCore.
59794         * loader/FrameLoader.cpp:
59795         (WebCore::FrameLoader::didChangeTitle):
59797 2007-01-29  Adele Peterson  <adele@apple.com>
59799         Reviewed by Darin.
59801         More preparation for event handling fixes.
59803         * bridge/EditorClient.h: Removed EventTargetNode parameter from handleKeyPress since we can just get that from the event.
59804         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): ditto.
59805         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): ditto.
59806         * page/EventHandler.h: ditto.
59807         * platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): ditto.
59809         * editing/Editor.h:
59810         * editing/Editor.cpp:
59811         (WebCore::Editor::handleKeyPress): Removed EventTargetNode parameter.
59812         (WebCore::Editor::execCommand): Made commandMap use AtomicStringImpls instead of Strings.
59813         (WebCore::Editor::insertText): Moved from the bridge.
59815         * page/mac/WebCoreFrameBridge.h: Moved insertText method to Editor.
59816         * page/mac/WebCoreFrameBridge.mm:
59818         * WebCore.exp: Updated exports.
59820 2007-01-29  Anders Carlsson  <acarlsson@apple.com>
59822         Reviewed by Geoff.
59824         <rdar://problem/4960097>
59825         http://bugs.webkit.org/show_bug.cgi?id=12444
59826         Assertion failure in -[WebCoreFrameBridge installInFrame:]
59827         
59828         The problem was that the XML tokenizer didn't create elements with 
59829         createdByParser set to true.
59830         
59831         * dom/Document.cpp:
59832         (WebCore::Document::createElement):
59833         New method which takes a QName. This is used by both the XML tokenizer and createElementNS.
59834         
59835         (WebCore::Document::createElementNS):
59836         Call new createElement method.
59837         
59838         * dom/XMLTokenizer.h:        
59839         * dom/XMLTokenizer.cpp:
59840         (WebCore::XMLTokenizer::XMLTokenizer):
59841         (WebCore::XMLTokenizer::~XMLTokenizer):
59842         Use an OwnPtr for the pending callbacks object. Also, use String instead of StringImpl in the hash map.
59843         
59844         (WebCore::toString):
59845         (WebCore::XMLTokenizer::startElementNs):
59846         Call createElement.
59847         
59848 2007-01-29  Brady Eidson  <beidson@apple.com>
59850         Reviewed by Oliver
59852         http://bugs.webkit.org/show_bug.cgi?id=12465
59853         Only set the iconURL port for non-zero ports
59855         * loader/FrameLoader.cpp:
59856         (WebCore::FrameLoader::iconURL):
59858 2007-01-29  John Sullivan  <sullivan@apple.com>
59860         * platform/network/mac/ResourceRequestMac.mm:
59861         Build fix -- removed #import of no-longer-extant WebDataProtocol.h (and also one of the
59862         two #imports for WebCoreSystemInterface.h, while I was at it)
59864 2007-01-29  Anders Carlsson  <acarlsson@apple.com>
59866         Reviewed by Oliver.
59868         * page/DragController.cpp:
59869         (WebCore::DragController::dragEnteredOrUpdated):
59870         Only try a drag operation if the drag client explicitly specified that it is OK
59872 2007-01-29  Oliver Hunt  <oliver@apple.com>
59874         Reviewed by Adam.
59876         Migrated more drag logic and state to WebCore
59877                                               
59878         * page/DragClient.h:       
59880         * page/DragController.cpp:
59881         (WebCore::DragController::delegateDragSourceAction):
59882           New forwarding method for the UI delegate
59883         * page/DragController.h:
59884         (WebCore::DragController::dragOffset):
59885           Now store the drag offset -- the offset of the cursor relative to the drag image)
59886           in DragController
59887         * page/EventHandler.cpp:
59888         (WebCore::EventHandler::allowDHTMLDrag):
59889           Moved from WebFrameBridge
59890         * page/EventHandler.h:
59891         * page/mac/EventHandlerMac.mm:
59892         (WebCore::EventHandler::eventMayStartDrag):
59893         (WebCore::EventHandler::handleDrag):                  
59894           EventHandlerMac now uses EventHandler::allowDHTMLDrag rather than the 
59895           implementation in WebFrameBridge
59896         * page/mac/WebCoreFrameBridge.h:
59897           removed definition of allowDHTMLDrag from WebFrameBridge
59898         * platform/graphics/svg/SVGImageEmptyClients.h:
59899         (WebCore::SVGEmptyDragClient::dragSourceActionMaskForPoint):
59900           Updated empty DragClient
59902 2007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59904         Reviewed by Darin.
59906         http://bugs.webkit.org/show_bug.cgi?id=12359
59907         XPathEvaluator may return some nodes more than once in a result set
59909         Test: fast/xpath/nodeset-duplicates.html
59911         * xml/XPathPath.cpp:
59912         (WebCore::XPath::LocationPath::doEvaluate): Ensure uniqueness of elements
59913         in the node-set.
59915         * xml/XPathPredicate.cpp:
59916         (WebCore::XPath::Union::doEvaluate): Fixed a uniqueness algorithm that was
59917         already present here. Added a FIXME about incorrect result ordering.
59919 2007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59921         Reviewed by Darin.
59923         http://bugs.webkit.org/show_bug.cgi?id=12340
59924         XPathEvaluator behavior does not match Firefox - name() and attribute nodes
59926         * xml/XPathFunctions.cpp:
59927         (WebCore::XPath::FunName::doEvaluate): Do not try to append a prefix if it doesn't exist.
59929 2007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59931         Reviewed by Darin.
59933         http://bugs.webkit.org/show_bug.cgi?id=11815
59934         XPathEvaluator behavior does not match Firefox - substring() and empty element
59936         Test: fast/xpath/empty-string-substring.html
59938         * xml/XPathValue.cpp:
59939         (WebCore::XPath::Value::Value):
59940         * xml/XPathValue.h:
59941         Added a constructor taking const char*, so that string literals and arrays don't 
59942         get converted to boolean values.
59944 2007-01-29  Zack Rusin  <zrusin@trolltech.com>
59946         Cosmetic fixes - don't resize the widget in the constructor
59947         (it was a hack from the initial port) and fix the paint
59948         signature.
59950         * platform/qt/ScrollViewCanvasQt.cpp:
59951         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
59952         * platform/qt/WidgetQt.cpp:
59953         (WebCore::Widget::paint):
59955 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
59957         - change from struct to class to make picky compilers happy
59959         * loader/SubstituteData.h:
59961 2007-01-30  Mark Rowe  <mrowe@apple.com>
59963         Reviewed by Maciej.
59965         http://bugs.webkit.org/show_bug.cgi?id=12458
59966         Bug 12458: Crash in W3C-SVG-1.1/animate-elem-09-t.svg running layout tests under guard malloc
59968         * ksvg2/svg/SVGAnimationElement.cpp: 
59969         (WebCore::parseValues): ptr either points to a ';' or off the end of the buffer.  We're
59970         interested in what comes before the ';', so start there instead.
59972 2007-01-29  Zack Rusin  <zrusin@trolltech.com>
59974         Reviewed by Lars.
59976         Take the scrollbars into considation when computing
59977         the contents size of the main frame.
59979         * platform/qt/PlatformScrollBarQt.cpp:
59980         (WebCore::PlatformScrollbar::paint):
59981         * platform/qt/ScrollViewQt.cpp:
59982         (WebCore::ScrollView::visibleWidth):
59983         (WebCore::ScrollView::visibleHeight):
59984         (WebCore::ScrollView::visibleContentRect):
59985         * platform/qt/WidgetQt.cpp:
59986         (WebCore::Widget::invalidate):
59987         (WebCore::Widget::invalidateRect):
59989 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
59991         - fix includes
59993         * loader/SubstituteData.h:
59995 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
59997         - added new file that I forgot in the last commit
59999         * loader/SubstituteData.h: Added.
60000         (WebCore::SubstituteData::SubstituteData):
60001         (WebCore::SubstituteData::isValid):
60002         (WebCore::SubstituteData::content):
60003         (WebCore::SubstituteData::mimeType):
60004         (WebCore::SubstituteData::textEncoding):
60005         (WebCore::SubstituteData::failingURL):
60007 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
60009         Reviewed by Mark.
60011         - made data loading cross-platform
60012         - fixed <rdar://problem/4910106>
60014         * WebCore.exp:
60015         * WebCore.xcodeproj/project.pbxproj:
60016         * loader/CachedResource.cpp:
60017         * loader/CachedResource.h:
60018         * loader/DocLoader.cpp:
60019         (WebCore::DocLoader::requestResource):
60020         * loader/DocumentLoader.cpp:
60021         (WebCore::DocumentLoader::DocumentLoader):
60022         (WebCore::DocumentLoader::setRequest):
60023         (WebCore::DocumentLoader::urlForHistory):
60024         (WebCore::DocumentLoader::unreachableURL):
60025         * loader/DocumentLoader.h:
60026         (WebCore::DocumentLoader::substituteData):
60027         * loader/FrameLoader.cpp:
60028         (WebCore::FrameLoader::load):
60029         (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
60030         (WebCore::FrameLoader::reloadAllowingStaleData):
60031         (WebCore::FrameLoader::reload):
60032         (WebCore::FrameLoader::commitProvisionalLoad):
60033         (WebCore::FrameLoader::startLoadingMainResource):
60034         (WebCore::FrameLoader::startLoading):
60035         (WebCore::FrameLoader::checkNavigationPolicy):
60036         * loader/FrameLoader.h:
60037         * loader/FrameLoaderClient.h:
60038         * loader/MainResourceLoader.cpp:
60039         (WebCore::MainResourceLoader::willSendRequest):
60040         (WebCore::MainResourceLoader::continueAfterContentPolicy):
60041         (WebCore::MainResourceLoader::handleEmptyLoad):
60042         (WebCore::MainResourceLoader::handleDataLoad):
60043         (WebCore::MainResourceLoader::loadNow):
60044         (WebCore::MainResourceLoader::load):
60045         * loader/MainResourceLoader.h:
60046         * loader/mac/DocumentLoaderMac.mm:
60047         * loader/mac/WebDataProtocol.h: Removed.
60048         * loader/mac/WebDataProtocol.mm: Removed.
60049         * loader/qt/DocumentLoaderQt.cpp:
60050         * platform/graphics/svg/SVGImageEmptyClients.h:
60051         (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
60053 2007-01-29  Zack Rusin  <zrusin@trolltech.com>
60055         Order the build files alphabetically instead of
60056         the random mess we had before.
60058         * WebCore.pro:
60060 2007-01-29  Zack Rusin  <zack@kde.org>
60062         Reviewed by Lars
60064         Use the platform independent scrollbar code.
60065         Remove the redundant empty stubs and forward
60066         few missing platform scrollbar calls.
60068         * WebCore.pro:
60069         * platform/qt/PlatformScrollBarQt.cpp:
60070         (WebCore::PlatformScrollbar::paint):
60071         (WebCore::PlatformScrollbar::setRect):
60073 2007-01-29  Lars Knoll <lars@trolltech.com>
60075         Reviewed by Zack
60077         Fix the way we handle native widgets (QWidget) inside
60078         WebCore. Now WebCore::Widget owns the QWidget in all
60079         cases. This is the only way to get well defined semantics
60080         for all teh native widgets we have (currently ScrollView
60081         and ScrollBar, but plugins will follow).
60083         This has the side effect that one cannot rely on a defined 
60084         lifetime of a QWebFrame when using the API. 
60086         * platform/Widget.h:
60087         * platform/qt/PlatformScrollBarQt.cpp:
60088         (WebCore::PlatformScrollbar::PlatformScrollbar):
60089         * platform/qt/ScrollViewQt.cpp:
60090         (WebCore::ScrollView::addChild):
60091         (WebCore::ScrollView::removeChild):
60092         * platform/qt/WidgetQt.cpp:
60093         (WebCore::WidgetPrivate::WidgetPrivate):
60094         (WebCore::WidgetPrivate::~WidgetPrivate):
60095         (WebCore::Widget::qwidget):
60097 2007-01-28  George Staikos  <staikos@kde.org>
60099         Reviewed by Maciej.
60101         Don't send data during a redirect -> causes assert failure.
60103         * platform/network/qt/ResourceHandleManagerQt.cpp:
60104         (WebCore::ResourceHandleManager::receivedData):
60106 2007-01-29  Mark Rowe  <mrowe@apple.com>
60108         Reviewed by Brady.
60110         http://bugs.webkit.org/show_bug.cgi?id=11085
60111         Bug 11085: REGRESSION: favicon.ico always looked for on port 80
60113         * loader/FrameLoader.cpp:
60114         (WebCore::FrameLoader::iconURL): Copy the port over to the favicon URL.
60116 2007-01-28  Adam Roben  <aroben@apple.com>
60118         Reviewed by Adele.
60120         Fix http://bugs.webkit.org/show_bug.cgi?id=12453
60121         REGRESSION(r19197): Tabbing into web page requires two key presses
60123         All layout tests pass.
60125         * page/FocusController.cpp:
60126         (WebCore::FocusController::advanceFocus): If there's no focused frame,
60127         actually go ahead and find a focusable node instead of just focusing
60128         the main frame and quitting. This behavior was a holdover from a
60129         previous desired tabbing behavior with respect to frames.
60131 2007-01-28  David Kilzer  <ddkilzer@webkit.org>
60133         Reviewed by Darin and David Hyatt.
60135         - fix http://bugs.webkit.org/show_bug.cgi?id=12423
60136           Mixing white-space:pre text with non white-space:pre text does not wrap properly
60138         Test: fast/block/basic/white-space-pre-wraps.html
60140         * rendering/bidi.cpp:
60141         (WebCore::RenderBlock::findNextLineBreak): Wrap a non-wrapping text run if it
60142         appears on a line with previous text runs that do wrap.
60144 2007-01-28  Mitz Pettel  <mitz@webkit.org>
60146         Reviewed by Darin.
60148         - fix http://bugs.webkit.org/show_bug.cgi?id=8360
60149           Repro crash when onscroll handler deletes the scrolled object
60151         Test: fast/layers/removed-by-scroll-handler.html
60153         * page/FrameView.cpp:
60154         (WebCore::FrameViewPrivate::FrameViewPrivate): Added a m_enqueueEvents count.
60155         (WebCore::FrameView::layout): Raise the enqueue count before starting layout and
60156         until after enqueued events are dispatched.
60157         (WebCore::FrameView::scheduleEvent): Made this function dispatch the event
60158         immediately unless the enqueue count is positive.
60159         * rendering/RenderLayer.cpp:
60160         (WebCore::RenderLayer::scrollToOffset): Schedule the scroll event through the
60161         FrameView.
60162         (WebCore::RenderLayer::scrollRectToVisible):
60163         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
60164         (WebCore::Marquee::start):
60166 2007-01-28  Charles Ying  <charles_ying@yahoo.com>
60168         Reviewed by eseidel.  Landed by eseidel.
60170         Fix http://bugs.webkit.org/show_bug.cgi?id=12429
60171             animateTransform rotate, with cx/cy is broken
60172             
60173         SVGTransform now contains a float point to store the rotation center, needed
60174             to track rotation center for interpolation by animateTransform.
60175             
60176         SVGTransform now has an additional constructor:
60177             SVGTransform(type) to make empty base value transforms that match their
60178             distanced values.
60179             
60180         Removed m_colorDistance and m_transformDistance from their respective classes
60181             as they are now computed at update time.
60183         Fix a case where animateTransform did not parse transform values correctly
60184             according to BNF in W3C spec:
60186         Test case in:
60187         * manual-tests/animation/animateTransform-toanimation.svg: Added.
60189         Fix a case where animateTransform only specified a to animation only.
60191         Test case in:
60192         * manual-tests/animation/animateTransform-parser.svg: Added.
60194         * ksvg2/svg/SVGAnimateColorElement.cpp:
60195         (WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
60196         (WebCore::SVGAnimateColorElement::updateAnimatedValue):
60197         (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
60198         * ksvg2/svg/SVGAnimateColorElement.h:
60199         * ksvg2/svg/SVGAnimateTransformElement.cpp:
60200         (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
60201         (WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
60202         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
60203         (WebCore::SVGAnimateTransformElement::parseTransformValue):
60204         * ksvg2/svg/SVGAnimateTransformElement.h:
60205         * ksvg2/svg/SVGTransform.cpp:
60206         (SVGTransform::SVGTransform):
60207         (SVGTransform::angle):
60208         (SVGTransform::rotationCenter):
60209         (SVGTransform::setTranslate):
60210         (SVGTransform::setScale):
60211         (SVGTransform::setRotate):
60212         (SVGTransform::setSkewX):
60213         (SVGTransform::setSkewY):
60214         * ksvg2/svg/SVGTransform.h:
60215         * ksvg2/svg/SVGTransformDistance.cpp:
60216         (WebCore::SVGTransformDistance::SVGTransformDistance):
60217         (WebCore::SVGTransformDistance::scaledDistance):
60218         (WebCore::SVGTransformDistance::addSVGTransforms):
60219         (WebCore::SVGTransformDistance::addSVGTransform):
60220         (WebCore::SVGTransformDistance::addToSVGTransform):
60221         (WebCore::SVGTransformDistance::distance):
60222         * ksvg2/svg/SVGTransformDistance.h:
60223         * manual-tests/animation/animateTransform-parser.svg: Added.
60224         * manual-tests/animation/animateTransform-toanimation.svg: Added.
60226 2007-01-27  Adam Roben  <aroben@apple.com>
60228         Reviewed by Ada.
60230         Fix <rdar://problem/4957184> REGRESSION: After creating a new mail
60231         message, the caret is automatically in message body
60233         -[WebHTMLView _updateActiveState] was calling
60234         FocusController::focusedOrMainFrame, which had the surprising
60235         side-effect of setting the focused frame if there was none. The fix
60236         was to remove this side-effect.
60238         No tests possible, as this bug involves focus outside the WebView,
60239         which we have no support for in DRT.
60241         Change inspired by Dave Harrison.
60243         * page/FocusController.cpp:
60244         (WebCore::FocusController::focusedOrMainFrame): Removed this method's
60245         non-obvious side-effect of setting the focused frame.
60246         * WebCore.xcodeproj/project.pbxproj: Version wars.
60248 2007-01-27  Peter Kasting  <pkasting@chromium.org>
60250         Reviewed by Maciej.
60252         http://bugs.webkit.org/show_bug.cgi?id=11880: Improve some egregious
60253         Windows form control drawing issues:
60254         Provide Classic mode fallbacks for the button/textfield drawing
60255         routines.
60256         Provide some basic drawing of menulists (still relatively broken).
60257         Some cleanup.
60259         * platform/win/TemporaryLinkStubs.cpp:
60260         (WebCore::RenderThemeWin::systemFont):
60261         * rendering/RenderThemeWin.cpp:
60262         (WebCore::m_menuListTheme):
60263         (WebCore::RenderThemeWin::close):
60264         (WebCore::RenderThemeWin::determineClassicState):
60265         (WebCore::RenderThemeWin::getThemeData):
60266         (WebCore::RenderThemeWin::paintButton):
60267         (WebCore::RenderThemeWin::paintTextField):
60268         (WebCore::RenderThemeWin::paintMenuList):
60269         (WebCore::RenderThemeWin::paintMenuListButton):
60270         * rendering/RenderThemeWin.h:
60271         (WebCore::ThemeData::m_classicState):
60272         (WebCore::RenderThemeWin::setRadioSize):
60273         (WebCore::RenderThemeWin::paintTextArea):
60275 2007-01-27  David Kilzer  <ddkilzer@webkit.org>
60277         Reviewed by Adam.
60279         - fix http://bugs.webkit.org/show_bug.cgi?id=12260
60280           Windows platform build is not maintained
60282         * loader/win/FrameLoaderWin.cpp:
60283         * platform/network/win/ResourceHandleWin.cpp:
60284         * platform/win/TemporaryLinkStubs.cpp:
60285         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
60286         (WebCore::contextMenuItemTagDownloadLinkToDisk):
60287         (WebCore::contextMenuItemTagCopyLinkToClipboard):
60288         (WebCore::contextMenuItemTagOpenImageInNewWindow):
60289         (WebCore::contextMenuItemTagDownloadImageToDisk):
60290         (WebCore::contextMenuItemTagCopyImageToClipboard):
60291         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
60292         (WebCore::contextMenuItemTagCopy):
60293         (WebCore::contextMenuItemTagGoBack):
60294         (WebCore::contextMenuItemTagGoForward):
60295         (WebCore::contextMenuItemTagStop):
60296         (WebCore::contextMenuItemTagReload):
60297         (WebCore::contextMenuItemTagCut):
60298         (WebCore::contextMenuItemTagPaste):
60299         (WebCore::contextMenuItemTagNoGuessesFound):
60300         (WebCore::contextMenuItemTagIgnoreSpelling):
60301         (WebCore::contextMenuItemTagLearnSpelling):
60302         (WebCore::contextMenuItemTagSearchWeb):
60303         (WebCore::contextMenuItemTagLookUpInDictionary):
60304         (WebCore::contextMenuItemTagOpenLink):
60305         (WebCore::contextMenuItemTagIgnoreGrammar):
60306         (WebCore::contextMenuItemTagSpellingMenu):
60307         (WebCore::contextMenuItemTagShowSpellingPanel):
60308         (WebCore::contextMenuItemTagCheckSpelling):
60309         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
60310         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
60311         (WebCore::contextMenuItemTagFontMenu):
60312         (WebCore::contextMenuItemTagBold):
60313         (WebCore::contextMenuItemTagItalic):
60314         (WebCore::contextMenuItemTagUnderline):
60315         (WebCore::contextMenuItemTagOutline):
60316         (WebCore::contextMenuItemTagWritingDirectionMenu):
60317         (WebCore::contextMenuItemTagDefaultDirection):
60318         (WebCore::contextMenuItemTagLeftToRight):
60319         (WebCore::contextMenuItemTagRightToLeft):
60320         (WebCore::DocumentLoader::unreachableURL):
60321         (WebCore::FrameLoader::redirectDataToPlugin):
60322         (WebCore::FrameLoader::partClearedInBegin):
60323         (WebCore::FrameLoader::createPlugin):
60325 2007-01-27  Sam Weinig  <sam@webkit.org>
60327         Reviewed by Mitz.
60329         - Patch for http://bugs.webkit.org/show_bug.cgi?id=11957
60330           REGRESSION: Unordered List Bullets too big and changing from size
60332         * rendering/RenderListMarker.cpp:
60333         (WebCore::RenderListMarker::paint): Explicitly set the stroke size to 1.0f.
60335 2007-01-27  Lars Knoll <lars@trolltech.com>
60337         Fix the Qt build and disable the usage
60338         of QScrollbars for PlatformScrollBar for 
60339         now as it causes crashes in the layout tests.
60341         * WebCore.pro:
60342         * ksvg2/svg/SVGTransformDistance.cpp:
60343         * page/qt/FrameQt.cpp:
60344         (WebCore::FrameQt::FrameQt):
60345         (WebCore::FrameQt::bindingRootObject):
60346         (WebCore::FrameQt::createRootObject):
60347         * page/qt/FrameQt.h:
60348         * platform/qt/PlatformScrollBarQt.cpp:
60349         (WebCore::PlatformScrollbar::PlatformScrollbar):
60350         * platform/qt/ScrollViewQt.cpp:
60351         (WebCore::ScrollView::addChild):
60353 2007-01-27  David Kilzer  <ddkilzer@kilzer.net>
60355         Reviewed by NOBODY (buildbot build fix).
60357         * ksvg2/svg/ColorDistance.cpp:
60358         (WebCore::ColorDistance::scaledDistance): Added static cast of arguments to int.
60360 2007-01-27  Rob Buis  <buis@kde.org>
60362         Reviewed by NOBODY (typo in method name fix).
60364         * ksvg2/svg/SVGSVGElement.cpp:
60365         (WebCore::SVGSVGElement::addSVGWindowEventListener):
60366         (WebCore::SVGSVGElement::parseMappedAttribute):
60367         * ksvg2/svg/SVGSVGElement.h:
60369 2007-01-27  Eric Seidel  <eric@webkit.org>
60371         Reviewed by olliej.
60373         Fix support for SVG's <set> element.
60375         Manual test added.
60377         * ksvg2/svg/SVGSetElement.cpp:
60378         (WebCore::SVGSetElement::updateAnimatedValue):
60379         (WebCore::SVGSetElement::calculateFromAndToValues):
60380         * ksvg2/svg/SVGSetElement.h:
60381         * manual-tests/animation/set-to.svg: Added.
60383 2007-01-27  Alexey Proskuryakov  <ap@webkit.org>
60385         Release build fix.
60387         * loader/TextResourceDecoder.cpp:
60388         (WebCore::TextResourceDecoder::checkForHeadCharset):
60390 2007-01-27  Alexey Proskuryakov  <ap@webkit.org>
60392         Reviewed by Darin.
60394         http://bugs.webkit.org/show_bug.cgi?id=12389
60395         Chinese decoding error at hk.antispam.yahoo.com
60397         Test: fast/encoding/noscript-in-head.html
60399         * loader/TextResourceDecoder.cpp:
60400         (WebCore::TextResourceDecoder::checkForHeadCharset): We were already allowing 
60401         NOSCRIPT tags in head, let's actually skip over their content.
60403 2007-01-26  Geoffrey Garen  <ggaren@apple.com>
60405         Reviewed by Maciej Stachowiak.
60406         
60407         Fixed <rdar://problem/4608404> WebScriptObject's _executionContext lack 
60408         of ownership policy causes crashes (e.g., in Dashcode)
60410         Added RootObject ref-counting goodness.
60412         * page/mac/FrameMac.h:
60413         * page/mac/FrameMac.mm:
60414         (WebCore::FrameMac::cleanupPluginObjects): Invalidate our RootObjects 
60415         instead of detroying them. Track _bindingRootObject separately from the
60416         rest of our RootObjects, since it has its own variable.
60418         * page/mac/WebCoreFrameBridge.mm:
60419         (createRootObject): Use the Frame's new, more encapsulated function to
60420         create a RootObject.
60422         * bindings/objc/WebScriptObject.mm: Nixed rootObject setters, since they
60423         were unused and they complicated reference-counting.
60425 2007-01-26  David Kilzer  <ddkilzer@webkit.org>
60427         Reviewed by Eric.
60429         Release build fix.
60431         * ksvg2/svg/SVGAnimationElement.cpp:
60432         (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast): Added static cast
60433         to unsigned when calculating flooredValueIndex.
60435 2007-01-26  Darin Adler  <darin@apple.com>
60437         - checked in slightly newer revision of the patch below
60439         * css/CSSComputedStyleDeclaration.cpp:
60440         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
60441         Grouped all the unimplemented values at the bottom. Fixed the ifdef for
60442         CSS_PROP__WEBKIT_DASHBOARD_REGION so that it compiles on all platforms.
60444         * css/cssparser.cpp: (WebCore::CSSParser::parseValue): Removed default
60445         case and added type so that the compiler warns about missing properties.
60446         * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::applyProperty): Ditto.
60448 2007-01-26  Darin Adler  <darin@apple.com>
60450         Reviewed by Beth.
60452         - fix http://bugs.webkit.org/show_bug.cgi?id=12412
60453           "unimplemented propertyID: 46" seen at dojotoolkit.org
60455         Covered by fast/css/computed-style.html
60457         * css/CSSPropertyNames.in: Sorted the file into two separate sections, one
60458         for properties without the -webkit- prefix and another for properties with.
60460         * css/makeprop: Generate a CSSPropertyID enum instead of a set of #defines.
60461         Removed unused CSS_PROP_MIN and CSS_PROP_MAX. Renamed CSS_PROP_TOTAL to
60462         numCSSProperties and changed it to a const int instead of #define.
60463         Added a declaration of getPropertyName in the header. Changed the return
60464         type of getPropertyName to const char* and the parameter type to CSSPropertyID.
60466         * css/CSSComputedStyleDeclaration.cpp: Sort the lists of properties in
60467         an easier to maintain order -- properties without a WebKit prefix first.
60468         (WebCore::valueForLength): Changed return value to PassRefPtr.
60469         (WebCore::valueForMaxLength): Ditto.
60470         (WebCore::valueForBorderStyle): Ditto.
60471         (WebCore::valueForTextAlign): Ditto.
60472         (WebCore::valueForAppearance): Added.
60473         (WebCore::valueForMarginCollapse): Added.
60474         (WebCore::valueForShadow): Changed return value to PassRefPtr.
60475         (WebCore::getPositionOffsetValue): Ditto.
60476         (WebCore::currentColorOrValidColor): Ditto.
60477         (WebCore::CSSComputedStyleDeclaration::cssText): Added cast since
60478         getPropertyName now takes an enum value.
60479         (WebCore::primitiveValueFromLength): Changed return value to PassRefPtr.
60480         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
60481         Added cast to CSSPropertyID so that gcc will detect missing enums in the
60482         switch statement. Simplified the background-size and border-spacing
60483         implementations so they don't have local variables. Added lots of cases
60484         to the switch statement for unimplemented properties. Implemented the
60485         outline-width, box-sizing, -webkit-appearance, -webkit-rtl-ordering,
60486         -webkit-user-drag, and -webkit-user-select properties.
60487         (WebCore::CSSComputedStyleDeclaration::item): Added cast since
60488         getPropertyName now takes an enum value.
60490         * css/CSSMutableStyleDeclaration.cpp: Removed declaration of getPropertyName.
60491         (WebCore::CSSMutableStyleDeclaration::item): Added cast since
60492         getPropertyName now takes an enum value.
60494         * css/CSSProperty.cpp: Removed declaration of getPropertyName.
60495         (WebCore::CSSProperty::cssText): Added cast since
60496         getPropertyName now takes an enum value and returns a const char*.
60498         * css/CSSStyleDeclaration.cpp: Removed declaration of getPropertyName.
60499         (WebCore::CSSStyleDeclaration::getPropertyShorthand): Added cast since
60500         getPropertyName now takes an enum value and returns a const char*.
60502 2007-01-26  Alice Liu  <alice.liu@apple.com>
60504         Reviewed by Brady.
60506         Fixed <rdar://problem/4838076> CrashTracer: 10 crashes in Mail at com.apple.WebCore: WTF::HashMap<WebCore::String
60508         * loader/DocLoader.cpp:
60509         (WebCore::DocLoader::requestResource):
60510         Added nil check around resource from cache.
60512 2007-01-26  Adam Roben  <aroben@apple.com>
60514         Reviewed by Oliver.
60516         Build fix.
60518         * ksvg2/svg/SVGAnimationElement.cpp:
60519         (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
60520         Keep index variables as unsigned until we need to convert to float.
60522 2007-01-26  Alice Liu  <alice.liu@apple.com>
60524         Reviewed by Ada.
60526         Fixed <rdar://problem/4919097> REGRESSION: Ctrl-Y fails to yank (11076)
60528         * editing/Editor.cpp:
60529         (WebCore::Editor::deleteWithDirection):
60530         If there's no selection, locally create a range that is to the end of the granularity unit and pass that to deleteRange(). 
60532 2007-01-26  Sam Weinig  <sam@webkit.org>
60534         Reviewed by Maciej.
60536         Qt build fix.
60538         * page/qt/EventHandlerQt.cpp:
60540 2007-01-26  Matt Perry  <mpcomplete@chromium.org>
60542         Reviewed by Hyatt.
60544         Fix so that we only relayout frameset children on calls to layout.
60546         * page/FrameView.cpp:
60547         (WebCore::FrameView::layout):
60549 2007-01-26  Oliver Hunt  <oliver@apple.com>
60551         Build Fix
60553         * ksvg2/svg/ColorDistance.cpp:
60554         * ksvg2/svg/SVGAnimationElement.cpp:
60555         (WebCore::SVGAnimationElement::handleTimerEvent):
60557 2007-01-26  Eric Seidel  <eric@webkit.org>
60559         Reviewed by olliej.
60561         Add support for calcMode, keyTimes and (nearly) keySplines.
60562         http://bugs.webkit.org/show_bug.cgi?id=12350
60563         Re-architect much of the animation system to remove huge sections of code.
60564         Added new ColorDistance, SVGTransformDistance to simplify animateColor, animateTransform calculations.
60565         I also added basic <animateMotion> support since it was so easy w/ the new architecture.
60566         
60567         Adding manual animation tests until bug 12074 is fixed.
60569         * WebCore.xcodeproj/project.pbxproj:
60570         * ksvg2/misc/SVGTimer.cpp:
60571         (WebCore::SVGTimer::applyAnimations):
60572         * ksvg2/svg/ColorDistance.cpp: Added.
60573         (WebCore::ColorDistance::ColorDistance):
60574         (WebCore::clampColorValue):
60575         (WebCore::ColorDistance::scaledDistance):
60576         (WebCore::ColorDistance::addColorsAndClamp):
60577         (WebCore::ColorDistance::addToColorAndClamp):
60578         (WebCore::ColorDistance::isZero):
60579         (WebCore::ColorDistance::distance):
60580         * ksvg2/svg/ColorDistance.h: Added.
60581         * ksvg2/svg/SVGAnimateColorElement.cpp:
60582         (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
60583         (WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
60584         (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
60585         (WebCore::SVGAnimateColorElement::updateAnimatedValue):
60586         (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
60587         * ksvg2/svg/SVGAnimateColorElement.h:
60588         (WebCore::SVGAnimateColorElement::contextElement):
60589         * ksvg2/svg/SVGAnimateElement.h:
60590         (WebCore::SVGAnimateElement::updateAnimatedValue):
60591         (WebCore::SVGAnimateElement::calculateFromAndToValues):
60592         * ksvg2/svg/SVGAnimateMotionElement.cpp:
60593         (WebCore::SVGAnimateMotionElement::hasValidTarget):
60594         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
60595         (WebCore::parsePoint):
60596         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
60597         (WebCore::SVGAnimateMotionElement::updateAnimationBaseValueFromElement):
60598         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
60599         * ksvg2/svg/SVGAnimateMotionElement.h:
60600         * ksvg2/svg/SVGAnimateTransformElement.cpp:
60601         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
60602         (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
60603         (WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
60604         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
60605         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
60606         (WebCore::SVGAnimateTransformElement::parseTransformValue):
60607         * ksvg2/svg/SVGAnimateTransformElement.h:
60608         (WebCore::SVGAnimateTransformElement::contextElement):
60609         * ksvg2/svg/SVGAnimationElement.cpp:
60610         (WebCore::SVGAnimationElement::parseKeyNumbers):
60611         (WebCore::parseValues):
60612         (WebCore::parseKeySplines):
60613         (WebCore::SVGAnimationElement::parseMappedAttribute):
60614         (WebCore::SVGAnimationElement::targetAttributeAnimatedValue):
60615         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
60616         (WebCore::SVGAnimationElement::detectAnimationMode):
60617         (WebCore::adjustPercentagePastForKeySplines):
60618         (WebCore::SVGAnimationElement::valueIndexAndPercentagePastForDistance):
60619         (WebCore::SVGAnimationElement::calculateTotalDistance):
60620         (WebCore::caculateValueIndexForKeyTimes):
60621         (WebCore::SVGAnimationElement::isValidAnimation):
60622         (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
60623         (WebCore::SVGAnimationElement::updateAnimationBaseValueFromElement):
60624         (WebCore::SVGAnimationElement::applyAnimatedValueToElement):
60625         (WebCore::SVGAnimationElement::handleTimerEvent):
60626         (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
60627         * ksvg2/svg/SVGAnimationElement.h:
60628         * ksvg2/svg/SVGParserUtilities.cpp:
60629         (WebCore::SVGPolyParser::parsePoints):
60630         * ksvg2/svg/SVGParserUtilities.h:
60631         * ksvg2/svg/SVGSetElement.cpp:
60632         * ksvg2/svg/SVGSetElement.h:
60633         (WebCore::SVGSetElement::updateAnimatedValue):
60634         (WebCore::SVGSetElement::calculateFromAndToValues):
60635         * ksvg2/svg/SVGTransform.cpp:
60636         (SVGTransform::type):
60637         (SVGTransform::translate):
60638         (SVGTransform::scale):
60639         (SVGTransform::setSkewX):
60640         (SVGTransform::setSkewY):
60641         * ksvg2/svg/SVGTransform.h:
60642         (WebCore::operator==):
60643         (WebCore::operator!=):
60644         * ksvg2/svg/SVGTransformDistance.cpp: Added.
60645         (WebCore::SVGTransformDistance::SVGTransformDistance):
60646         (WebCore::SVGTransformDistance::scaledDistance):
60647         (WebCore::SVGTransformDistance::addSVGTransforms):
60648         (WebCore::SVGTransformDistance::addSVGTransform):
60649         (WebCore::SVGTransformDistance::addToSVGTransform):
60650         (WebCore::SVGTransformDistance::isZero):
60651         (WebCore::SVGTransformDistance::distance):
60652         * ksvg2/svg/SVGTransformDistance.h: Added.
60653         * ksvg2/svg/SVGTransformList.cpp:
60654         (SVGTransformList::concatenateForType):
60655         * ksvg2/svg/SVGTransformList.h:
60656         * manual-tests/animation/animateColor-by.svg: Added.
60657         * manual-tests/animation/animateColor-from-by.svg: Added.
60658         * manual-tests/animation/animateColor-repeat-indefinite.svg: Added.
60659         * manual-tests/animation/animateColor-to-from.svg: Added.
60660         * manual-tests/animation/animateColor-to.svg: Added.
60661         * manual-tests/animation/animateColor-values-simple.svg: Added.
60662         * manual-tests/animation/animateMotion-to.svg: Added.
60663         * manual-tests/animation/animateTransform-keyTimes.svg: Added.
60664         * manual-tests/animation/animateTransform-repeat-once.svg: Added.
60666 2007-01-26  Beth Dakin  <bdakin@apple.com>
60668         Reviewed by Darin.
60670         Fix for <rdar://problem/4956565> REGRESSION: After scrolling frame, 
60671         hovering over link in this frame doesn't change cursor to pointing 
60672         hand
60674         The mouseMove event was not being propagated correctly after using 
60675         the mouse to scroll the frame because m_mousePressed was never 
60676         getting set to false.
60678         * page/EventHandler.cpp:
60679         (WebCore::EventHandler::handleMousePressEvent): This code does not 
60680         belong here.
60681         * page/EventHandler.h: lastEventIsMouseUp() is only ever relevant 
60682         in EventHandlerMac, so it can just be a static function there.
60683         * page/mac/EventHandlerMac.mm:
60684         (WebCore::lastEventIsMouseUp): Make this static.
60685         (WebCore::EventHandler::passMouseDownEventToWidget): Here is where 
60686         we need to set m_mousePressed to false if lastEventIsMouseUp() is 
60687         true.
60689 2007-01-26  David Hyatt  <hyatt@apple.com>
60691         Fix for style regression caused by strictness checking of the number of properties.  This caused code like:
60692         "width: 20 px" to fail, because we interpreted it as two values and rejected it.  Our old code allowed 20 to be
60693         used like a pixel value and then ignored the orphaned unit.
60695         This patch actually scans the list of values looking for orphaned units and reattaches them to the numeric
60696         values that they should correspond to.  This means rules like "width: 5 em" will now work in quirks mdoe and
60697         the "em" unit type will be honored.
60699         Reviewed by beth
60701         * WebCore.xcodeproj/project.pbxproj:
60702         * css/cssparser.cpp:
60703         (WebCore::unitFromString):
60704         (WebCore::CSSParser::checkForOrphanedUnits):
60705         (WebCore::CSSParser::parseValue):
60706         * css/cssparser.h:
60707         (WebCore::ValueList::valueAt):
60708         (WebCore::ValueList::deleteValueAt):
60710 2007-01-26  George Staikos  <staikos@kde.org>
60712         Reviewed by Zack.
60714         Qt implementation.
60716         * WebCore.pro:
60717         * platform/qt/FontPlatformDataQt.cpp:
60718         (WebCore::FontPlatformData::FontPlatformData):
60719         * platform/qt/ScrollViewQt.cpp:
60720         (WebCore::ScrollView::scrollbarUnderMouse):
60722 2007-01-26  Brady Eidson  <beidson@apple.com>
60724         Reviewed by Anders' rubberstamp
60725         
60726         Warning about unreferenced formal parameter caused compile to fail
60728         * platform/cf/RetainPtr.h:
60729         (WebCore::adoptCFReference):
60731 2007-01-26  Darin Adler  <darin@apple.com>
60733         Reviewed by Brady.
60735         - fix <rdar://problem/4956688> move Mac-specific part of icon code into IconMac
60736         - fix a GC-compatibility problem in the icon code I noticed by code inspection
60738         * platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon): Removed Mac-specific
60739         path check -- that's in newIconForFile now.
60741         * platform/graphics/Icon.h: Changed the image to be a RetainPtr. The old code was
60742         using -[NSObject retain] which is not good enough for a pointer in a C++ object.
60743         * platform/graphics/mac/IconMac.mm:
60744         (WebCore::Icon::Icon): Got rid of unneeded code to do what RetainPtr does for us.
60745         (WebCore::Icon::~Icon): Ditto.
60746         (WebCore::Icon::newIconForFile): Added check for non-absolute file names. Updated
60747         for use of RetainPtr. Use constructor that takes NSImage.
60748         (WebCore::Icon::paint): Add get() calls needed now that we are using a RetainPtr.
60750         * WebCore.xcodeproj/project.pbxproj: Let Xcode do its thing.
60752 2007-01-26  Alexey Proskuryakov  <ap@webkit.org>
60754         Reviewed by Maciej.
60756         http://bugs.webkit.org/show_bug.cgi?id=12385
60757         Assertion failure when loading subresources from "data:" frames
60759         Test: fast/loader/opaque-base-url.html
60761         * platform/KURL.cpp:
60762         (WebCore::KURL::init): Make the URL invalid if it's relative, but has an opaque or empty base.
60764 2007-01-26  Matt Perry  <mpcomplete@chromium.org>
60766         Reviewed by Darin.
60768         * page/EventHandler.cpp:
60769         (WebCore::EventHandler::handleMouseMoveEvent):
60770         Removed a call to invalidateClick(), since we don't want to cancel a
60771         click if the mouse moves.
60773 2007-01-26  Darin Adler  <darin@apple.com>
60775         * css/MediaQueryEvaluator.cpp:
60776         (WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific):
60777         Oops, forgot a !.
60779 2007-01-26  Darin Adler  <darin@apple.com>
60781         Patch by Nate Begeman.
60782         Reviewed by Darin and Maciej.
60784         - <rdar://problem/4946877> Avoid unnecessary allocations in CSS, patch attached (12401)
60785           http://bugs.webkit.org/show_bug.cgi?id=12401
60787         * css/MediaQueryEvaluator.h: Add mediaTypeMatchSpecific, a function that
60788         takes a char* to avoid creating and destroying a String for simple media
60789         type queries.
60790         * css/MediaQueryEvaluator.cpp:
60791         (WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific): Added. Besides
60792         avoiding the conversion to String, this also doesn't have the special
60793         case code to handle "" and "all".
60795         * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::matchUARules):
60796         Call mediaTypeMatchSpecific here when deciding whether to use the
60797         print version of the user agent style sheet.
60799         * loader/Cache.cpp: (WebCore::Cache::requestResource): Don't convert to
60800         a string and back to a KURL when calling createResource. Avoids reparsing
60801         the URL string.
60803 2007-01-26  Zack Rusin  <zrusin@trolltech.com>
60805         Reviewed by Lars
60807         Add history related classes to the project file.
60809         * WebCore.pro:
60811 2007-01-26  Zack Rusin  <zack@kde.org>
60813         Reviewed by Lars
60815         Introduce PlatformScrollBar and try to make 
60816         the scrollbar behavior a little more sane.
60818         * WebCore.pro:
60819         * platform/qt/PlatformScrollBarQt.cpp: Added.
60820         (WebCore::Scrollbar::Scrollbar):
60821         (WebCore::Scrollbar::setSteps):
60822         (WebCore::Scrollbar::scroll):
60823         (WebCore::Scrollbar::setValue):
60824         (WebCore::Scrollbar::setProportion):
60825         (WebCore::PlatformScrollbar::PlatformScrollbar):
60826         (WebCore::PlatformScrollbar::~PlatformScrollbar):
60827         (WebCore::PlatformScrollbar::width):
60828         (WebCore::PlatformScrollbar::height):
60829         (WebCore::PlatformScrollbar::setEnabled):
60830         (WebCore::PlatformScrollbar::paint):
60831         (WebCore::PlatformScrollbar::updateThumbPosition):
60832         (WebCore::PlatformScrollbar::updateThumbProportion):
60833         (WebCore::PlatformScrollbar::setRect):
60834         * platform/qt/ScrollViewQt.cpp:
60835         (WebCore::ScrollView::addChild):
60836         * platform/qt/TemporaryLinkStubs.cpp:
60837         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
60839 2007-01-26  Mitz Pettel  <mitz@webkit.org>
60841         Reviewed by Darin.
60843         - fix http://bugs.webkit.org/show_bug.cgi?id=11109
60844           REGRESSION (r15471): menus are offset on eink.com
60845           <rdar://problem/4824760>
60847         Changed offset{Left,Top} to match Firefox. If the body element is statically
60848         positioned, it is still returned as the offsetParent of elements whose containing
60849         block is the initial containing block (the root), but their offset{Left,Top} are
60850         relative to the root. If the body element is positioned, then offsets are relative
60851         to it. The body's own offset{Left,Top} are always 0. 
60853         Test: fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
60855         * rendering/RenderObject.cpp:
60856         (WebCore::RenderObject::offsetLeft):
60857         (WebCore::RenderObject::offsetTop):
60859 2007-01-26  Mitz Pettel  <mitz@webkit.org>
60861         Reviewed by Darin and Maciej.
60863         - fix http://bugs.webkit.org/show_bug.cgi?id=10983
60864           REGRESSION (r12290): Drop shadow of flickr photo note is positioned incorrectly the second time it's shown
60866         Test: fast/dynamic/staticY.html
60868         * rendering/RenderBlock.cpp:
60869         (WebCore::RenderBlock::layoutPositionedObjects): Avoid marking the object's
60870         parents, since they have already been laid out.
60871         * rendering/RenderBox.cpp:
60872         (WebCore::RenderBox::setStaticY): Added a call to setChildNeedsLayout() to
60873         ensure relayout by this box's container (third and fourth cases in the
60874         layout test).
60875         * rendering/RenderBox.h:
60876         * rendering/RenderObject.cpp:
60877         (WebCore::RenderObject::markContainingBlocksForLayout): For positioned objects
60878         with static y, also mark the object's parent to ensure that it recomputes
60879         the static y value (first case in the layout test).
60881 2007-01-26  Lars Knoll <lars@trolltech.com>
60883         Reviewed by Zack
60885         Get rid of FrameQtClient. It's unused since we moved over
60886         to the loader.
60888         * WebCore.pro:
60889         * page/qt/FrameQt.cpp:
60890         (WebCore::FrameQt::FrameQt):
60891         * page/qt/FrameQt.h:
60892         * page/qt/FrameQtClient.cpp: Removed.
60893         * page/qt/FrameQtClient.h: Removed.
60894         * platform/network/ResourceHandleInternal.h:
60895         * platform/network/qt/ResourceHandleManagerQt.cpp:
60896         (WebCore::RequestQt::RequestQt):
60897         (WebCore::ResourceHandleManager::add):
60898         * platform/network/qt/ResourceHandleManagerQt.h:
60899         * platform/network/qt/ResourceHandleQt.cpp:
60900         (WebCore::ResourceHandle::start):
60902 2007-01-26  Zack Rusin  <zack@kde.org>
60904         Fix the compile
60906         * WebCore.pro:
60908 2007-01-26  Adam Roben  <aroben@apple.com>
60910         Reviewed by Maciej.
60912         Fixed <rdar://problem/4946499>, which made it impossible to tab
60913         forward into the left frame of tivofaq.com after tabbing out of the
60914         document.
60916         * page/FocusController.cpp:
60917         (WebCore::FocusController::advanceFocus): Clear the focused frame
60918         before passing off focus to Chrome so that when we re-enter the
60919         document we start at the main frame instead of the last focused frame.
60921 2007-01-25  Rob Buis  <buis@kde.org>
60923         Reviewed by olliej.
60925         http://bugs.webkit.org/show_bug.cgi?id=11911
60926         SVG exhibits double-text-selection behavior
60928         Fix selection height of the inline text boxes for svg.
60930         * WebCore.xcodeproj/project.pbxproj:
60931         * rendering/InlineTextBox.cpp:
60932         (WebCore::InlineTextBox::selectionTop):
60933         (WebCore::InlineTextBox::selectionHeight):
60934         (WebCore::InlineTextBox::selectionRect):
60935         (WebCore::InlineTextBox::paintSelection):
60936         (WebCore::InlineTextBox::paintMarkedTextBackground):
60937         (WebCore::InlineTextBox::paintCustomHighlight):
60938         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
60939         (WebCore::InlineTextBox::paintTextMatchMarker):
60940         * rendering/InlineTextBox.h:
60941         * rendering/RenderSVGInlineText.cpp:
60942         (WebCore::RenderSVGInlineText::createInlineTextBox):
60943         * rendering/RenderSVGInlineText.h:
60944         * rendering/RenderText.cpp:
60945         (WebCore::RenderText::createInlineTextBox):
60946         (WebCore::RenderText::createInlineBox):
60947         * rendering/RenderText.h:
60948         * rendering/SVGInlineTextBox.cpp: Added.
60949         (WebCore::SVGInlineTextBox::selectionTop):
60950         (WebCore::SVGInlineTextBox::selectionHeight):
60951         * rendering/SVGInlineTextBox.h: Added.
60952         (WebCore::SVGInlineTextBox::SVGInlineTextBox):
60954 2007-01-26  Zack Rusin  <zack@kde.org>
60956         Reviewed by Lars
60958         Fix drawing of tiled images.
60960         * WebCore.pro:
60961         * platform/graphics/qt/ImageQt.cpp:
60962         (WebCore::BitmapImage::drawPattern):
60964 2007-01-26  Zack Rusin  <zack@kde.org>
60966         Reviewed by Lars
60968         Fixing image loading - we decode QImages
60969         but render QPixmaps now. Implement Icon
60970         class
60972         * platform/graphics/BitmapImage.h:
60973         * platform/graphics/Icon.h:
60974         * platform/graphics/Image.h:
60975         (WebCore::Image::getPixmap):
60976         * platform/graphics/qt/IconQt.cpp:
60977         (WebCore::Icon::Icon):
60978         (WebCore::Icon::~Icon):
60979         (WebCore::Icon::newIconForFile):
60980         (WebCore::Icon::paint):
60981         * platform/graphics/qt/ImageDecoderQt.cpp:
60982         (WebCore::ImageDecoderQt::ImageData::ImageData):
60983         (WebCore::ImageDecoderQt::ReadContext::read):
60984         (WebCore::ImageDecoderQt::ReadContext::readImageLines):
60985         (WebCore::ImageDecoderQt::reset):
60986         (WebCore::ImageDecoderQt::imageAtIndex):
60987         * platform/graphics/qt/ImageDecoderQt.h:
60988         * platform/graphics/qt/ImageQt.cpp:
60989         (WebCore::BitmapImage::drawPattern):
60990         (WebCore::BitmapImage::getPixmap):
60991         * platform/graphics/qt/ImageSourceQt.cpp:
60992         (WebCore::ImageSource::createFrameAtIndex):
60994 2007-01-25  Justin Garcia  <justin.garcia@apple.com>
60996         Reviewed by oliver
60997         
60998         <http://bugs.webkit.org/show_bug.cgi?id=12409>
60999         REGRESSION (r19039): Drag caret isn't cleared after a drop
61001         No new layout tests because the regression was
61002         caught by current layout tests.
61004         * page/DragController.cpp:
61005         (WebCore::DragController::concludeDrag): Clear the drag caret.
61007 2007-01-25  Darin Adler  <darin@apple.com>
61009         Reviewed and landed by Geoffrey Garen.
61011         - fix http://bugs.webkit.org/show_bug.cgi?id=12342
61012           REGRESSION: destroying a frame from its own script causes various crashes
61014         * bindings/js/kjs_window.cpp: (KJS::ScheduledAction::execute):
61015         Use RefPtr for the frame and the interpreter object so they don't get deleted
61016         out from underneath us.
61018         * bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate):
61019         Add a check for a page of 0. This was the only call site for the
61020         addMessageToConsole function that did not have a check for a page of 0.
61022 2007-01-25 Dirk Mueller  <mueller@kde.org>
61024         Reviewed and merged by Beth.
61026         Fix for <rdar://problem/4921692> not processing comments inside a 
61027         title element leads to XSS (for at least BlogSpot)
61029         This is equivalent to commit 626791 in the KDE tree. Basically, the 
61030         patch allows comment parsing in titles to avoid capturing a 
61031         <script> tag by accident.
61033         * html/HTMLTokenizer.cpp:
61034         (WebCore::HTMLTokenizer::parseSpecial):
61035         (WebCore::HTMLTokenizer::parseComment):
61037 2007-01-25  Darin Adler  <darin@apple.com>
61039         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Add a couple of comments.
61041 2007-01-25  Darin Adler  <darin@apple.com>
61043         Reviewed by Maciej.
61045         - fix http://bugs.webkit.org/show_bug.cgi?id=12365
61046           Reproducible crash in WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio
61047           in svg/W3C-SVG-1.1/animate-elem-40-t.svg under guard malloc
61048         - fix bug where the parser accepts "meet" or "slice" as an entire string
61049         - fix bug where "slice" is ignored if the old alignment was "none"
61050           even if the newly-parsed alignment is something other than "none", and
61051           "slice" is not ignored if the old alignment was not "none", but the
61052           newly-parsed alignment is "none"
61053         - optimize to only call notifyAttributeChange if the attribute actually changed
61055         Test: svg/dom/preserve-aspect-ratio-parser-test.html
61057         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
61058         (WebCore::checkString): Added an overload for using char* constants which is
61059         much simpler than the old one, and almost as fast.
61060         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio): Fail if there's no
61061         more text after "defer". Fail if there's neither "none" nor an x/y specified.
61062         Check that there's more text before looking at the "m" and "s" for "meet" and
61063         "slice". Merged the failure and success cases. Only call notifyAttributeChange
61064         if something changed.
61066         I think all the "optimized" code where we check the first character before
61067         calling checkString isn't really helpful, but I decided to leave it as-is
61068         for now.
61070 2007-01-25  Lars Knoll <lars@trolltech.com>
61072         Reviewed by Zack
61074         Trivial implementation of getMIMETypeForExtension.
61075         Use the above method in the ResourceHandleManager to set
61076         a mimetype on Resources that don't have one set (which
61077         includes everything loaded from local disk).
61079         Should fix quite a few test cases :)
61081         * platform/network/qt/ResourceHandleManagerQt.cpp:
61082         (WebCore::ResourceHandleManager::receivedResponse):
61083         * platform/qt/MimeTypeRegistryQt.cpp:
61084         (WebCore::):
61085         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
61087 2007-01-25 Harald Fernengel <harald@trolltech.com>
61089         Reviewed by zack
61091         Compile on platforms where qreal is not a double.
61093         * platform/graphics/qt/AffineTransformQt.cpp:
61094         (WebCore::AffineTransform::map):
61096 2007-01-25  Zack Rusin  <zack@kde.org>
61098         Reviewed by Lars.
61100         Add wheel event handling and make explicit usage
61101         of the EventHandler.
61103         * WebCore.pro:
61104         * page/qt/EventHandlerQt.cpp:
61105         (WebCore::EventHandler::focusDocumentView):
61106         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
61107         (WebCore::EventHandler::passMouseDownEventToWidget):
61108         (WebCore::EventHandler::lastEventIsMouseUp):
61109         (WebCore::EventHandler::handleMouseUp):
61110         * platform/PlatformWheelEvent.h:
61111         * platform/qt/ScrollViewCanvasQt.cpp:
61112         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
61113         (WebCore::ScrollViewCanvasQt::mousePressEvent):
61114         (WebCore::ScrollViewCanvasQt::wheelEvent):
61115         (WebCore::ScrollViewCanvasQt::dragEnterEvent):
61116         (WebCore::ScrollViewCanvasQt::dragLeaveEvent):
61117         (WebCore::ScrollViewCanvasQt::dragMoveEvent):
61118         * platform/qt/ScrollViewCanvasQt.h:
61119         * platform/qt/ScrollViewQt.cpp:
61120         (WebCore::ScrollView::wheelEvent):
61121         * platform/qt/WheelEventQt.cpp: Added.
61122         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
61124 2007-01-25  Rob Buis  <buis@kde.org>
61126         Reviewed by Maciej.
61128         http://bugs.webkit.org/show_bug.cgi?id=12391
61129         SVG containers with viewports should respect overflow when hit testing
61131         Take into account the overflow property when hit testing <svg>.
61133         * rendering/RenderSVGContainer.cpp:
61134         (WebCore::RenderSVGContainer::nodeAtPoint):
61136 2007-01-23  Alice Liu  <alice.liu@apple.com>
61138         Reviewed by Maciej.
61140         fixed <rdar://problem/4808039> REGRESSION: eBay ID check never completes
61141         Also known as http://bugs.webkit.org/show_bug.cgi?id=11230
61143         * bindings/js/kjs_window.cpp:
61144         It's not necessary to check safeScript when doing a location.replace, .reload, or .assign
61145         (KJS::Location::getOwnPropertySlot):
61146         (KJS::LocationFunc::callAsFunction):
61148 2007-01-25  Alice Liu  <alice.liu@apple.com>
61150         Reviewed by Geoff and Adele.
61152         fixed <rdar://problem/4866655> REGRESSION: Copying out of Calculator & CIFIlterWidget is broken on 9A320
61154         * editing/Editor.cpp:
61155         (WebCore::Editor::canDHTMLCut):
61156         (WebCore::Editor::canDHTMLCopy):
61157         (WebCore::Editor::tryDHTMLCopy):
61158         (WebCore::Editor::tryDHTMLCut):
61159         Reverting some mistakes made in r17504:
61160         Anything in r17503 that used to call mayDHTML* still calls canDHTML* as it was changed in r17504, where canDHTML* now calls !selectionController::isInPasswordField instead of editor::canCopy
61161         Anything else in r17503 that used to call mayCopy now calls (!)selectionController::isInPasswordField.
61163         * editing/JSEditor.cpp:
61164         copy via JS should be enabled as long as selection is not in a password field.  a range selection shouldn't be required. 
61166 2007-01-24  Adele Peterson  <adele@apple.com>
61168         Reviewed by Brady and Oliver.
61170         Fix for <rdar://problem/4953504> When the keydown event changes focus, the keypress event should go to the new focused node
61172         Test: fast/events/keydown-keypress-focus-change.html
61174         * page/EventHandler.cpp:
61175         (WebCore::eventTargetNodeForDocument): Added for convenience.
61176         (WebCore::EventHandler::keyEvent): Moved from EventHandlerMac.mm.  After dispatching the keyDown event,
61177          recheck the target node for the keyPress event in case its changed.
61178         * page/EventHandler.h:
61179         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::keyEvent):
61180           Moved the bulk of this code to EventHandler.cpp.
61182 2007-01-24  Geoffrey Garen  <ggaren@apple.com>
61184         New forwarding header. No review necessary.
61186         * ForwardingHeaders/kjs/ustring.h: Added.
61188 2007-01-24  Oliver Hunt  <oliver@apple.com>
61190         Reviewed by Maciej.
61192         Migrating more drag state information to WebCore
61194         * page/DragController.cpp:
61195         * page/DragController.h:
61196         (WebCore::DragController::dragOperation):
61197         (WebCore::DragController::setDraggingImageURL):
61198         (WebCore::DragController::draggingImageURL):
61199         (WebCore::DragController::setDragOffset):
61200         (WebCore::DragController::dragOffset):
61202 2007-01-24  Darin Adler  <darin@apple.com>
61204         Reviewed by Adele.
61206         - fix http://bugs.webkit.org/show_bug.cgi?id=12331
61207           REGRESSION(r18951): Selecting text in a textarea makes the page scroll
61209         Test: fast/events/autoscroll.html
61211         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll):
61212         Adjust position to be relative to the object's corner for the hit test, but not for the
61213         scrollRectToVisible call. The previous version accidentally re-used the version that was
61214         adjusted for the hit test.
61216 2007-01-24  Beth Dakin  <bdakin@apple.com>
61218         Reviewed by Geoff.
61220         Fix for <rdar://problem/4948128> REGRESSION: A crash occurs at 
61221         WebCore::Frame::view() after completing a query at mapquest.com 
61222         then switching to Bookmarks view
61224         This is just a null-check. If you are in strict mode and ask for 
61225         the clientWidth or clientHeight after the document was removed from 
61226         it's parent, we no longer have a frameView, so we have to null-
61227         check it. I added null checks for the FrameView in some other 
61228         places where it seems like we could potentially run into this 
61229         issue.
61231         * bindings/objc/DOMHTML.mm:
61232         (-[DOMHTMLInputElement _rectOnScreen]):
61233         * bridge/mac/WebCoreAXObject.mm:
61234         (-[WebCoreAXObject accessibilityAttributeValue:]):
61235         * dom/ContainerNode.cpp:
61236         (WebCore::ContainerNode::getUpperLeftCorner):
61237         * dom/Element.cpp:
61238         (WebCore::Element::clientWidth): Actual bug fix here!
61239         (WebCore::Element::clientHeight): And here!
61240         * ksvg2/svg/SVGLength.cpp:
61241         (WebCore::SVGLength::PercentageOfViewport):
61242         * loader/FrameLoader.cpp:
61243         (WebCore::FrameLoader::createJavaAppletWidget):
61244         * page/mac/WebCoreFrameBridge.mm:
61245         (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
61246         * rendering/RenderLayer.cpp:
61247         (WebCore::RenderLayer::windowClipRect):
61248         (WebCore::RenderLayer::updateOverflowStatus):
61249         (WebCore::frameVisibleRect):
61250         * rendering/RenderListBox.cpp:
61251         (WebCore::RenderListBox::windowClipRect):
61252         * rendering/RenderTable.cpp:
61253         (WebCore::RenderTable::layout):
61255 2007-01-24  Maciej Stachowiak  <mjs@apple.com>
61257         Not reviewed, just removing accidentally committed file.
61259         - removed file that shouldn't be there
61261         * Image Viewer/Image Viewer.aps: Removed.
61263 2007-01-24  Anders Carlsson  <acarlsson@apple.com>
61265         Reviewed by Geoff and Adam.
61267         <rdar://problem/4922655>
61268         http://galeri.milliyet.com.tr/ reproducibly crashes Safari
61269         
61270         * loader/FrameLoader.cpp:
61271         (WebCore::FrameLoader::requestFrame):
61272         If the frame already exists, defer the navigation so that we won't end up replacing the document
61273         while we're parsing it. This is similar to what setting window.location ends up doing.
61275 2007-01-25  Mark Rowe  <mrowe@apple.com>
61277         Reviewed by Darin.
61279         * Info.plist: Update copyright string.
61281 2007-01-24  Justin Garcia  <justin.garcia@apple.com>
61283         Reviewed by harrison
61285         <rdar://problem/4916235>
61286         eBay Editor: Crash occurs at WebCore::Range::startPosition() after applying ordered list styling to selected text
61287         <rdar://problem/4857269>
61288         REGRESSION: editing/execCommand/create-list-from-range-selection.html no longer works as intended
61289         <rdar://problem/4916583>
61290         eBay Editor: Removing a indent from a list item actually deletes the list item instead
61291         <rdar://problem/4928635>
61292         designMode outdent causes crash (11750)
61294         * editing/CompositeEditCommand.cpp:
61295         (WebCore::CompositeEditCommand::moveParagraphs): Fixed br insertion
61296         after the pruning of empty containers left over after the paragraph
61297         to move is removed.
61298         * editing/DeleteSelectionCommand.cpp:
61299         (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): There are
61300         bugs that leave the wrong number of line breaks after a deletion 
61301         that expands to include special elements (lists/tables).  Added 
61302         a workaround so that moveParagraphs can avoid these until they 
61303         are fixed.
61304         (WebCore::DeleteSelectionCommand::initializeStartEnd): Ditto.
61305         (WebCore::DeleteSelectionCommand::initializePositionData): Ditto.
61306         * editing/DeleteSelectionCommand.h:
61307         * editing/TextIterator.cpp:
61308         (WebCore::TextIterator::advance): We used to not call exitNode for
61309         ancestors of a node where the next node in a pre-order traversal is 
61310         the ranges's pastEndNode().  This is only correct for ancestors that
61311         contain the end of the range.
61312         (WebCore::shouldEmitNewlineAfterNode): Added, we should only emit newlines
61313         after blocks that have VisiblePositions after them.  VisiblePosition creation
61314         though is too expensive to do here, what I added here is an OK substitute.
61315         (WebCore::shouldEmitNewlineBeforeNode): Added.  No special logic yet.
61316         (WebCore::TextIterator::handleNonTextNode): Call shouldEmitNewlineBeforeNode.
61317         (WebCore::TextIterator::exitNode): Call shouldEmitNewlineAfterNode.
61318         (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Call
61319         shouldEmitNewlineAfterNode.
61321 2007-01-24  Darin Adler  <darin@apple.com>
61323         Reviewed by Mark Rowe.
61325         * WebCore.xcodeproj/project.pbxproj: Changed to /usr/sbin/sysctl
61326         so we don't rely on people's paths.
61328 2007-01-24  Darin Adler  <darin@apple.com>
61330         Reviewed by Adele.
61332         - a couple minor tweaks to recently-changed things
61334         * dom/Document.h: Use HTMLHeadElement as type for the head function.
61335         * dom/Document.cpp: (WebCore::Document::head):
61337         * ksvg2/svg/SVGElementInstance.cpp:
61338         (WebCore::SVGElementInstance::~SVGElementInstance): Change loop to
61339         a for loop and use a local variable for document.
61341 2007-01-24  Oliver Hunt  <oliver@apple.com>
61343         Reviewed by Adele.
61345         Fixes DragController to allow a null target Document.
61346         This is encountered in new tabs/windows that have not 
61347         loaded any page
61349         * page/DragController.cpp:
61350         (WebCore::documentAtPoint):
61351         (WebCore::DragController::tryDocumentDrag):
61352         (WebCore::DragController::operationForLoad):
61353         (WebCore::DragController::concludeDrag):
61354         * page/mac/DragControllerMac.mm:
61355         (WebCore::DragController::dragOperation):
61357 2007-01-24  Sam Weinig  <sam@webkit.org>
61359         Reviewed by Mitz.
61361         Patch for http://bugs.webkit.org/show_bug.cgi?id=12394
61362         Cleanup RenderBox
61364         No functionality changes, just a good old fashion cleanup,
61365         thus no tests.
61367         * rendering/RenderBox.cpp:
61368         (WebCore::RenderBox::RenderBox):
61369         (WebCore::RenderBox::setStyle):
61370         (WebCore::RenderBox::destroy):
61371         (WebCore::RenderBox::setPos):
61372         (WebCore::RenderBox::calcBorderBoxWidth):
61373         (WebCore::RenderBox::calcBorderBoxHeight):
61374         (WebCore::RenderBox::calcContentBoxWidth):
61375         (WebCore::RenderBox::calcContentBoxHeight):
61376         (WebCore::RenderBox::nodeAtPoint):
61377         (WebCore::RenderBox::paintRootBoxDecorations):
61378         (WebCore::RenderBox::paintBoxDecorations):
61379         (WebCore::RenderBox::paintBackgrounds):
61380         (WebCore::RenderBox::paintBackground):
61381         (WebCore::cacluateBackgroundSize):
61382         (WebCore::RenderBox::paintBackgroundExtended):
61383         (WebCore::RenderBox::getOverflowClipRect):
61384         (WebCore::RenderBox::getClipRect):
61385         (WebCore::RenderBox::containingBlockWidth):
61386         (WebCore::RenderBox::absolutePosition):
61387         (WebCore::RenderBox::dirtyLineBoxes):
61388         (WebCore::RenderBox::position):
61389         (WebCore::RenderBox::getAbsoluteRepaintRect):
61390         (WebCore::RenderBox::computeAbsoluteRepaintRect):
61391         (WebCore::RenderBox::repaintDuringLayoutIfMoved):
61392         (WebCore::RenderBox::relativePositionOffsetX):
61393         (WebCore::RenderBox::relativePositionOffsetY):
61394         (WebCore::RenderBox::calcWidth):
61395         (WebCore::RenderBox::calcWidthUsing):
61396         (WebCore::RenderBox::sizesToIntrinsicWidth):
61397         (WebCore::RenderBox::calcHorizontalMargins):
61398         (WebCore::RenderBox::calcHeight):
61399         (WebCore::RenderBox::calcPercentageHeight):
61400         (WebCore::RenderBox::calcReplacedWidthUsing):
61401         (WebCore::RenderBox::calcReplacedHeightUsing):
61402         (WebCore::RenderBox::availableHeightUsing):
61403         (WebCore::RenderBox::calcVerticalMargins):
61404         (WebCore::RenderBox::containingBlockWidthForPositioned):
61405         (WebCore::RenderBox::calcAbsoluteHorizontal):
61406         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
61407         (WebCore::RenderBox::calcAbsoluteVertical):
61408         (WebCore::RenderBox::calcAbsoluteVerticalValues):
61409         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
61410         (WebCore::RenderBox::caretRect):
61411         * rendering/RenderBox.h:
61412         (WebCore::RenderBox::setOverrideSize):
61413         (WebCore::RenderBox::width):
61414         (WebCore::RenderBox::height):
61415         (WebCore::RenderBox::setWidth):
61416         (WebCore::RenderBox::setHeight):
61417         (WebCore::RenderBox::inlineBoxWrapper):
61418         (WebCore::RenderBox::setInlineBoxWrapper):
61419         (WebCore::RenderBox::stretchesToViewHeight):
61420         (WebCore::RenderBox::setStaticX):
61421         (WebCore::RenderBox::setStaticY):
61423 2007-01-24  Eric Seidel  <eric@webkit.org>
61425         Reviewed by ap.
61427         Converted SVGTransform from being Shared<T> to a POD type.
61429         No functional changes, thus no tests.
61431         * bindings/scripts/CodeGenerator.pm:
61432         * bindings/scripts/CodeGeneratorJS.pm:
61433         * ksvg2/misc/SVGTimer.cpp:
61434         (WebCore::baseValueTransformList):
61435         * ksvg2/svg/SVGAnimateTransformElement.cpp:
61436         (WebCore::SVGAnimateTransformElement::storeInitialValue):
61437         (WebCore::SVGAnimateTransformElement::resetValues):
61438         (WebCore::SVGAnimateTransformElement::updateCurrentValue):
61439         (WebCore::SVGAnimateTransformElement::handleStartCondition):
61440         (WebCore::SVGAnimateTransformElement::applyAnimationToValue):
61441         (WebCore::SVGAnimateTransformElement::parseTransformValue):
61442         * ksvg2/svg/SVGAnimateTransformElement.h:
61443         * ksvg2/svg/SVGLinearGradientElement.cpp:
61444         (WebCore::SVGLinearGradientElement::collectGradientProperties):
61445         * ksvg2/svg/SVGPatternElement.cpp:
61446         (WebCore::SVGPatternElement::collectPatternProperties):
61447         * ksvg2/svg/SVGRadialGradientElement.cpp:
61448         (WebCore::SVGRadialGradientElement::collectGradientProperties):
61449         * ksvg2/svg/SVGSVGElement.cpp:
61450         (WebCore::SVGSVGElement::createSVGTransform):
61451         (WebCore::SVGSVGElement::createSVGTransformFromMatrix):
61452         * ksvg2/svg/SVGSVGElement.h:
61453         * ksvg2/svg/SVGStyledTransformableElement.cpp:
61454         (WebCore::SVGStyledTransformableElement::updateLocalTransform):
61455         * ksvg2/svg/SVGTextElement.cpp:
61456         (WebCore::SVGTextElement::updateLocalTransform):
61457         * ksvg2/svg/SVGTransform.cpp:
61458         (SVGTransform::SVGTransform):
61459         (SVGTransform::isValid):
61460         * ksvg2/svg/SVGTransform.h:
61461         * ksvg2/svg/SVGTransform.idl:
61462         * ksvg2/svg/SVGTransformList.cpp:
61463         (SVGTransformList::SVGTransformList):
61464         (SVGTransformList::createSVGTransformFromMatrix):
61465         (SVGTransformList::consolidate):
61466         (SVGTransformList::concatenate):
61467         * ksvg2/svg/SVGTransformList.h:
61468         * ksvg2/svg/SVGTransformable.cpp:
61469         (WebCore::SVGTransformable::parseTransformAttribute):
61471 2007-01-24  Mark Rowe  <mrowe@apple.com>
61473         Reviewed by Eric.
61475         Plug another bunch of SVG memory leaks.
61477         * ksvg2/misc/SVGDocumentExtensions.cpp:
61478         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Delete memory we have allocated.
61479         (WebCore::SVGDocumentExtensions::removePendingResource): Return an auto_ptr to show that we are transferring ownership.
61480         * ksvg2/misc/SVGDocumentExtensions.h:
61481         * ksvg2/svg/SVGElement.cpp:
61482         (WebCore::SVGElement::insertedIntoDocument): Update for use of auto_ptr.
61484 2007-01-23  Mark Rowe  <mrowe@apple.com>
61486         Reviewed by Brady.
61488         Plug thousands of node leaks seen running layout tests.
61490         * ksvg2/svg/SVGElementInstance.cpp:
61491         (WebCore::SVGElementInstance::~SVGElementInstance): Disassociate ourselves from our children so they will
61492         be destroyed if we were the only thing referencing them.
61493         * ksvg2/svg/SVGUseElement.cpp:
61494         (WebCore::SVGUseElement::removedFromDocument):
61495         * ksvg2/svg/SVGUseElement.h:
61497 2007-01-23  Alice Liu  <alice.liu@apple.com>
61499         Reviewed by Brady.
61501         * editing/Editor.cpp:
61502         (WebCore::Editor::appliedEditing):
61503         minor change.  removing unnecessary call to frame to fetch editor
61505 2007-01-23  Mark Rowe  <mrowe@apple.com>
61507         Reviewed by Adele.
61509         http://bugs.webkit.org/show_bug.cgi?id=12375
61510         Bug 12375: REGRESSION(r19038): fast/dom/title-text-property-2.html failing
61512         Fix regression by making setTitle/updateTitle/removeTitle logic match document.title
61513         specification at http://whatwg.org/specs/web-apps/current-work/#the-title1.
61515         * dom/Document.cpp:
61516         (WebCore::Document::setTitle): Materialize a title element into the head if one doesn't exist when setting
61517         document.title.  Also update the contents of the title element when the title is set via document.title.
61518         (WebCore::Document::removeTitle): Update the title based on first title element in the head, if one exists.
61519         (WebCore::Document::head): Convenience method to retrieve the head element in an HTML document.
61520         * dom/Document.h:
61522 2007-01-23  Beth Dakin  <bdakin@apple.com>
61524         Reviewed by Hyatt.
61526         Follow-up to the fix below for 4843226.
61528         * rendering/RenderLayer.cpp:
61529         (WebCore::transparencyClipBox): Has to be recursive or we will miss 
61530         out on grandchildren!
61532 2007-01-23  Oliver Hunt  <oliver@apple.com>
61534         Reviewed by Adam.
61536         Fixes dropping of files into safari
61538         * page/DragController.cpp:
61539         (WebCore::DragController::performDrag):
61541 2007-01-23  Brady Eidson  <beidson@apple.com>
61543         Reviewed by Darin
61545         Added a couple of CF things previously missed
61547         * platform/network/ResourceError.h:
61548         * platform/network/ResourceHandle.h:
61550 2007-01-23  Nikolas Zimmermann  <zimmermann@kde.org>
61552         Reviewed by Maciej.
61554         Fix evil genericContext() assertion, which occours sometimes when running DRT.
61555         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12379
61557         * bindings/scripts/CodeGeneratorJS.pm:
61558         * ksvg2/misc/SVGDocumentExtensions.h:
61559         (WebCore::SVGDocumentExtensions::genericContextMap):
61560         (WebCore::SVGDocumentExtensions::forgetGenericContext):
61562 2007-01-23  Beth Dakin  <bdakin@apple.com>
61564         Reviewed by Hyatt.
61566         Fix for <rdar://problem/4843226> REGRESSION: Pull down menu appears 
61567         clipped at http://istweb.apple.com/
61569         * rendering/RenderLayer.cpp:
61570         (WebCore::transparencyClipBox): Always unite with sibling rects.
61572 2007-01-22  Justin Garcia  <justin.garcia@apple.com>
61574         Reviewed by john
61576         <rdar://problem/4920742>
61577         REGRESSION: GMail Editor: Attempting to remove formatting from selection results in a crash at WebCore::Range::checkDeleteExtract()
61579         * dom/Range.cpp:
61580         (WebCore::Range::checkDeleteExtract): Return if there is no
61581         commonAncestor container or if commonAncestorContainer() throws
61582         an exception.
61583         * editing/Editor.cpp:
61584         (WebCore::Editor::removeFormattingAndStyle): Fixed a bug that reversed
61585         the order of the selected paragraphs.
61587 2007-01-23  Nikolas Zimmermann  <zimmermann@kde.org>
61589         Reviewed by Sam.
61591         Fix dynamic creation/updates of markers, masks, clipPaths, and several tiny pattern issues.
61592         Added 16 (!) new layout tests covering quite some weird scenerios - Batik & Opera do have problems, we don't.
61594         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12380
61595         Fixes: svg/custom/image-with-transform-clip-filter.svg (filter shows up again)
61597         Added: svg/custom/clip-path-child-changes.svg
61598         Added: svg/custom/clip-path-href-changes.svg
61599         Added: svg/custom/clip-path-units-changes.svg
61600         Added: svg/custom/deep-dynamic-updates.svg
61601         Added: svg/custom/js-late-clipPath-and-object-creation.svg
61602         Added: svg/custom/js-late-clipPath-creation.svg
61603         Added: svg/custom/js-late-marker-and-object-creation.svg
61604         Added: svg/custom/js-late-marker-creation.svg
61605         Added: svg/custom/js-late-mask-and-object-creation.svg
61606         Added: svg/custom/js-late-mask-creation.svg
61607         Added: svg/custom/js-update-pattern-child.svg
61608         Added: svg/custom/marker-changes.svg
61609         Added: svg/custom/marker-child-changes.svg
61610         Added: svg/custom/marker-viewBox-changes.svg
61611         Added: svg/custom/mask-changes.svg
61612         Added: svg/custom/mask-child-changes.svg
61614         * ksvg2/misc/KCanvasRenderingStyle.cpp:
61615         (WebCore::KSVGPainterFactory::fillPaintServer):
61616         (WebCore::KSVGPainterFactory::strokePaintServer):
61617         * ksvg2/svg/SVGClipPathElement.cpp:
61618         (WebCore::SVGClipPathElement::notifyAttributeChange):
61619         * ksvg2/svg/SVGClipPathElement.h:
61620         * ksvg2/svg/SVGGradientElement.cpp:
61621         * ksvg2/svg/SVGGradientElement.h:
61622         * ksvg2/svg/SVGMarkerElement.cpp:
61623         (WebCore::SVGMarkerElement::canvasResource):
61624         (WebCore::SVGMarkerElement::notifyAttributeChange):
61625         * ksvg2/svg/SVGMarkerElement.h:
61626         * ksvg2/svg/SVGMaskElement.cpp:
61627         (WebCore::SVGMaskElement::notifyAttributeChange):
61628         * ksvg2/svg/SVGMaskElement.h:
61629         * ksvg2/svg/SVGStopElement.cpp:
61630         (WebCore::SVGStopElement::notifyAttributeChange):
61631         * ksvg2/svg/SVGStyledElement.cpp:
61632         (WebCore::SVGStyledElement::notifyAttributeChange):
61633         (WebCore::SVGStyledElement::notifyResourceParentIfExistant):
61634         (WebCore::SVGStyledElement::rebuildRenderer):
61635         * ksvg2/svg/SVGStyledElement.h:
61636         * ksvg2/svg/SVGUseElement.cpp:
61637         (WebCore::SVGUseElement::notifyAttributeChange):
61638         * platform/graphics/svg/SVGResource.cpp:
61639         (WebCore::SVGResource::invalidate):
61640         (WebCore::SVGResource::addClient):
61641         (WebCore::SVGResource::repaintClients):
61642         * platform/graphics/svg/SVGResource.h:
61643         * platform/graphics/svg/SVGResourceMarker.cpp:
61644         (WebCore::SVGResourceMarker::draw):
61645         (WebCore::SVGResourceMarker::cachedBounds):
61646         * platform/graphics/svg/SVGResourceMarker.h:
61647         * rendering/RenderPath.cpp:
61648         (WebCore::RenderPath::layout):
61649         (WebCore::RenderPath::getAbsoluteRepaintRect):
61650         (WebCore::RenderPath::paint):
61651         (WebCore::drawMarkerWithData):
61652         (WebCore::RenderPath::drawMarkersIfNeeded):
61653         * rendering/RenderPath.h:
61654         * rendering/RenderSVGContainer.cpp:
61655         (WebCore::RenderSVGContainer::paint):
61656         (WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
61657         * rendering/RenderSVGImage.cpp:
61658         (WebCore::RenderSVGImage::paint):
61659         (WebCore::RenderSVGImage::getAbsoluteRepaintRect):
61660         * rendering/SVGInlineFlowBox.cpp:
61661         (WebCore::paintSVGInlineFlow):
61663 2007-01-23  Adele Peterson  <adele@apple.com>
61665         Reviewed by Darin.
61666         
61667         WebCore part of fix for <rdar://problem/4946753>REGRESSION: Inserting tabs is broken in Mail
61669         In addition to this fix, I also reorganized some event handling code for keyPress events to
61670         prepare for another fix.  There's also just a little bit of unrelated cleanup.
61671         
61672         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler):
61673           Move tab focus behavior into new defaultKeyboardEventHandler method.
61674         
61675         * bridge/EditorClient.h: Added handleKeyPress.
61676         * editing/Editor.cpp:
61677         (WebCore::Editor::handleKeyPress): Added. Calls over to the client method.
61678         (WebCore::Editor::deleteRange): Removed unnecessary propogateDOMException.
61679         * editing/Editor.h: Added handleKeyPress.
61680         (WebCore::Editor::addToKillRing): Formatting cleanup.
61681         * editing/mac/EditorMac.mm: Removed unnecessary propogateDOMException.
61682         
61683         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Added. Checks
61684           the tabKeyCyclesThroughElements setting before advancing focus for tab key events.  Calls handleKeyPress.
61685         * page/EventHandler.h: Added defaultKeyboardEventHandler.
61686         
61687         * page/Page.cpp: (WebCore::Page::Page): Initialize m_tabKeyCyclesThroughElements to true.
61688         * page/Page.h: Added m_tabKeyCyclesThroughElements.
61689         (WebCore::Page::setTabKeyCyclesThroughElements): Added.
61690         (WebCore::Page::tabKeyCyclesThroughElements): Added.
61691         
61692         * platform/PlatformKeyboardEvent.h: Added ability to get NSEvent from PlatformKeyboardEvent.
61693         * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
61694           Initialize m_macEvent to the NSEvent.
61695         
61696         * platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): Added.
61698 2007-01-23  George Staikos  <staikos@kde.org>
61700         Compile with a released Qt.
61702         * platform/graphics/qt/ImageQt.cpp:
61704 2007-01-23  Lars Knoll <lars@trolltech.com>
61706         Reviewed by Zack
61708         Widget and ScrollView do not own the Qt widgets
61709         anymore. Make sure they can handle the case of
61710         a null QWidget and never delete them.
61712         * platform/qt/ScrollViewQt.cpp:
61713         (WebCore::ScrollView::setScrollArea):
61714         (WebCore::ScrollView::updateContents):
61715         (WebCore::ScrollView::visibleWidth):
61716         (WebCore::ScrollView::visibleHeight):
61717         (WebCore::ScrollView::visibleContentRect):
61718         (WebCore::ScrollView::setContentsPos):
61719         (WebCore::ScrollView::resizeContents):
61720         (WebCore::ScrollView::contentsX):
61721         (WebCore::ScrollView::contentsY):
61722         (WebCore::ScrollView::contentsWidth):
61723         (WebCore::ScrollView::contentsHeight):
61724         (WebCore::ScrollView::scrollOffset):
61725         (WebCore::ScrollView::scrollBy):
61726         (WebCore::ScrollView::hScrollbarMode):
61727         (WebCore::ScrollView::vScrollbarMode):
61728         (WebCore::ScrollView::setHScrollbarMode):
61729         (WebCore::ScrollView::setVScrollbarMode):
61730         * platform/qt/WidgetQt.cpp:
61731         (WebCore::WidgetPrivate::~WidgetPrivate):
61732         (WebCore::Widget::setQWidget):
61734 2007-01-23  Zack Rusin  <zack@kde.org>
61736         Forgot to add one new file to the build.
61738         * WebCore.pro: Add dom/clipboard.cpp
61740 2007-01-23  Zack Rusin  <zack@kde.org>
61742         Fix the Qt build
61744         * page/DragActions.h:
61745         * page/DragController.cpp:
61746         * platform/qt/DragDataQt.cpp:
61747         (WebCore::DragData::canSmartReplace):
61748         (WebCore::DragData::containsColor):
61749         (WebCore::DragData::containsPlainText):
61750         (WebCore::DragData::asPlainText):
61751         (WebCore::DragData::asColor):
61752         (WebCore::DragData::createClipboard):
61753         (WebCore::DragData::containsCompatibleContent):
61754         (WebCore::DragData::containsURL):
61755         (WebCore::DragData::asURL):
61756         (WebCore::DragData::asFragment):
61757         * platform/qt/FileChooserQt.cpp:
61759 2007-01-23  Lars Knoll <lars@trolltech.com>
61761         Reviewed by Maciej
61763         Make the last remaining pieces of the FrameLoader platform 
61764         independent. Move most of the code over to WebFrameLoaderClient.
61765         Some smaller cleanups in the WebFrameBridge, and moved some
61766         platform independent functionality over to the shared code
61767         in WebCore.
61768         
61769         * WebCore.exp:
61770         * WebCore.pro:
61771         * WebCore.xcodeproj/project.pbxproj:
61772         * loader/FrameLoader.cpp:
61773         (WebCore::FrameLoader::loadSubframe):
61774         (WebCore::FrameLoader::shouldUsePlugin):
61775         (WebCore::FrameLoader::loadPlugin):
61776         (WebCore::FrameLoader::detachFromParent):
61777         (WebCore::FrameLoader::partClearedInBegin):
61778         (WebCore::FrameLoader::createJavaAppletWidget):
61779         (WebCore::FrameLoader::didChangeTitle):
61780         * loader/FrameLoader.h:
61781         * loader/FrameLoaderClient.h:
61782         * loader/FrameLoaderTypes.h:
61783         (WebCore::):
61784         * loader/PluginDocument.cpp:
61785         (WebCore::PluginTokenizer::writeRawData):
61786         * loader/mac/FrameLoaderMac.mm: Removed.
61787         * loader/qt/FrameLoaderQt.cpp: Removed.
61788         * page/Frame.cpp:
61789         (WebCore::Frame::Frame):
61790         * page/FrameView.cpp:
61791         (WebCore::FrameView::mediaType):
61792         * page/qt/FrameQt.cpp:
61793         (WebCore::FrameQt::FrameQt):
61794         * platform/graphics/svg/SVGImageEmptyClients.h:
61795         (WebCore::SVGEmptyFrameLoaderClient::makeRepresentation):
61796         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
61797         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCommitLoad):
61798         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoad):
61799         (WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
61800         (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
61801         (WebCore::SVGEmptyFrameLoaderClient::dispatchUnableToImplementPolicy):
61802         (WebCore::SVGEmptyFrameLoaderClient::revertToProvisionalState):
61803         (WebCore::SVGEmptyFrameLoaderClient::setMainDocumentError):
61804         (WebCore::SVGEmptyFrameLoaderClient::startDownload):
61805         (WebCore::SVGEmptyFrameLoaderClient::committedLoad):
61806         (WebCore::SVGEmptyFrameLoaderClient::shouldFallBack):
61807         (WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
61808         (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
61809         (WebCore::SVGEmptyFrameLoaderClient::createFrame):
61810         (WebCore::SVGEmptyFrameLoaderClient::createPlugin):
61811         (WebCore::SVGEmptyFrameLoaderClient::createJavaAppletWidget):
61812         (WebCore::SVGEmptyFrameLoaderClient::objectContentType):
61813         (WebCore::SVGEmptyFrameLoaderClient::overrideMediaType):
61814         (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin):
61815         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
61817 2007-01-23  Oliver Hunt  <oliver@apple.com>
61819         Reviewed by Adam.
61821         Added DragController to handled drag and drop state and control logic.
61822         Currently this only handles logic for Dragging and Dropping, and is 
61823         unable to initialise a drag itself.
61825         platform/DragData encapsulate the paltform Drag data (NSDraggingInfo on Mac, 
61826         QMimeType in Qt).  This provides methods to pull data out the drag data as a String, 
61827         a URL, a DocumentFragment (for rich content), or a Colour.
61829         * WebCore.exp:
61830         * WebCore.pro:
61831         * WebCore.xcodeproj/project.pbxproj:
61832         * dom/Clipboard.cpp: Added.
61833         (WebCore::Clipboard::setAccessPolicy):
61834         (WebCore::dragOpFromIEOp):
61835         (WebCore::IEOpFromDragOp):
61836         (WebCore::Clipboard::sourceOperation):
61837         (WebCore::Clipboard::destinationOperation):
61838         (WebCore::Clipboard::setSourceOperation):
61839         (WebCore::Clipboard::setDestinationOperation):
61840         (WebCore::Clipboard::setDropEffect):
61841         (WebCore::Clipboard::setEffectAllowed):
61842           move platform independent functions from ClipboardMac to Clipboard
61844         * dom/Clipboard.h:
61845         (WebCore::Clipboard::Clipboard):
61846         (WebCore::Clipboard::dropEffect):
61847         (WebCore::Clipboard::effectAllowed):
61848         (WebCore::Clipboard::policy):
61849           as above -- also removed virtual modifier from now 
61850           platform independent methods
61852         * editing/Editor.cpp:
61853         (WebCore::Editor::smartInsertDeleteEnabled): 
61854         (WebCore::Editor::shouldApplyStyle):
61855         * editing/Editor.h:
61856           adding calls through to EditorClient
61857          
61858         * page/DragActions.h: Added.
61859         (WebCore::):
61860           Replicates a number of NS* enums in the WebCore namespace
61862         * page/DragClient.h: Added.
61863         (WebCore::DragClient::~DragClient):
61864           Standard client interface for dragging UIDelegate
61866         * page/DragController.cpp: Added.
61867         (WebCore::createMouseEvent):
61868         (WebCore::DragController::DragController):
61869         (WebCore::DragController::~DragController):
61870         (WebCore::documentFragmentFromDragData):
61871         (WebCore::DragController::isMoveDrag):
61872         (WebCore::visiblePositionForPoint):
61873         (WebCore::DragController::cancelDrag):
61874         (WebCore::documentAtPoint):
61875         (WebCore::DragController::dragEntered):
61876         (WebCore::DragController::dragExited):
61877         (WebCore::DragController::dragUpdated):
61878         (WebCore::DragController::performDrag):
61879         (WebCore::DragController::dragEnteredOrUpdated):
61880         (WebCore::DragController::tryDocumentDrag):
61881         (WebCore::DragController::operationForLoad):
61882         (WebCore::DragController::concludeDrag):
61883         (WebCore::DragController::canProcessDrag):
61884         (WebCore::DragController::tryDHTMLDrag):
61885           Class to handle state and logic for dragging and dropping
61887         * page/DragController.h: Added.
61888         (WebCore::DragController::client):
61889         (WebCore::DragController::didInitiateDrag):
61890         (WebCore::DragController::isHandlingDrag):
61891         (WebCore::DragController::dragOperation):
61892         (WebCore::DragController::document):
61893         (WebCore::DragController::dragInitiator):
61894         (WebCore::DragController::dragDestinationAction):
61895         (WebCore::DragController::dragSourceAction):
61896         (WebCore::DragController::dragEnded):
61897         (WebCore::DragController::setIsHandlingDrag):
61898         (WebCore::DragController::setDidInitiateDrag):
61899         (WebCore::DragController::setDragOperation):
61900         (WebCore::DragController::setDragSourceAction):
61901         (WebCore::DragController::setDragInitiator):
61902           See above
61904         * page/Page.cpp:
61905         (WebCore::Page::Page):
61906           Update Page to have DragController
61908         * page/Page.h:
61909         (WebCore::Page::dragController):
61910           ditto
61912         * page/mac/DragControllerMac.mm: Added.
61913         (WebCore::DragController::isCopyKeyDown):
61914         (WebCore::DragController::dragOperation):
61915           Platform specific portions of the DragController
61917         * page/mac/EventHandlerMac.mm:
61918         (WebCore::EventHandler::handleDrag):
61919         (WebCore::EventHandler::dragSourceEndedAt):
61920           Convert from NSDragOperation to WebCore::DragOperation
61922         * page/mac/WebCoreFrameBridge.h:
61923         * page/mac/WebCoreFrameBridge.mm:
61924           Remove obsolete Drag functions
61926         * page/qt/DragControllerQt.cpp: Added.
61927         (WebCore::DragController::isCopyKeyDown):
61928         (WebCore::DragController::dragOperation):
61929           Basic stubs to maintain Qt  build
61931         * platform/DragData.cpp: Added.
61932         (WebCore::DragData::DragData):
61933         * platform/DragData.h: Added.
61934         (WebCore::DragData::clientPosition):
61935         (WebCore::DragData::globalPosition):
61936         (WebCore::DragData::platformData):
61937         (WebCore::DragData::draggingSourceOperationMask):
61938           DragData class to encapsulate platform drag data/event
61940         * platform/graphics/svg/SVGImage.cpp:
61941         (WebCore::SVGImage::setData):
61942           Addition of dummy DragClient
61944         * platform/graphics/svg/SVGImageEmptyClients.h:
61945         (WebCore::SVGEmptyDragClient::~SVGEmptyDragClient):
61946         (WebCore::SVGEmptyDragClient::willPerformDragDestinationAction):
61947         (WebCore::SVGEmptyDragClient::actionMaskForDrag):
61948         (WebCore::SVGEmptyDragClient::dragControllerDestroyed):
61949           ditto
61951         * platform/mac/ClipboardMac.h:
61952         * platform/mac/ClipboardMac.mm:
61953         (WebCore::ClipboardMac::ClipboardMac):
61954         (WebCore::ClipboardMac::clearData):
61955         (WebCore::ClipboardMac::clearAllData):
61956         (WebCore::ClipboardMac::getData):
61957         (WebCore::ClipboardMac::setData):
61958         (WebCore::ClipboardMac::types):
61959         (WebCore::ClipboardMac::setDragImage):
61960          Moving platform independent logic to Clipboard, and updating
61961          platform specific methods to use appropriate accessors rather than 
61962          directly manipulating data they no longer own
61964         * platform/mac/DragDataMac.mm: Added.
61965         (WebCore::DragData::DragData):
61966         (WebCore::DragData::canSmartReplace):
61967         (WebCore::DragData::containsColor):
61968         (WebCore::DragData::containsPlainText):
61969         (WebCore::DragData::asPlainText):
61970         (WebCore::DragData::asColor):
61971         (WebCore::DragData::createClipboard):
61972         (WebCore::imageExistsAtPaths):
61973         (WebCore::DragData::containsCompatibleContent):
61974         (WebCore::DragData::containsURL):
61975         (WebCore::DragData::asURL):
61976         (WebCore::DragData::asFragment):
61977           Mac implementations of DragData methods.  A number of these use
61978           a Helper class that accesses WebKit functionality.  That functionality 
61979           should be migrated to WebCore in the future.
61981         * platform/mac/PasteboardHelper.h: Added.
61982         (WebCore::PasteboardHelper::~PasteboardHelper):
61983           Temporary, and Mac only, helper class to access WebKit functionality 
61984           from WebCore
61986         * platform/qt/DragDataQt.cpp: Added.
61987         (WebCore::DragData::canSmartReplace):
61988         (WebCore::DragData::containsColor):
61989         (WebCore::DragData::containsPlainText):
61990         (WebCore::DragData::asPlainText):
61991         (WebCore::DragData::asColor):
61992         (WebCore::DragData::createClipboard):
61993         (WebCore::DragData::containsCompatibleContent):
61994         (WebCore::DragData::containsURL):
61995         (WebCore::DragData::asURL):
61996         (WebCore::DragData::asFragment):
61997          Basic stubs to maintain Qt build
61999         * rendering/HitTestResult.cpp:
62000         (WebCore::HitTestResult::HitTestResult):
62001          Correct HitTestResult copy contructor to copy localPoint
62003 2007-01-22  Mark Rowe  <mrowe@apple.com>
62005         Reviewed by Maciej.
62007         http://bugs.webkit.org/show_bug.cgi?id=11692
62008         Bug 11692: REGRESSION(r17352): Disappearing page title
62010         * dom/Document.cpp:
62011         (WebCore::Document::setTitle): If the title has already been set explicitly via JavaScript,
62012         ignore any changes to it due to encountering <title> tags.
62014 2007-01-22  Mitz Pettel  <mitz@webkit.org>
62016         Reviewed by Darin.
62018         - fix http://bugs.webkit.org/show_bug.cgi?id=12344
62019           NativeListBox: item hit testing does not account for top padding and border
62021         Test: fast/forms/listbox-selection-2.html
62023         * rendering/RenderListBox.cpp:
62024         (WebCore::RenderListBox::numVisibleItems): Changed height() to contentHeight()
62025         since items are visible only in the content box.
62026         (WebCore::RenderListBox::listIndexAtOffset): Adjusted for vertical padding and
62027         borders. Changed to return -1 instead of the last item's index if the given offset
62028         is below the last item.
62029         (WebCore::RenderListBox::autoscroll): Adjusted for vertical padding and borders.
62030         (WebCore::RenderListBox::controlClipRect): Changed to return the content box since
62031         items should not spill into the padding box. This change is the reason the test
62032         generates pixel results.
62034 2007-01-22  Justin Garcia  <justin.garcia@apple.com>
62036         Reviewed by darin
62037         
62038         <rdar://problem/4944770>
62039         editing/pasteboard/4641033 layout test is broken (12328)
62040         
62041         This layout test failure demonstrates three bugs:
62042         Smart replace shouldn't be turned on, but is because a word
62043         selection granularity from the previous test isn't cleared.
62044         Smart replace shouldn't add any spaces because the paste is performed
62045         in an empty paragraph.
62046         Smart replace spaces are added to the text of options inside
62047         the select element instead of before/after the select element.
62048         
62049         This patch fixes the second two problems.  During a 
62050         ReplaceSelectionCommand, the VisiblePosition for the end of 
62051         the inserted content is the last position in the last leaf 
62052         inserted.  This is a problem when the last leaf is inside a 
62053         select element, since VP creation is inconsistent there.  
62054         Second, smart spaces were inserted inside the last leaf, not
62055         at the endOfInsertedContent.
62057         * editing/ReplaceSelectionCommand.cpp:
62058         (WebCore::ReplaceSelectionCommand::shouldMergeStart): Renamed 
62059         m_lastNodeInserted to m_lastLeafInserted.  Use the 
62060         start/endOfInsertedContent getters.
62061         (WebCore::ReplaceSelectionCommand::shouldMergeEnd): Ditto.
62062         (WebCore::ReplaceSelectionCommand::removeNodePreservingChildren): Ditto.
62063         (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Ditto.
62064         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Added.
62065         Special case for when the last leaf inserted is inside a select 
62066         element: return the VisiblePosition after the select element.
62067         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Added.
62068         (WebCore::ReplaceSelectionCommand::doApply): Did renaming.  Used
62069         the start/endOfInsertedContent getters.  Insert smart replace spaces
62070         into the right nodes.
62071         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Renaming.
62072         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
62073         (WebCore::ReplaceSelectionCommand::updateNodesInserted): Ditto.
62074         * editing/ReplaceSelectionCommand.h:
62076 2007-01-22  Darin Adler  <darin@apple.com>
62078         Reviewed by Adam.
62080         - fix http://bugs.webkit.org/show_bug.cgi?id=12273
62081           REGRESSION: File input value invisible after removing and re-appending
62083         - made more of the file chooser code cross-platform
62085         - fixed an Objective-C garbage collection problem in FileChooser
62087         - tried to remove layering violations where FileChooser in the platform
62088           directory knows about the rendering and DOM trees (but wasn't able to
62089           do it entirely)
62091         * platform/FileChooser.cpp: Added.
62092         (WebCore::FileChooser::create): Changed parameters.
62093         (WebCore::FileChooser::chooseFile): Changed to call chooseIcon function.
62094         (WebCore::FileChooser::chooseIcon): Added.
62096         * platform/FileChooser.h: Added FileChooserClient so this file doesn't have
62097         to know about RenderFileUploadControl. Used RetainPtr instead of retain/release
62098         so this works properly with Objective-C GC. Replaced disconnectUploadControl
62099         with disconnectClient, which has a simple inline implementation. Moved the
62100         Document parameter from the constructor to openFileChooser, along with a comment
62101         about why it should not be there. Added a filename parameter to the constructor
62102         for the initial filename. Added a font parameter to basenameForWidth so we don't
62103         depend on having a pointer to the renderer. Removed the uploadControl() and
62104         document() functions since no one calls either of them.
62106         * platform/mac/FileChooserMac.mm: Removed code that is now cross-platform.
62107         (-[OpenPanelController beginSheetWithFrame:]): Added frame parameter, instead
62108         of storing a document pointer in the FileChooser.
62109         (WebCore::FileChooser::FileChooser): Updated for changed parameters. Also added
62110         code to choose the icon based on the initial filename. Pass the adopt parameter
62111         to the constructor of the RetainPtr.
62112         (WebCore::FileChooser::~FileChooser): Removed the release call, since the
62113         RetainPtr will take care of it. Added a call to disconnectFileChooser here.
62114         There's no need to disconnect at disconnectClient time, and that lets us have
62115         one more cross-platform function.
62116         (WebCore::FileChooser::openFileChooser): Added document parameter. Added code
62117         to get the frame from the document. And added a nil check since there's no
62118         ironclad guarantee the document won't have outlived its frame.
62119         (WebCore::FileChooser::basenameForWidth): Added font parameter. Use that instead
62120         of going at the upload control's style. The caller can handle that now.
62122         * rendering/RenderFileUploadControl.h: Removed unnecessary includes.
62123         Made class inherit privately from FileChooserClient. Changed constructor
62124         parameter to HTMLInputElement rather than Node. Made protected members be
62125         private instead, and made a couple function members const.
62126         * rendering/RenderFileUploadControl.cpp: Moved constants to the top of the file,
62127         but after the "using namespace"
62128         (WebCore::RenderFileUploadControl::RenderFileUploadControl): Updated for changes
62129         to the FileChooser::create function and the parameter types.
62130         (WebCore::RenderFileUploadControl::~RenderFileUploadControl): Removed unneeded
62131         null check -- there's no case where the FileChooser fails to be created.
62132         (WebCore::RenderFileUploadControl::click): Pass document to openFileChooser.
62133         (WebCore::RenderFileUploadControl::updateFromElement): Tweaked code a bit by
62134         using updateFromElement and setValue instead of casting the renderer to a
62135         RenderButton and calling setText directly. Put setInputType call here.
62136         (WebCore::RenderFileUploadControl::maxFilenameWidth): Made const. Broke long line.
62137         (WebCore::RenderFileUploadControl::createButtonStyle): Made const.
62138         (WebCore::RenderFileUploadControl::paintObject): Moved buttonShadowHeight constant
62139         to the top of the file. Call isEmpty instead of checking width and height of
62140         IntRect for 0. Computed font to pass to FileChooser::basenameForWidth. Broke
62141         long lines.
62142         (WebCore::HTMLFileUploadInnerButtonElement::HTMLFileUploadInnerButtonElement):
62143         Moved the setInputType call to the caller; concept here is that this class is
62144         as simple as possible, rather than doing as much of the button job as possible.
62146         * WebCore.xcodeproj/project.pbxproj: Added FileChooser.cpp.
62147         * WebCore.pro: Ditto.
62148         * CMakeLists.txt: Ditto.
62149         * WebCoreSources.bkl: Ditto.
62151         * platform/gdk/TemporaryLinkStubs.cpp: Updated stubs.
62152         * platform/qt/FileChooserQt.cpp: Updated stubs.
62154 2007-01-22  Mitz Pettel  <mitz@webkit.org>
62156         Reviewed by Darin.
62158         - fix http://bugs.webkit.org/show_bug.cgi?id=12364
62159           REGRESSSION (NativeListBox): Selected option's background is not clipped to the list box
62161         Test: fast/forms/select-item-background-clip.html
62163         * rendering/RenderListBox.cpp:
62164         (WebCore::RenderListBox::paintItemBackground): Intersect the item's rect with
62165         the list box's clip rect.
62167 2007-01-22  Darin Adler  <darin@apple.com>
62169         Reviewed by Beth.
62171         - fix http://bugs.webkit.org/show_bug.cgi?id=12369
62172           REGRESSION (r19027): amazon.com home page crashes WebKit r19028 debug build
62174         I caused this a few hours ago. Oops!
62176         * rendering/RenderText.cpp: (WebCore::RenderText::setStyle):
62177         Compute whether the font changed before calling RenderObject::setStyle.
62179 2007-01-22  Beth Dakin  <bdakin@apple.com>
62181         Reviewed by Maciej.
62183         Fix for <rdar://problem/4912129> REGRESSION: Crash occurs at 
62184         WebCore::Frame::eventHandler() after clicking to dismiss a 
62185         contextual menu on the page
62187         * page/EventHandler.cpp:
62188         (WebCore::EventHandler::stopAutoscrollTimer): Added nil-check.
62190 2007-01-22  Darin Adler  <darin@apple.com>
62192         Reviewed by Mitz.
62194         Inspired by a much simpler patch by Andrew Wellington <proton@wiretapped.net>.
62196         - fix http://bugs.webkit.org/show_bug.cgi?id=11197
62197           REGRESSION: Specifying a counter for a CODE tag's content style property
62198           on before or after causes a crash.
62200         Test: fast/css/beforeSelectorOnCodeElement.html
62202         - fix regression I recently introduced where the monospace cache could be
62203           used for text that was not ASCII, if text was changed after the style was set
62205         Test: fast/text/monospace-width-cache.html
62207         - streamline RenderText.h -- remove unneeded functions, make some needlessly
62208           virtual functions non-virtual, remove unneeded header includes, replace use
62209           of Font* with Font& for consistency with RenderStyle, use "text" consistently
62210           instead of "string"
62212         * rendering/RenderText.h: Removed unneeded include of "Text.h", declarations of
62213         SOFT_HYPHEN, DocumentMarker, InlineBox, Position, String. Got rid of friend
62214         declaration for InlineTextBox. Changed constructor to take a PassRefPtr since
62215         we do take owership of the passed-in text. Made deleteTextBoxes() private.
62216         Removed unneeded data(). Made override of length() private so people will use
62217         the faster textLength() instead. Renamed string() to text() so it matches up
62218         better with setText(). Same for stringLength(), originalString(), and
62219         setInternalString(), which are now textLength(), originalText(), and
62220         setTextInternal(). Renamed the old text() function to characters(), since it
62221         returns a pointer as StringImpl::characters does. Changed Font* to Font& everywhere.
62222         Renamed the internal calcMinMaxWidth() function to calcMinMaxWidthInternal() and
62223         made it non-virtual since it's not overriden anywhere. Also made the
62224         trimmedMinMaxWidth() function non-virtual. Made containsOnlyWhitespace() private.
62225         Removed both font() functions (one was needlessly virtual) and element().
62226         Renamed cacheWidths() to updateMonospaceCharacterWidth() and removed the
62227         shouldUseMonospaceCache() function. Renamed allAscii() to isAllASCII() and made
62228         it an inline function. Removed the m_allAsciiChecked flag and renamed the
62229         m_allAscii flag to m_isAllASCII.
62230         * rendering/RenderText.cpp:
62231         (WebCore::RenderText::RenderText): Removed initialization of m_allAsciiChecked.
62232         Initialize m_isAllASCII. Changed all occurrences of m_str->length() and
62233         m_str->characters () to use the stringLength() and characters() inline functions
62234         instead.
62235         (WebCore::RenderText::setStyle): Replaced the unconditional call to cacheWidths
62236         with a conditional call to updateMonospaceCharacterWidth. This speeds up the common
62237         case where style is changed without changing the font.
62238         (WebCore::RenderText::originalText): Changed code to not depend on overridden
62239         element() function with casts to a Text node -- this was one of only two call sites.
62240         Also renamed.
62241         (WebCore::RenderText::positionForCoordinates): Name change.
62242         (WebCore::RenderText::caretRect): Ditto.
62243         (WebCore::RenderText::updateMonospaceCharacterWidth): Renamed from cacheWidths and
62244         incorporate the check that was formerly in a separate shouldUseMonospaceCache
62245         function.
62246         (WebCore::RenderText::widthFromCache): Changed to take a Font& instead of Font*.
62247         Changed to take advantage of the fact that the string is known to be all ASCII in
62248         the m_monospaceCharacterWidth code path.
62249         (WebCore::RenderText::trimmedMinMaxWidth): Ditto. Also use style()->font() instead
62250         of font(false).
62251         (WebCore::RenderText::calcMinMaxWidth): Ditto. Also changed to use softHyphen instead
62252         of SOFT_HYPHEN.
62253         (WebCore::RenderText::containsOnlyWhitespace): More of the same.
62254         (WebCore::RenderText::setSelectionState): Ditto.
62255         (WebCore::RenderText::setTextWithOffset): Ditto.
62256         (WebCore::isInlineFlowOrEmptyText): Ditto.
62257         (WebCore::RenderText::setTextInternal): Updated for name changes. Also changed to
62258         set the m_isAllASCII flag every time, in the more-efficient way we use elsewhere
62259         (or'ing all the characters together), and to call updateMonospaceCharacterWidth
62260         if the "all ASCII"-ness of the text changes.
62261         (WebCore::RenderText::setText): Updated for name changes.
62262         (WebCore::RenderText::width): More like above.
62263         (WebCore::RenderText::selectionRect): Ditto.
62264         (WebCore::RenderText::caretMaxOffset): Ditto.
62265         (WebCore::RenderText::previousOffset): Ditto.
62266         (WebCore::RenderText::nextOffset): Ditto.
62268         * dom/Position.cpp:
62269         * dom/Range.cpp:
62270         * editing/CompositeEditCommand.cpp:
62271         * editing/DeleteSelectionCommand.cpp:
62272         * editing/VisiblePosition.cpp:
62273         * html/HTMLElement.cpp:
62274         Added now-needed include of "Text.h" which is no longer included by "RenderText.h".
62276         * editing/SelectionController.cpp:
62277         (WebCore::SelectionController::debugRenderer):
62278         * editing/TextIterator.cpp:
62279         (WebCore::TextIterator::handleTextNode):
62280         (WebCore::TextIterator::handleTextBox):
62281         (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
62282         Update for name changes of stringLength(), string(), and originalString() to
62283         textLength(), text(), and originalText(), and to always use textLength() instead
62284         of length() when we have a RenderText* rather than a RenderObject*.
62285         * editing/visible_units.cpp:
62286         (WebCore::startOfParagraph): Ditto.
62287         (WebCore::endOfParagraph): Ditto.
62288         * rendering/InlineFlowBox.cpp:
62289         (WebCore::InlineFlowBox::placeBoxesHorizontally): Ditto. Also removed use of the
62290         RenderObject::font() function and replaced it with explicit access to the style.
62291         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
62292         * rendering/InlineTextBox.cpp:
62293         (WebCore::InlineTextBox::selectionRect): Ditto.
62294         (WebCore::InlineTextBox::isLineBreak): Ditto.
62295         (WebCore::InlineTextBox::paint): Ditto.
62296         (WebCore::InlineTextBox::selectionStartEnd): Ditto.
62297         (WebCore::InlineTextBox::paintSelection): Ditto.
62298         (WebCore::InlineTextBox::paintMarkedTextBackground): Ditto.
62299         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
62300         (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
62301         (WebCore::InlineTextBox::offsetForPosition): Ditto.
62302         (WebCore::InlineTextBox::positionForOffset): Ditto.
62303         * rendering/RenderContainer.cpp:
62304         (WebCore::RenderContainer::addChild): Ditto.
62305         * rendering/RenderCounter.cpp:
62306         (WebCore::RenderCounter::originalText): Ditto.
62307         (WebCore::RenderCounter::calcMinMaxWidth): Ditto.
62308         * rendering/RenderCounter.h: Ditto.
62309         * rendering/RenderTextFragment.cpp:
62310         (WebCore::RenderTextFragment::originalText): Ditto.
62311         * rendering/RenderTextFragment.h: Ditto.
62312         * rendering/SVGInlineFlowBox.cpp:
62313         (WebCore::placePositionedBoxesHorizontally): Ditto.
62314         (WebCore::placeBoxesVerticallyWithAbsBaseline): Ditto.
62315         * rendering/bidi.cpp:
62316         (WebCore::BidiIterator::increment): Ditto.
62317         (WebCore::BidiIterator::current): Ditto.
62318         (WebCore::BidiIterator::direction): Ditto.
62319         (WebCore::addRun): Ditto.
62320         (WebCore::checkMidpoints): Ditto.
62321         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
62322         (WebCore::RenderBlock::skipWhitespace): Ditto.
62323         (WebCore::RenderBlock::findNextLineBreak): Ditto.
62325         * rendering/RenderBR.h: Updated signature of width function which now takes a
62326         Font& instead of a Font*.
62328         * rendering/RenderBlock.cpp: (WebCore::stripTrailingSpace): Updated to no longer
62329         use the RenderObject::font() function, and added a comment about first-line, which
62330         is not handled properly here.
62332         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::text):
62333         * rendering/RenderTreeAsText.cpp: (WebCore::writeTextRun):
62334         Eliminated use of RenderText::data().
62336         * rendering/RenderObject.h: Removed RenderObject::font(). This had the bad effect of
62337         having everyone pass in a boolean rather than using the cleaner style() and
62338         firstLineStyle() functions in cases where there's no a firstLineStyle boolean.
62339         * rendering/RenderObject.cpp:
62340         (WebCore::RenderObject::getVerticalPosition): Replaced use of RenderObject::font()
62341         with direct use of the style instead, which is arguably easier to understand anyway.
62342         (WebCore::RenderObject::baselinePosition): Ditto.
62344 2007-01-22  Sam Weinig  <sam@webkit.org>
62346         Reviewed by The Mitz.
62348         Move JSHTMLSelectElementCustom.cpp from bindings to bindings/js
62349         where it belongs.
62351         * WebCore.pro:
62352         * WebCore.xcodeproj/project.pbxproj:
62353         * bindings/JSHTMLSelectElementCustom.cpp: Removed.
62354         * bindings/js/JSHTMLSelectElementCustom.cpp: Added.
62356 2007-01-22  Zack Rusin  <zack@kde.org>
62358         Fix the Qt build.
62360         * WebCore.pro: adjust after last changes
62362 2007-01-21  Alexey Proskuryakov  <ap@webkit.org>
62364         Reviewed by Darin.
62366         http://bugs.webkit.org/show_bug.cgi?id=10934
62367         REGRESSION: prototype.js logs error (HTMLFormElement) on webkit builds
62369         Added constructors for most HTML elements; started auto-generating HTMLSelectElement JS binding.
62371         Test: fast/dom/Window/element-constructors-on-window.html
62373         * DerivedSources.make: Generate JSHTMLSelectElement.
62374         * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElement{Custom}.
62375         * bindings/js/JSHTMLElementWrapperFactory.cpp: Create a proper binding for SELECT.
62377         * bindings/js/kjs_html.cpp:
62378         (KJS::):
62379         (KJS::JSHTMLElement::classInfo):
62380         (KJS::JSHTMLElement::accessors):
62381         (KJS::JSHTMLElement::getOwnPropertySlot):
62382         (KJS::HTMLElementFunction::callAsFunction):
62383         (KJS::JSHTMLElement::put):
62384         * bindings/js/kjs_html.h:
62385         (KJS::JSHTMLElement::):
62386         Removed everything related to SELECT. Renamed getHTMLOptionsCollection to toJS for autogenerated code 
62387         to be happy, and rewrote it using cacheDOMObject.
62389         * bindings/scripts/CodeGeneratorJS.pm: Added HTMLElement to the list of types that cannot fail conversion.
62391         * html/HTMLAnchorElement.idl:
62392         * html/HTMLAppletElement.idl:
62393         * html/HTMLAreaElement.idl:
62394         * html/HTMLBRElement.idl:
62395         * html/HTMLBaseElement.idl:
62396         * html/HTMLBaseFontElement.idl:
62397         * html/HTMLBodyElement.idl:
62398         * html/HTMLButtonElement.idl:
62399         * html/HTMLCanvasElement.idl:
62400         * html/HTMLDListElement.idl:
62401         * html/HTMLDirectoryElement.idl:
62402         * html/HTMLDivElement.idl:
62403         * html/HTMLFieldSetElement.idl:
62404         * html/HTMLFontElement.idl:
62405         * html/HTMLFormElement.idl:
62406         * html/HTMLHRElement.idl:
62407         * html/HTMLHeadElement.idl:
62408         * html/HTMLHeadingElement.idl:
62409         * html/HTMLHtmlElement.idl:
62410         * html/HTMLImageElement.idl:
62411         * html/HTMLInputElement.idl:
62412         * html/HTMLIsIndexElement.idl:
62413         * html/HTMLLIElement.idl:
62414         * html/HTMLLabelElement.idl:
62415         * html/HTMLLegendElement.idl:
62416         * html/HTMLLinkElement.idl:
62417         * html/HTMLMapElement.idl:
62418         * html/HTMLMenuElement.idl:
62419         * html/HTMLMetaElement.idl:
62420         * html/HTMLModElement.idl:
62421         * html/HTMLOListElement.idl:
62422         * html/HTMLOptGroupElement.idl:
62423         * html/HTMLParagraphElement.idl:
62424         * html/HTMLParamElement.idl:
62425         * html/HTMLPreElement.idl:
62426         * html/HTMLQuoteElement.idl:
62427         * html/HTMLScriptElement.idl:
62428         * html/HTMLStyleElement.idl:
62429         * html/HTMLTextAreaElement.idl:
62430         * html/HTMLTitleElement.idl:
62431         * html/HTMLUListElement.idl:
62432         Generate constructors.
62434         * html/HTMLSelectElement.cpp:
62435         (WebCore::HTMLSelectElement::length):
62436         * html/HTMLSelectElement.h:
62437         Make length() return unsigned for auto-generated code to be happy.
62439         * html/HTMLSelectElement.idl: Adjusted to be usable for JS.
62441         * bindings/JSHTMLSelectElementCustom.cpp: Added. Implements remove().
62443         * page/DOMWindow.idl:
62444         Added properties for most elements' constructors.
62446 2007-01-21  Mark Rowe  <mrowe@apple.com>
62448         Reviewed by Maciej.
62450         http://bugs.webkit.org/show_bug.cgi?id=12357
62451         Bug 12357: Reproducible crash in WebCore::Settings::isJavaScriptEnabled in svg/custom/js-update-bounce.svg under guard-malloc
62453         * page/Frame.cpp:
62454         (WebCore::Frame::~Frame): Access the global object directly rather than via Window::retrieveWindow to prevent our reference to
62455         a deleted settings object being used.
62457 2007-01-21  Darin Adler  <darin@apple.com>
62459         Reviewed by Maciej.
62461         - fix <rdar://problem/4930503> REGRESSION: Page changes title when
62462           command-clicking on named anchor link (12299)
62464         * loader/FrameLoader.cpp:
62465         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
62466         Return if shouldContinue is false. This matches the other similar
62467         functions and prevents us from doing extra work in the "ignore" case.
62469 2007-01-21  Mark Rowe  <mrowe@apple.com>
62471         Reviewed by Darin.
62473         http://bugs.webkit.org/show_bug.cgi?id=12355
62474         Bug 12355: Reproducible crash in WebCore::parseNumber in svg/custom/js-update-bounce.svg under guard-malloc
62476         * ksvg2/svg/SVGParserUtilities.cpp:
62477         (WebCore::parseNumber): Parenthesize to prevent reading past end of buffer.
62479 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62481         Reviewed by Darin.
62483         - fix http://bugs.webkit.org/show_bug.cgi?id=12345
62484           REGRESSION: Disabled pop-up text is not grayed out
62486         Test: fast/forms/select-disabled-appearance.html
62488         * rendering/RenderThemeMac.mm:
62489         (WebCore::RenderThemeMac::adjustMenuListStyle):
62491 2007-01-21  Darin Adler  <darin@apple.com>
62493         - fix non-Mac builds
62495         * CMakeLists.txt: Added JSDocumentCustom.cpp.
62496         * WebCore.pro: Ditto.
62497         * WebCoreSources.bkl: Ditto.
62499 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62501         Reviewed by Darin.
62503         - fix http://bugs.webkit.org/show_bug.cgi?id=12353 <rdar://problem/4944599>
62504           REGRESSION: Crash on load (mutation event dispatch under the image element constructor deletes the element)
62505     
62506         Test: fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html
62508         * bindings/js/kjs_html.cpp:
62509         (KJS::ImageConstructorImp::construct): Protect the image element before setting
62510         its attributes.
62512 2007-01-21  Sam Weinig  <sam@webkit.org>
62514         Rolling out patch for http://bugs.webkit.org/show_bug.cgi?id=8360.
62516         * rendering/RenderLayer.cpp:
62517         (WebCore::RenderLayer::RenderLayer):
62518         (WebCore::RenderLayer::scrollToOffset):
62519         (WebCore::RenderLayer::scrollRectToVisible):
62520         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
62521         (WebCore::Marquee::start):
62522         * rendering/RenderLayer.h:
62524 2007-01-21  David Kilzer  <ddkilzer@webkit.org>
62526         Reviewed by Darin.
62528         - fix http://bugs.webkit.org/show_bug.cgi?id=12280
62529           select element not available by name through document.all
62530           (dropdown list not available on smarthome.com checkout)
62532         Test: fast/dom/document-all-select.html
62534         * html/HTMLCollection.cpp:
62535         (WebCore::HTMLCollection::checkForNameMatch):
62536         (WebCore::HTMLCollection::updateNameCache):
62538 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62540         Reviewed by Darin.
62542         - http://bugs.webkit.org/show_bug.cgi?id=10805
62543           REGRESSION (r15720): manual-tests/onblur-remove.html failing
62545         * manual-tests/onblur-remove.html: Changed the test to not require pressing
62546         Enter, since the correct behavior for Enter is to send a blur event.
62548 2007-01-21  Sanjay Madhav  <sanjay12@gmail.com>
62550         Reviewed by Darin.
62552         Fix for: <rdar://problem/4928583> Memory usage grows when reloading google.com/ig
62554         JSDocuments are now responsible for marking the DOM wrappers associated with them, when they get marked.
62555         This fixes a JS object leak when a DOM wrapper has a reference to a JSDocument that is otherwise not reachable.
62557         Test: fast/dom/gc-10.html
62559         * WebCore.vcproj/WebCore/WebCore.vcproj:
62560         * WebCore.xcodeproj/project.pbxproj:
62561         * bindings/js/JSDocumentCustom.cpp: Added.
62562         (WebCore::JSDocument::mark):
62563         * bindings/js/kjs_binding.cpp:
62564         (KJS::ScriptInterpreter::markDOMNodesForDocument):
62565         (KJS::ScriptInterpreter::mark):
62566         * bindings/js/kjs_binding.h:
62567         * dom/Document.idl:
62569 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62571         Reviewed by Darin.
62573         - fix http://bugs.webkit.org/show_bug.cgi?id=10692
62574           REGRESSION (r14847): Unnecessary scrollbars with position:relative; and overflow:auto;
62576         Test: fast/overflow/position-relative.html
62578         * rendering/RenderBox.cpp:
62579         (WebCore::RenderBox::lowestPosition): Add the relative position offset only
62580         if 'includeSelf' is true.
62581         (WebCore::RenderBox::rightmostPosition): Ditto.
62582         (WebCore::RenderBox::leftmostPosition): Ditto.
62583         * rendering/RenderFlow.cpp:
62584         (WebCore::RenderFlow::lowestPosition): Ditto.
62585         (WebCore::RenderFlow::rightmostPosition): Ditto.
62586         (WebCore::RenderFlow::leftmostPosition): Ditto.
62588 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62590         Reviewed by Darin.
62592         - fix http://bugs.webkit.org/show_bug.cgi?id=10472
62593           REGRESSION: "add" method of <select> object does not put the <option> object in the correct position
62595         Test: fast/dom/HTMLSelectElement/options-collection-detached.html
62597         * html/HTMLSelectElement.cpp:
62598         (WebCore::HTMLSelectElement::setRecalcListItems): Reset the options collection
62599         info if the <select> is not in the document. For in-document <select>s this
62600         happens anyway as a result of the DOM tree version increasing.
62602 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62604         Reviewed by Darin.
62606         - fix http://bugs.webkit.org/show_bug.cgi?id=12349
62607           NativeFileUpload: Button text is not grayed out when the control is disabled
62609         Covered by fast/forms/file-input-disabled.html 
62611         * css/html4.css: Changed selectors that had pseudo-classes after the -webkit-file-upload-button
62612         pseudo-element to have the pseudo-element at the end. Pseudo-elements must be at the end.
62613         * rendering/RenderFileUploadControl.cpp:
62614         (WebCore::RenderFileUploadControl::createButtonStyle): Changed to not overwrite the button's
62615         style with its parent's style. getPseudoStyle() handles inheritance properly.
62617 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62619         Reviewed by Darin.
62621         - fix http://bugs.webkit.org/show_bug.cgi?id=12343
62622           crash in css2.1/t1202-counter-09-b.html
62624         * platform/Font.cpp:
62625         (WebCore::Font::glyphDataForCharacter):
62627 2007-01-21  Darin Adler  <darin@apple.com>
62629         Reviewed by Adam and Mitz.
62631         - fix http://bugs.webkit.org/show_bug.cgi?id=12347
62632           REGRESSION: list box scrolling broken (fast/forms/listbox-selection.html)
62634         Covered by existing test: fast/forms/listbox-selection.html
62636         * rendering/RenderListBox.h: Added override of layout(), made selectionChanged()
62637         no longer an inline. Added private scrollToRevealSelection(),
62638         m_scrollToRevealSelectionAfterLayout, and m_inAutoscroll.
62639         * rendering/RenderListBox.cpp:
62640         (WebCore::RenderListBox::RenderListBox): Initialize new data members.
62641         (WebCore::RenderListBox::updateFromElement): Remove scrolling code.
62642         (WebCore::RenderListBox::selectionChanged): Moved from header. Calls repaint
62643         and then scrollToRevealSelection, but if we need layout, instead schedules
62644         scrollToRevealSelection to be done after layout.
62645         (WebCore::RenderListBox::layout): Added. After calling base class, calls
62646         scrollToRevealSelection if the m_scrollToRevealSelectionAfterLayout is set.
62647         (WebCore::RenderListBox::scrollToRevealSelection): Added. Code was originally
62648         in updateFromElement.
62649         (WebCore::RenderListBox::autoscroll): Set m_inAutoscroll so that the
62650         selectionChanged function knows not to scroll. Also removed the repaint()
62651         here because updateListBoxSelection() takes care of repainting by calling
62652         selectionChanged().
62654 2007-01-21  David Kilzer  <ddkilzer@webkit.org>
62656         * page/EventHandler.cpp:
62657         (WebCore::EventHandler::handleMouseMoveEvent): Changed #if SVG_SUPPORT to #ifdef SVG_SUPPORT.
62659 2007-01-20  Mitz Pettel  <mitz@webkit.org>
62661         Reviewed by Maciej.
62663         - fix http://bugs.webkit.org/show_bug.cgi?id=11115
62664           REGRESSION: Crash on Flickr after hitting cancel from adding a note
62666         Test: fast/forms/text-set-value-crash.html
62668         * html/HTMLInputElement.cpp:
62669         (WebCore::HTMLInputElement::setValue): Added a call to Document::updateRendering().
62670         * html/HTMLTextAreaElement.cpp:
62671         (WebCore::HTMLTextAreaElement::setValue): Ditto.
62673 2007-01-20  Mitz Pettel  <mitz@webkit.org>
62675         Reviewed by Darin.
62677         - fix http://bugs.webkit.org/show_bug.cgi?id=8360
62678           Repro crash when onscroll handler deletes the scrolled object
62680         Test: fast/layers/removed-by-scroll-handler.html
62682         * rendering/RenderLayer.cpp:
62683         (WebCore::RenderLayer::RenderLayer):
62684         (WebCore::RenderLayer::dispatchScrollEvent): Added. Called when the timer
62685         fires and dispatches the scroll event to the layer's element.
62686         (WebCore::RenderLayer::scrollToOffset): Instead of dispatching the scroll
62687         event from this function, which is called during layout, schedule a 0-duration
62688         timer to dispatch the event after layout.
62689         (WebCore::RenderLayer::scrollRectToVisible):
62690         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
62691         (WebCore::Marquee::start):
62692         * rendering/RenderLayer.h:
62694 2007-01-20  Nikolas Zimmermann  <zimmermann@kde.org>
62696         Reviewed by Sam.
62698         Fix JS bindings for SVGAnimated{Boolean, Enumeration, Integer, Number, String}.
62700         Dynamic SVG DOM updates (ie. "someUse.href.baseVal = '#rect'") with these types
62701         didn't work. Existing gradient updating examples relied on calling setAttribute
62702         after a SVG DOM update - that was the only reason it worked, added a new test
62703         only using SVG DOM updates (js-update-stop.svg).
62705         Added test: js-update-stop.svg
62706         Added test: use-property-changes-through-dom.svg (change xlink:href, x/y attributes using setAttribute)
62707         Added test: use-property-changes-through-svg-dom.svg (change xlink:href, x/y attributes using SVG DOM)
62709         * bindings/js/JSSVGPODTypeWrapper.h:
62710         (WebCore::JSSVGPODTypeWrapper::commitChange):
62711         (WebCore::JSSVGPODTypeWrapperCreator::commitChange):
62712         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
62713         * bindings/js/JSSVGPathSegListCustom.cpp:
62714         (WebCore::updatePathSegContextMap):
62715         (WebCore::removeFromPathSegContextMap):
62716         * bindings/scripts/CodeGeneratorJS.pm:
62717         * ksvg2/misc/SVGDocumentExtensions.h:
62718         (WebCore::SVGDocumentExtensions::baseValueMap):
62719         (WebCore::SVGDocumentExtensions::genericContextMap):
62720         (WebCore::SVGDocumentExtensions::baseValue):
62721         (WebCore::SVGDocumentExtensions::setBaseValue):
62722         (WebCore::SVGDocumentExtensions::removeBaseValue):
62723         (WebCore::SVGDocumentExtensions::hasBaseValue):
62724         (WebCore::SVGDocumentExtensions::genericContext):
62725         (WebCore::SVGDocumentExtensions::setGenericContext):
62726         (WebCore::SVGDocumentExtensions::removeGenericContext):
62727         (WebCore::SVGDocumentExtensions::hasGenericContext):
62728         (WebCore::String):
62729         (WebCore::FloatRect):
62730         (WebCore::bool):
62731         (WebCore::double):
62732         * ksvg2/svg/SVGClipPathElement.h:
62733         * ksvg2/svg/SVGElement.h:
62734         (WebCore::SVGElement::notifyAttributeChange):
62735         * ksvg2/svg/SVGPathSegList.cpp:
62736         (WebCore::SVGPathSegList::SVGPathSegList):
62737         (WebCore::SVGPathSegList::context):
62738         * ksvg2/svg/SVGPathSegList.h:
62739         * ksvg2/svg/SVGPatternElement.h:
62740         * ksvg2/svg/SVGPointList.cpp:
62741         (SVGPointList::SVGPointList):
62742         (SVGPointList::context):
62743         * ksvg2/svg/SVGPointList.h:
62744         * ksvg2/svg/SVGStopElement.cpp:
62745         (WebCore::SVGStopElement::parseMappedAttribute):
62746         (WebCore::SVGStopElement::notifyAttributeChange):
62747         * ksvg2/svg/SVGStopElement.h:
62748         * ksvg2/svg/SVGUseElement.cpp:
62749         (WebCore::SVGUseElement::notifyAttributeChange):
62751 2007-01-20  Rob Buis  <buis@kde.org>
62753         Reviewed by Sam.
62755         http://bugs.webkit.org/show_bug.cgi?id=12334
62756         Respect <text> boundaries for svg text selecting
62758         Make sure the text selection for svg stays inside
62759         containing blocks.
62760         Added one manual test since html selection does not
62761         seem to work for SVG and selectSubString for SVG
62762         is not implemented yet.
62764         * manual-tests/svg-text-selection.svg: Added.
62765         * page/EventHandler.cpp:
62766         (WebCore::EventHandler::handleMouseMoveEvent):
62767         * rendering/RenderObject.h:
62768         (WebCore::RenderObject::isSVGText):
62769         * rendering/RenderSVGInlineText.h:
62770         (WebCore::RenderSVGInlineText::isSVGText):
62771         * rendering/RenderSVGText.h:
62772         (WebCore::RenderSVGText::isSVGText):
62774 2007-01-19  Adele Peterson  <adele@apple.com>
62776         Reviewed by Hyatt.
62778         Fix for: <rdar://problem/4697438> REGRESSION: select menu lists match the wrong css rule on www.chainreaction.com
62780         Update the size attribute value for select elements to match the numeric value.  This is a special case since this
62781         attribute is used to determine which control to use.  We want to make sure that the size attribute is valid when we match
62782         CSS rules.
62784         Test: fast/forms/select-size.html
62786         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute): If the attribute string value is not the
62787           same as its integer value, then update the attribute value to match the integer.
62788         * dom/Attribute.h: Made setValue and setPrefix public.
62790 2007-01-19  John Sullivan  <sullivan@apple.com>
62792         Reviewed by Darin
62794         - WebCore part of fix for: <rdar://problem/4451715> REGRESSION: On some sites, have to 
62795           type a character before username/password autofill kicks in
62797         * loader/FrameLoaderClient.h:
62798         new dispatchDidFinishDocumentLoad call
62800         * loader/FrameLoader.cpp:
62801         (WebCore::FrameLoader::finishedParsing):
62802         call dispatchDidFinishDocumentLoad
62803         
62804         * platform/graphics/svg/SVGImageEmptyClients.h:
62805         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishDocumentLoad):
62806         empty implementation for dispatchDidFinishDocumentLoad
62808 2007-01-19  Adele Peterson  <adele@apple.com>
62810         Reviewed by Hyatt.
62812         Fix for <rdar://problem/4760280> REGRESSION: Bottom portion of text hangs off edge of SELECT element at http://macreviewzone.com/index.php
62813         
62814         Test: fast/forms/control-restrict-line-height.html
62816         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::setFontFromControlSize): Don't honor line-height for controls that
62817           have restricted font size.
62819 2007-01-19  Darin Adler  <darin@apple.com>
62821         Reviewed by Adele.
62823         - fix http://bugs.webkit.org/show_bug.cgi?id=11999
62824           <rdar://problem/4940442> REGRESSION: Incomplete listing in TVListings window (11999)
62825           Fix was to use the actual size of the renderer in the RenderListBox
62826           case, instead of always using the size specified by the select element.
62828         Test: fast/forms/select-list-box-with-height.html
62830         - fix http://bugs.webkit.org/show_bug.cgi?id=11995
62831           <rdar://problem/4901834> REGRESSION(NativeListBox): Focus is not placed on
62832           SELECT after mousing down on OPTION
62834         Test: fast/forms/select-list-box-mouse-focus.html
62836         - fix bug where auto-scrolling was not working in list box select elements
62838         No test yet.
62840         - fix a missing semicolon in the radio/checkbox section of html4.css
62842         Test: fast/forms/radio-no-theme-padding.html
62844         - fix bug where the scroll bars for select elements were pixel-type scroll
62845           bars even though the scrolling is line at a time scrolling
62847         No test.
62849         * html/HTMLSelectElement.cpp:
62850         (WebCore::HTMLSelectElement::selectAll): Removed an explicit call
62851         to repaint, since the RenderListBox now does that in selectionChanged.
62852         (WebCore::HTMLSelectElement::notifyOptionSelected): Call the new
62853         selectionChanged instead of the old setSelectionChanged.
62854         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Added a call
62855         to focus. Removed an explicit call to repaint and added a call to the
62856         new setMouseDownMayStartAutoscroll function in EventHandler. Removed an
62857         explicit call to repaint as above.
62858         (WebCore::HTMLSelectElement::updateListBoxSelection): Call the new
62859         selectionChanged instead of the old setSelectionChanged.
62861         * page/EventHandler.h: Added setMouseDownMayStartAutoscroll, needed
62862         because the existing code to set that flag won't get triggered when
62863         the select element's default event handler handles the event.
62865         * rendering/RenderListBox.h: Made ScrollbarClient a private base class.
62866         Removed setSelectionChanged and m_selectionChanged. Added selectionChanged,
62867         which is really just a synonym for repaint for now. Moved valueChanged,
62868         the ScrollbarClient function implementations, and itemHeight into the
62869         private part of the class. Added numVisibleItems() and listHeight() to
62870         the private section. Changed m_vBar to be a RefPtr.
62872         * rendering/RenderListBox.cpp: Removed unneeded includes. Moved all
62873         the constants to the top of the file.
62874         (WebCore::RenderListBox::RenderListBox): Removed initialization of
62875         m_selectionChanged because it was removed and of m_vBar because it's
62876         now a RefPtr which is automaticall initialized.
62877         (WebCore::RenderListBox::~RenderListBox): Removed the explicit deref of
62878         m_vBar because it's a RefPtr. Added null checking for FrameView.
62879         (WebCore::RenderListBox::updateFromElement): Use numItems().
62880         (WebCore::RenderListBox::calcMinMaxWidth): Added null checking for
62881         FrameView and used RefPtr for the newly-created scroll bar.
62882         (WebCore::RenderListBox::size): Tweaked formatting. Also renamed the
62883         misleading minDefaultSize to maxDefaultSize, since it's a maximum.
62884         (WebCore::RenderListBox::numVisibleItems): Added. Used in many places
62885         where size() was used before. This computes the number of rows we have
62886         room for. We don't need a row space after the last row, and this takes
62887         that into account.
62888         (WebCore::RenderListBox::numItems): Tweaked to remove the local variable.
62889         (WebCore::RenderListBox::listHeight): Added. Total height of all the rows
62890         and spaces between them.
62891         (WebCore::RenderListBox::calcHeight): Changed to call itemHeight for the
62892         row height, and to subtract the last row spacing off since we don't need
62893         a space after the last row. Changed the scroll bar setup to make it
62894         correspond to row numbers, not pixel numbers.
62895         (WebCore::RenderListBox::baselinePosition): Moved the comment to the
62896         constant declaration at the top of the file.
62897         (WebCore::RenderListBox::itemBoundingBoxRect): Simplified by using
62898         the itemHeight() function.
62899         (WebCore::RenderListBox::paintObject): Changed to use numItems and
62900         to use numVisibleItems instead of size.
62901         (WebCore::RenderListBox::isPointInScrollbar): Added get() call since
62902         m_vBar is now a RefPtr.
62903         (WebCore::RenderListBox::listIndexAtOffset): Changed to use numItems(),
62904         itemHeight(), and rearranged a min/max combo so it starts with the low,
62905         then the value, then the high value for pinning.
62906         (WebCore::RenderListBox::autoscroll): Use numVisibleItems() instead of
62907         size().
62908         (WebCore::RenderListBox::stopAutoscroll): Removed an unneeded nil check
62909         of the element.
62910         (WebCore::RenderListBox::scrollToRevealElementAtListIndex): Changed
62911         to use numItems() and to use numVisibleItems() instead of size().
62912         Also changed scroll bar code to work more simply now that the scroll
62913         bar is row-based.
62914         (WebCore::RenderListBox::listIndexIsVisible): Changed to use
62915         numVisibleItems() instead of size().
62916         (WebCore::RenderListBox::valueChanged): Simplified since the scrollbar
62917         is now row-based. Also removed an unnecessary null check.
62918         (WebCore::RenderListBox::itemHeight): Updated for name change from
62919         optionsSpacingMiddle to rowSpacing.
62920         (WebCore::RenderListBox::scrollHeight): Changed to use listHeight().
62921         (WebCore::RenderListBox::setScrollTop): Simplified, and removed the code
62922         that does nothing if the computed list index is visible (which did not
62923         make sense for this function and seemed a cut and paste error from the
62924         scrollToReveal function). The scrollbar part is simpler now that it's
62925         row-based.
62926         (WebCore::RenderListBox::windowClipRect): Changed to use document()->view()
62927         so we don't have to include RenderView.h.
62929         * css/html4.css: Added a semicolon I noticed was missing.
62931 2007-01-19  Beth Dakin  <bdakin@apple.com>
62933         Reviewed by Maciej and Darin.
62935         Fix for <rdar://problem/4702420> REGRESSION: Null characters need 
62936         to be stripped from text nodes (townhall.com)
62938         This was a regression from the fix for <rdar://problem/3727939>
62939         Safari strips \0 characters from HTML tags making them valid, which
62940         was fixed with r12652. We still need to strip null characters in
62941         text nodes.
62943         * html/HTMLTokenizer.cpp:
62944         (WebCore::HTMLTokenizer::write): No behavior change here, this is
62945         just to make Darin happy.
62946         (WebCore::HTMLTokenizer::processToken): Call into StringImpl's new 
62947         createStrippingNull function instead of the normal StringImpl 
62948         constructor.
62949         * platform/StringImpl.cpp:
62950         (WebCore::StringImpl::createStrippingNull): Strip null.
62951         * platform/StringImpl.h:
62953 2007-01-19  David Kilzer  <ddkilzer@webkit.org>
62955         Reviewed by NOBODY (no-svg build fix).
62957         * ksvg2/svg/SVGMPathElement.cpp: Added #ifdef SVG_SUPPORT/#endif guards.
62959 2007-01-19  Anders Carlsson  <acarlsson@apple.com>
62960         
62961         Build fix.
62962         
62963         * platform/graphics/svg/SVGImageEmptyClients.h:
62964         (WebCore::SVGEmptyChromeClient::setStatusbarText):
62966 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
62968         Reviewed by Adam.
62970         Move JavaScript alert and status bar functions to the chrome.
62971         
62972         * bindings/js/kjs_window.cpp:
62973         (KJS::WindowFunc::callAsFunction):
62974         * page/Chrome.cpp:
62975         (WebCore::Chrome::runJavaScriptAlert):
62976         (WebCore::Chrome::runJavaScriptConfirm):
62977         (WebCore::Chrome::runJavaScriptPrompt):
62978         (WebCore::Chrome::setStatusBarText):
62979         * page/Chrome.h:
62980         * page/ChromeClient.h:
62981         * page/Frame.cpp:
62982         (WebCore::Frame::setJSStatusBarText):
62983         (WebCore::Frame::setJSDefaultStatusBarText):
62984         * page/Frame.h:
62985         * page/mac/FrameMac.h:
62986         * page/mac/FrameMac.mm:
62987         * page/mac/WebCoreFrameBridge.h:
62988         * platform/graphics/svg/SVGImageEmptyClients.h:
62989         (WebCore::SVGEmptyChromeClient::runJavaScriptAlert):
62990         (WebCore::SVGEmptyChromeClient::runJavaScriptConfirm):
62991         (WebCore::SVGEmptyChromeClient::runJavaScriptPrompt):
62992         (WebCore::SVGEmptyChromeClient::setStatusBarText):
62994 2007-01-19  Zack Rusin  <zack@kde.org>
62996         Fix the build.
62998         * WebCore.pro: Add missing files
63000 2007-01-19  Eric Seidel  <eric@webkit.org>
63002         Reviewed by rwlbuis.
63004         More cleanup to SVGAnimated* classes.
63006         No tests possible (only code cleanup)
63008         * ksvg2/svg/SVGAnimateMotionElement.cpp:
63009         (WebCore::SVGAnimateMotionElement::applyAnimationToValue):
63010         * ksvg2/svg/SVGAnimateMotionElement.h:
63011         * ksvg2/svg/SVGAnimationElement.cpp:
63012         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
63013         (WebCore::SVGAnimationElement::parseMappedAttribute):
63014         (WebCore::SVGAnimationElement::parseClockValue):
63015         (WebCore::SVGAnimationElement::isIndefinite):
63016         * ksvg2/svg/SVGAnimationElement.h:
63018 2007-01-19  Nikolas Zimmermann  <zimmermann@kde.org>
63020         Not reviewed.
63022         Remove accidently commited debug output. Shame on me :-)
63024         * ksvg2/svg/SVGUseElement.cpp:
63025         (WebCore::SVGUseElement::notifyAttributeChange):
63027 2007-01-19  Nikolas Zimmermann  <zimmermann@kde.org>
63029         Reviewed by Eric.
63031         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10410 (SVG Slider example renders completely wrong (inserting <use> dynamically doesn't work))
63032         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11660 (SVG: creation of <use/> elements through scripting/DOM doesn't work)
63034         Added test: svg/custom/use-instanceRoot-modifications.svg
63035         Added test: svg/custom/use-on-g.svg
63036         Added test: svg/custom/use-on-rect.svg
63037         Added test: svg/custom/use-on-symbol-inside-pattern.svg
63038         Added test: svg/custom/use-on-symbol.svg
63039         Added test: svg/custom/use-on-text.svg
63040         Added test: svg/custom/use-transform.svg
63042         Fixes: svg/W3C-SVG-1.1/text-text-04-t.svg (missing use elements)
63043         Fixes: svg/carto.net/button.svg (image buttons didn't appear)
63044         Fixes: svg/carto.net/colourpicker.svg (slider handles finally show up)
63045         Fixes: svg/carto.net/slider.svg (slider handles finally show up)
63046         Fixes: svg/carto.net/window.svg (window decorations show up) 
63047         Fixes: svg/custom/use-forward-refs.svg (missing use elements)
63049         Rewrite <use> support with a real-shadow tree (as the spec demands), and implement SVGElementInstance.
63050         AFAIK we're the first implementing this SVG feature - after ASV3 (!).
63052         * DerivedSources.make:
63053         * WebCore.xcodeproj/project.pbxproj:
63054         * bindings/objc/DOMInternal.h:
63055         * bindings/objc/DOMSVG.h:
63056         * ksvg2/misc/SVGDocumentExtensions.cpp:
63057         (WebCore::SVGDocumentExtensions::reportWarning):
63058         (WebCore::SVGDocumentExtensions::reportError):
63059         (WebCore::SVGDocumentExtensions::addPendingResource):
63060         (WebCore::SVGDocumentExtensions::isPendingResource):
63061         (WebCore::SVGDocumentExtensions::removePendingResource):
63062         (WebCore::SVGDocumentExtensions::mapInstanceToElement):
63063         (WebCore::SVGDocumentExtensions::removeInstanceMapping):
63064         (WebCore::SVGDocumentExtensions::instancesForElement):
63065         * ksvg2/misc/SVGDocumentExtensions.h:
63066         * ksvg2/svg/SVGCircleElement.cpp:
63067         (WebCore::SVGCircleElement::notifyAttributeChange):
63068         * ksvg2/svg/SVGElement.cpp:
63069         (WebCore::SVGElement::insertedIntoDocument):
63070         * ksvg2/svg/SVGElement.h:
63071         (WebCore::SVGElement::buildPendingResource):
63072         * ksvg2/svg/SVGElementInstance.cpp:
63073         (WebCore::SVGElementInstance::SVGElementInstance):
63074         (WebCore::SVGElementInstance::~SVGElementInstance):
63075         (WebCore::SVGElementInstance::clonedElement):
63076         (WebCore::SVGElementInstance::correspondingElement):
63077         (WebCore::SVGElementInstance::correspondingUseElement):
63078         (WebCore::SVGElementInstance::parentNode):
63079         (WebCore::SVGElementInstance::childNodes):
63080         (WebCore::SVGElementInstance::previousSibling):
63081         (WebCore::SVGElementInstance::nextSibling):
63082         (WebCore::SVGElementInstance::firstChild):
63083         (WebCore::SVGElementInstance::lastChild):
63084         (WebCore::SVGElementInstance::appendChild):
63085         (WebCore::SVGElementInstance::updateInstance):
63086         * ksvg2/svg/SVGElementInstance.h:
63087         * ksvg2/svg/SVGElementInstance.idl: Added.
63088         * ksvg2/svg/SVGElementInstanceList.cpp:
63089         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
63090         (WebCore::SVGElementInstanceList::length):
63091         (WebCore::SVGElementInstanceList::item):
63092         * ksvg2/svg/SVGElementInstanceList.h:
63093         * ksvg2/svg/SVGElementInstanceList.idl: Added.
63094         * ksvg2/svg/SVGEllipseElement.cpp:
63095         (WebCore::SVGEllipseElement::notifyAttributeChange):
63096         * ksvg2/svg/SVGGElement.cpp:
63097         * ksvg2/svg/SVGGElement.h:
63098         (WebCore::SVGGElement::contextElement):
63099         * ksvg2/svg/SVGGradientElement.cpp:
63100         * ksvg2/svg/SVGGradientElement.h:
63101         * ksvg2/svg/SVGHiddenElement.h: Added.
63102         (WebCore::SVGHiddenElement::Type):
63103         (WebCore::SVGHiddenElement::~SVGHiddenElement):
63104         (WebCore::SVGHiddenElement::localName):
63105         * ksvg2/svg/SVGImageElement.cpp:
63106         (WebCore::SVGImageElement::notifyAttributeChange):
63107         * ksvg2/svg/SVGLineElement.cpp:
63108         (WebCore::SVGLineElement::notifyAttributeChange):
63109         * ksvg2/svg/SVGPathElement.cpp:
63110         (WebCore::SVGPathElement::notifyAttributeChange):
63111         * ksvg2/svg/SVGPatternElement.cpp:
63112         * ksvg2/svg/SVGPatternElement.h:
63113         * ksvg2/svg/SVGPolyElement.cpp:
63114         (WebCore::SVGPolyElement::notifyAttributeChange):
63115         * ksvg2/svg/SVGRectElement.cpp:
63116         (WebCore::SVGRectElement::notifyAttributeChange):
63117         * ksvg2/svg/SVGStyledElement.cpp:
63118         (WebCore::SVGStyledElement::notifyAttributeChange):
63119         (WebCore::SVGStyledElement::updateElementInstance):
63120         * ksvg2/svg/SVGStyledElement.h:
63121         * ksvg2/svg/SVGUseElement.cpp:
63122         (WebCore::SVGUseElement::instanceRoot):
63123         (WebCore::SVGUseElement::animatedInstanceRoot):
63124         (WebCore::SVGUseElement::hasChildNodes):
63125         (WebCore::SVGUseElement::insertedIntoDocument):
63126         (WebCore::SVGUseElement::buildPendingResource):
63127         (WebCore::SVGUseElement::createRenderer):
63128         (WebCore::SVGUseElement::buildShadowTree):
63129         (WebCore::SVGUseElement::recursiveShadowTreeBuilder):
63130         (WebCore::dumpShadowTree):
63131         (WebCore::SVGUseElement::addShadowTree):
63132         * ksvg2/svg/SVGUseElement.h:
63133         * ksvg2/svg/SVGUseElement.idl:
63135 2007-01-19  Eric Seidel  <eric@webkit.org>
63137         Reviewed by rwlbuis.
63139         Add support for SVGMPathElement parsing.
63141         No test cases possible (SVGAnimateMotion doesn't work yet)
63143         * WebCore.xcodeproj/project.pbxproj:
63144         * ksvg2/svg/SVGAnimateMotionElement.cpp:
63145         (WebCore::SVGAnimateMotionElement::animationPath):
63146         * ksvg2/svg/SVGMPathElement.cpp: Added.
63147         (WebCore::SVGMPathElement::SVGMPathElement):
63148         (WebCore::SVGMPathElement::~SVGMPathElement):
63149         (WebCore::SVGMPathElement::parseMappedAttribute):
63150         (WebCore::SVGMPathElement::pathElement):
63151         * ksvg2/svg/SVGMPathElement.h: Added.
63152         * ksvg2/svg/SVGNumberList.cpp:
63153         (WebCore::SVGNumberList::parse): fix typo in comment
63154         * ksvg2/svg/svgtags.in: add back mpath
63156 2007-01-19  Eric Seidel  <eric@webkit.org>
63158         Reviewed by rwlbuis.
63160         Implement better parsing for keyTimes, keySplines and keyPoints.
63162         Unfortunately none of this code is used much yet, thus isn't very testable.
63164         * ksvg2/svg/SVGAnimateMotionElement.cpp:
63165         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
63166         * ksvg2/svg/SVGAnimationElement.cpp:
63167         (WebCore::SVGAnimationElement::parseKeyNumbers):
63168         (WebCore::parseKeySplines):
63169         (WebCore::SVGAnimationElement::parseMappedAttribute):
63170         * ksvg2/svg/SVGAnimationElement.h:
63171         * ksvg2/svg/SVGNumberList.cpp:
63172         (WebCore::SVGNumberList::parse):
63174 2007-01-18  Adam Roben  <aroben@apple.com>
63176         Reviewed by Beth.
63178         Fix: <rdar://problem/4939672> REGRESSION: With text selected that is
63179         not a link, the "Remove Link" contextual menu item remains active
63181         * platform/ContextMenuItem.h: Added enabled method.
63182         * platform/qt/ContextMenuItemQt.cpp:
63183         (WebCore::ContextMenuItem::enabled): Implemented.
63184         * platform/mac/ContextMenuItemMac.mm:
63185         (WebCore::ContextMenuItem::enabled): Ditto.
63186         * platform/mac/ContextMenuMac.mm:
63187         (-[WebCoreMenuTarget validateMenuItem:]): Implemented to fulfill the
63188         NSMenuValidation protocol.
63189         
63190 2007-01-18  Beth Dakin  <bdakin@apple.com>
63192         Reviewed by Adele.
63194         Fix for <rdar://problem/4939558> REGRESSION: "Search in Google", 
63195         "Search in Spotlight" and "Look up in Dictionary" are missing 
63196         initially from the contextual menu
63198         The bug here is that we select the we were selecting the word after 
63199         the context menu event was dispatched and after the context menu 
63200         was built up.
63202         * page/EventHandler.cpp:
63203         (WebCore::EventHandler::sendContextMenuEvent): Select the word 
63204         before dispatching the event. It is safe to remove the check for 
63205         swallowEvent since WebCore context menus ensure that we always 
63206         swallow the event anyway.
63208 2007-01-18  Mark Rowe  <mrowe@apple.com>
63210         Reviewed by Tim H.
63212         Fix for http://bugs.webkit.org/show_bug.cgi?id=7926
63213         Bug 7926: Crash using -callWebScriptMethod to access offsetTop property
63215         * bindings/objc/WebScriptObject.mm:
63216         (-[WebScriptObject callWebScriptMethod:withArguments:]): Bail out early if function value is an immediate,
63217         or if the function object is not callable.
63219 2007-01-18  Sam Weinig  <sam@webkit.org>
63221         Reviewed by Maciej.
63223         Patch for http://bugs.webkit.org/show_bug.cgi?id=11853
63224         REGRESSION (r17352): Whitespace in <title> is rendered
63226         * loader/DocumentLoader.cpp:
63227         (WebCore::canonicalizedTitle): Changed to also collapse internal
63228         whitespace.  This required removing an optimization that is no
63229         longer possible.
63230         * manual-tests/title-internal-whitespace.html: Added.
63232 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63234         Reviewed by Maciej.
63236         - fix http://bugs.webkit.org/show_bug.cgi?id=12039
63237           Assertion failure in WebCore::Font::primaryFont
63239         Test: fast/text/font-initial.html
63241         * css/cssstyleselector.cpp:
63242         (WebCore::CSSStyleSelector::applyProperty): Give 'font: initial' the
63243         Standard generic family. This makes the FontDescription different from
63244         that of the initial font of a GraphicsContext, ensuring that the latter
63245         will not be used.
63247 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63249         Reviewed by Darin.
63251         - fix http://bugs.webkit.org/show_bug.cgi?id=11451
63252           REGRESSION: Dell.com does not render correctly in ToT (stylesheet not loaded)
63254         Test: http/tests/misc/css-accept-any-type.html
63256         * loader/CachedCSSStyleSheet.cpp:
63257         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Changed the accept header
63258         for stylesheets to "text/css,*/*;q=0.1" to match Firefox, accepting CSS served
63259         as any type.
63261 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63263         Reviewed by Darin.
63265         - fix http://bugs.webkit.org/show_bug.cgi?id=11271
63266         REGRESSION (r12358): Text in display: table unselectable
63268         Test: editing/selection/display-table-text.html
63270         * editing/htmlediting.cpp:
63271         (WebCore::isTableElement): Changed to return false for text nodes.
63273 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63275         Reviewed by Darin.
63277         - fix http://bugs.webkit.org/show_bug.cgi?id=6218
63278           CSS1: WebTextRenderer caches and re-uses fallback renderers that are based on family lists
63280         This patch takes character-to-glyph mapping out of FontData and instead makes
63281         each Font keep its own mapping, using a shared set of glyph page fallback trees.
63283         For each page number there is (at most) one tree. A path from the root to a
63284         node in the tree corresponds to a fallback list of FontDatas. The node points to
63285         a page (which may be shared with other nodes) that maps each character in its range
63286         to a glyph in the first FontData in the fallback list that has it, or to 0 if none of
63287         the FontDatas has a glyph for that character. A special kind of node, that can
63288         only occur as a leaf, corresponds to using system fallback fonts after the list
63289         has been exhausted. This prevents system fallback from polluting non-leaf
63290         nodes.
63292         Nodes and pages are initialized lazily and employ "copy on write".
63294         * CMakeLists.txt:
63295         * WebCore.pro:
63296         * WebCore.vcproj/WebCore/WebCore.vcproj:
63297         * WebCore.xcodeproj/project.pbxproj:
63298         * WebCoreSources.bkl:
63299         * platform/Font.cpp:
63300         (WebCore::WidthIterator::WidthIterator): Removed substituteFontData.
63301         (WebCore::WidthIterator::advance): Moved all character-to-glyph mapping logic out
63302         of here and replaced it with a call to Font::glyphDataForCharacter().
63303         (WebCore::Font::Font):
63304         (WebCore::Font::operator=):
63305         (WebCore::Font::glyphDataForCharacter): Added. This method performs the lookup in the
63306         page fallback trees, triggering lazy initialization as needed, and caching pointers to
63307         the retrieved page tree nodes in the font.
63308         (WebCore::Font::update):
63309         (WebCore::Font::drawSimpleText):
63310         (WebCore::Font::floatWidth):
63311         (WebCore::Font::floatWidthForSimpleText): Removed substituteFont argument.
63312         (WebCore::Font::offsetForPositionForSimpleText):
63313         * platform/Font.h:
63314         * platform/FontData.cpp:
63315         (WebCore::FontData::FontData):
63316         * platform/FontData.h:
63317         (WebCore::FontData::missingGlyphData): Added. Returns the "missing glyph" GlyphData for
63318         this FontData.
63319         * platform/GlyphMap.cpp: Removed.
63320         * platform/GlyphMap.h: Removed.
63321         * platform/GlyphPageTreeNode.cpp: Renamed GlyphMap.cpp to this.
63322         (WebCore::GlyphPageTreeNode::getRoot): Added. Returns the root of the page fallback tree for
63323         the given page number.
63324         (WebCore::GlyphPageTreeNode::initializePage): Added. Helper method that initializes the page
63325         pointer of a node, possibly to a pointer to another node's page or to 0.
63326         (WebCore::GlyphPageTreeNode::getChild): Added.
63327         * platform/GlyphPageTreeNode.h: Renamed GlyphMap.h to this.
63328         (WebCore::GlyphPage::glyphDataForCharacter):
63329         (WebCore::GlyphPage::setGlyphDataForCharacter):
63330         (WebCore::GlyphPage::setGlyphDataForIndex):
63331         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
63332         (WebCore::GlyphPageTreeNode::getRootChild):
63333         (WebCore::GlyphPageTreeNode::parent):
63334         (WebCore::GlyphPageTreeNode::page):
63335         (WebCore::GlyphPageTreeNode::level):
63336         (WebCore::GlyphPageTreeNode::isSystemFallback): Added. Returns whether the node corresponds
63337         to the system providing fallback fonts, which is done on a character-by-character basis.
63338         * platform/gdk/GlyphMapGdk.cpp: Removed.
63339         * platform/gdk/GlyphPageTreeNodeGdk.cpp: Renamed GlyphMapGdk.cpp to this.
63340         (WebCore::GlyphPage::fill):
63341         * platform/mac/FontDataMac.mm:
63342         (WebCore::FontData::platformInit):
63343         * platform/mac/FontMac.mm:
63344         (WebCore::Font::Font):
63345         * platform/mac/GlyphMapMac.cpp: Removed.
63346         * platform/mac/GlyphPageTreeNodeMac.cpp: Renamed GlypMapMac.cpp to this.
63347         (WebCore::GlyphPage::fill): Changed to return false if the font has no glyphs in the page.
63348         * platform/qt/GlyphMapQt.cpp: Removed.
63349         * platform/qt/GlyphPageTreeNodeQt.cpp: Renamed GlyphMapQt.cpp to this.
63350         (WebCore::GlyphPage::fill):
63351         * platform/win/GlyphMapWin.cpp: Removed.
63352         * platform/win/GlyphPageTreeNodeWin.cpp: Renamed GlyphMapWin to this.
63353         (WebCore::GlyphPage::fill):
63355 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63357         Reviewed by Darin.
63359         - fix http://bugs.webkit.org/show_bug.cgi?id=9952
63360           REGRESSION: Repro crash when dragging an image from the window to the address bar
63362         * page/FrameView.cpp:
63363         (WebCore::FrameView::~FrameView): Removed the call to Document::detach(). If this
63364         view is the current view, then the Frame should have already detached the document.
63365         Added an assertion that this is the case. If this view is not the current view,
63366         then it cannot access its document, but the page cache should have detached it already.
63367         Similarly, changed to call RenderPart::setWidget() only if this is the current view
63368         in the frame.
63369         (WebCore::FrameView::adjustViewSize): Added an assertion that this view is the current
63370         view in the frame.
63371         (WebCore::FrameView::layout): Ditto.
63372         (WebCore::FrameView::scheduleRelayout): Ditto.
63373         (WebCore::FrameView::scheduleRelayoutOfSubtree): Ditto.
63374         (WebCore::FrameView::windowClipRect): Ditto.
63376 2007-01-18  Eric Seidel  <eric@webkit.org>
63378         Reviewed by bdash.
63380         No test needed, removed bogus debug-only ASSERT.
63382         * rendering/RenderSVGContainer.cpp:
63383         (WebCore::RenderSVGContainer::paint):
63385 2007-01-18  Alice Liu  <alice.liu@apple.com>
63387         Build Fix
63389         * platform/mac/PasteboardMac.mm:
63390         (WebCore::Pasteboard::writeSelection):
63392 2007-01-18  Alice Liu  <alice.liu@apple.com>
63394         Reviewed by Mark Rowe.
63396         Fixes the leaks from my last patch, except for the first change below which is a missing delegate call for Mail purposes
63398         * editing/Editor.cpp:
63399         (WebCore::Editor::cut):
63400         * platform/Pasteboard.h:
63401         * platform/mac/PasteboardMac.mm:
63402         (WebCore::Pasteboard::Pasteboard):
63403         (WebCore::Pasteboard::clear):
63404         (WebCore::Pasteboard::writeSelection):
63405         (WebCore::Pasteboard::writeURL):
63406         (WebCore::Pasteboard::plainText):
63407         (WebCore::Pasteboard::documentFragment):
63409 2007-01-18  David Hyatt  <hyatt@apple.com>
63411         Make sure layer autoscrolling puts the event coordinates into the layer's coordinate space before
63412         calling hitTest on it.  Fixes "flashy" selection in textareas.
63414         Reviewed by darin
63416         * rendering/RenderLayer.cpp:
63417         (WebCore::RenderLayer::autoscroll):
63418         * rendering/RenderTextControl.cpp:
63419         (WebCore::RenderTextControl::nodeAtPoint):
63421 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
63423         Reviewed by Adam.
63425         Get rid of ResourceLoaderMac.mm and make willCacheResponse platform-independent.
63426         
63427         * loader/ResourceLoader.cpp:
63428         (WebCore::ResourceLoader::willCacheResponse):
63429         * loader/ResourceLoader.h:
63430         * loader/mac/ResourceLoaderMac.mm: Removed.
63431         * platform/network/ResourceHandleClient.h:
63432         (WebCore::):
63433         (WebCore::ResourceHandleClient::willCacheResponse):
63434         (WebCore::ResourceHandleClient::willStopBufferingData):
63435         * platform/network/mac/ResourceHandleMac.mm:
63436         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
63438 2007-01-18  Maciej Stachowiak  <mjs@apple.com>
63440         Reviewed by John.
63442         - fixed <rdar://problem/4887416> REGRESSION (SearchField): Assertion failure in HTMLInputElement::setValueFromRenderer when editing via drag and drop (11846)
63443         http://bugs.webkit.org/show_bug.cgi?id=11846
63444         
63445         * editing/ReplaceSelectionCommand.cpp:
63446         (WebCore::ReplaceSelectionCommand::doApply): Don't insert extra paragraph separators to avoid
63447         nesting blocks in plaintext mode, since that's not an issue under normal circumstances.
63448         * html/HTMLInputElement.h:
63449         * manual-tests/drag-move-in-search-field.html: Added.
63450         * rendering/RenderTextControl.cpp:
63451         (WebCore::RenderTextControl::subtreeHasChanged): constrain the value; we'd
63452         rather truncate it than end up with an illegal value here.
63454 2007-01-18  Simon Hausmann  <hausmann@kde.org>
63456         Reviewed by Zack.
63458         * WebCore.pro: Ha^H^HFix to support massive parallel builds.
63460 2007-01-18  David Kilzer  <ddkilzer@kilzer.net>
63462         Reviewed by Darin and Mitz.
63464         - fix http://bugs.webkit.org/show_bug.cgi?id=12305
63465           REGRESSION: Images do not load in video sections on CNN.com homepage
63467         <rdar://problem/4931480> REGRESSION: Images do not load in video sections on CNN.com homepage (12305)
63469         Test: fast/dom/HTMLImageElement/image-lowsrc-getset.html
63471         * html/HTMLAttributeNames.in: Added lowsrc.
63472         * html/HTMLImageElement.cpp:
63473         (WebCore::HTMLImageElement::isURLAttribute): Added lowsrc.
63474         (WebCore::HTMLImageElement::lowsrc): Added.
63475         (WebCore::HTMLImageElement::setLowsrc): Added.
63476         * html/HTMLImageElement.h: Added lowsrc and setLowsrc.
63477         * html/HTMLImageElement.idl: Added lowsrc.
63479 2007-01-18  Simon Hausmann  <hausmann@kde.org>
63481         Reviewed by Zack.
63483         * WebCore.pro: Remove generated files on make clean.
63485 2007-01-17  Alice Liu  <alice.liu@apple.com>
63487         Reviewed by Harrison.
63489         Fix for <rdar://problem/4894155> REGRESSION: Extra line break is pasted with content into message body after choosing File - Paste
63491         Migration of some editing code from WebHTMView to WebCore::Editor
63492         resulted in not calling pasteboardTypesForSelection, which Mail was
63493         overriding for the special purpose of adding a type to the
63494         pasteboard after WebKit did.  This patch adds 2 separate code paths
63495         for Tiger and Leopard.  On Tiger we give in and call the WebView's
63496         pasteboardTypesForSelection.  On Leopard we call a delegate after
63497         the pasteboard types are set. 
63499         * bridge/EditorClient.h:
63500         * editing/Editor.h:
63501         * platform/Pasteboard.h:
63502         * platform/graphics/svg/SVGImageEmptyClients.h:
63503         (WebCore::SVGEmptyEditorClient::didSetSelectionTypesForPasteboard):
63504         (WebCore::SVGEmptyEditorClient::pasteboardTypesForSelection):
63505         * platform/mac/PasteboardMac.mm:
63506         (WebCore::Pasteboard::Pasteboard):
63507         (WebCore::Pasteboard::clear):
63508         (WebCore::Pasteboard::writeSelection):
63509         (WebCore::Pasteboard::writeURL):
63510         (WebCore::Pasteboard::plainText):
63511         (WebCore::Pasteboard::documentFragment):
63513 2007-01-17  John Sullivan  <sullivan@apple.com>
63515         Reviewed by Darin
63517         - WebCore part of fix for <rdar://problem/4462420> REGRESSION: Mail hangs during 
63518           Replace All if the replacement string contains the search string
63519         
63520         * page/Frame.h:
63521         * page/Frame.cpp:
63522         (WebCore::Frame::findString):
63523         new startInSelection parameter -- if true, search starts looking in selection; if false,
63524         search starts looking after the selection
63525         
63526         * page/mac/WebCoreFrameBridge.h:
63527         * page/mac/WebCoreFrameBridge.mm:
63528         (-[WebCoreFrameBridge searchFor:direction:caseSensitive:wrap:startInSelection:]):
63529         new startInSelection parameter, passed through to Frame::findString()
63531         * editing/JSEditor.cpp:
63532         pass false for new findString parameter, to match old behavior
63534 2007-01-17  Beth Dakin  <bdakin@apple.com>
63536         Rubber stamped by Darin.
63538         * rendering/HitTestResult.cpp: Just added a comment.
63540 2007-01-17  Justin Garcia  <justin.garcia@apple.com>
63542         Reviewed by darin
63543         
63544         <rdar://problem/4920488>
63545         REGRESSION: A crash occurs at WebCore::Range::processContents () when removing formatting from selected text (that contains a link)
63547         * dom/Range.cpp:
63548         (WebCore::Range::commonAncestorContainer): Return null if the nodes
63549         don't have a common ancestor.  As a side effect, the public 
63550         commonAncestorContainer now sets an exception if the Range starts
63551         in one document and ends in another, or starts or ends in a tree
63552         that's been removed from the document.  The spec doesn't cover
63553         this and there is no precedent in other browsers for this case because
63554         they don't allow invalid Ranges (you can create one with WebCore
63555         by removing a node that contains the start/end of a Range).
63556         (WebCore::Range::compareBoundaryPoints): If the the two positions
63557         are in nodes that have no common ancestor, return null.  This doesn't
63558         change the behavior of the public compareBoundaryPoints: it already
63559         throws an exception if the two positions are in nodes that don't have
63560         a common ancestor.  This follows the spec.
63562 2007-01-17  John Sullivan  <sullivan@apple.com>
63564         The one word was typed by me, but only after debugging for a long time with Darin.
63566         - fixed <rdar://problem/4912002> REGRESSION: Series of words marked as a single misspelled word
63568         * editing/TextIterator.cpp:
63569         (WebCore::WordAwareIterator::WordAwareIterator):
63570         We were creating a TextIterator with the default kind, but WordAwareIterator is designed to work
63571         in concert with CharacterIterator, so they need to use the same kind. CharacterIterator uses
63572         kind RUNFINDER, so WordAwareIterator needs to do so also.
63574 2007-01-17  Adele Peterson  <adele@apple.com>
63576         Reviewed by Brady.
63578         Fix for <rdar://problem/4900895> REGRESSION: onChange doesn't always fire for popups that have had value changed by JS
63580         No test case since you need to open up the menu to fire onChange.
63582         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setSelectedIndex):
63583           Keep track of m_lastOnChangeIndex even when we're not firing onChange.  Since
63584           the selected index has changed, we still want the m_lastOnChangeIndex to be up to date when we compare
63585           it later.  This matches our behavior in Safari 2.0.
63587 2007-01-17  Adele Peterson  <adele@apple.com>
63589         Reviewed by Darin and John.
63591         - Fix for <rdar://problem/4816550> REGRESSION: autoscrolling doesn't work after double-click
63593         * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): Set swallowEvent bool instead
63594           of returning early for double and triple clicks.
63596 2007-01-17  Darin Adler  <darin@apple.com>
63598         Reviewed by Hyatt.
63600         * rendering/RenderObject.h: Removed unused nextEditable and previousEditable.
63601         * rendering/RenderObject.cpp: Ditto.
63603 2007-01-17  Darin Adler  <darin@apple.com>
63605         Reviewed by Maciej.
63607         - fix http://bugs.webkit.org/show_bug.cgi?id=12278
63608           <rdar://problem/4928705> REGRESSION(r13070): Dragged image size includes padding (12278)
63610         * WebCore.exp: Added HitTestResult::imageRect,
63611         removed HitTestResult::boundingBox.
63613         * rendering/HitTestResult.h:
63614         * rendering/HitTestResult.cpp: (WebCore::HitTestResult::imageRect):
63615         Added. Returns the content rectangle of the image.
63617         * rendering/RenderObject.h:
63618         * rendering/RenderObject.cpp:
63619         (WebCore::RenderObject::absolutePosition): Made const.
63620         (WebCore::RenderObject::contentBox): Added.
63621         (WebCore::RenderObject::absoluteContentBox): Added.
63623         * rendering/RenderBox.h:
63624         * rendering/RenderBox.cpp:
63625         (WebCore::RenderBox::absolutePosition): Made const.
63627         * rendering/RenderTableCell.h:
63628         * rendering/RenderTableCell.cpp:
63629         (WebCore::RenderTableCell::absolutePosition): Made const.
63631         * rendering/RenderView.h:
63632         * rendering/RenderView.cpp:
63633         (WebCore::RenderView::absolutePosition): Made const.
63635 2007-01-17  Adele Peterson  <adele@apple.com>
63637         Reviewed by Beth.
63639         Fix for  http://bugs.webkit.org/show_bug.cgi?id=10139
63640         <rdar://problem/4823028> REGRESSION: Reproducible crash when selecting a popup/button with ::selection pseudostyle
63642         Test: fast/css/pseudostyle-anonymous-text.html
63644         * rendering/RenderObject.cpp: (WebCore::RenderObject::getPseudoStyle): Nil check the node.
63646 2007-01-17  Adele Peterson  <adele@apple.com>
63648         Reviewed by Anders and John.
63650         Fix for http://bugs.webkit.org/show_bug.cgi?id=11278
63651         <rdar://problem/4826875> REGRESSION: Popup width doesn't change to accommodate dynamic changes to options
63653         Test: fast/forms/menulist-width-change.html
63655         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
63656           When the options change, call setNeedsLayoutAndMinMaxRecalc.
63658 2007-01-16  Alexey Proskuryakov  <ap@webkit.org>
63660         Reviewed by Maciej.
63662         http://bugs.webkit.org/show_bug.cgi?id=12268
63663         Give object prototypes their own names
63665         * bindings/js/kjs_html.cpp: Changed the names of KJS:HTMLElement and KJS::HTMLElement to 
63666         not match the names of their WebCore counterparts. The "DOM" prefix I gave them doesn't 
63667         seem to carry much sense, but matches some other kjs_html object names.
63669         * bindings/scripts/CodeGeneratorJS.pm: Append "Proto" to interface name for the prototype's ClassInfo.
63671         * bindings/js/JSHTMLInputElementBase.cpp:
63672         (WebCore::JSHTMLInputElementBasePrototypeFunction::callAsFunction):
63673         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
63674         * bindings/js/JSHTMLInputElementBase.h:
63675         * bindings/js/JSXMLHttpRequest.cpp:
63676         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
63677         (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
63678         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
63679         * bindings/js/JSXMLHttpRequest.h:
63680         * bindings/js/JSXSLTProcessor.cpp:
63681         (KJS::JSXSLTProcessor::JSXSLTProcessor):
63682         (KJS::XSLTProcessorPrototypeFunction::callAsFunction):
63683         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
63684         * bindings/js/kjs_css.cpp:
63685         (KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
63686         (KJS::DOMCSSStyleDeclarationPrototypeFunction::callAsFunction):
63687         (KJS::DOMMediaList::DOMMediaList):
63688         (KJS::KJS::DOMMediaListPrototypeFunction::callAsFunction):
63689         (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
63690         (KJS::DOMCSSStyleSheetPrototypeFunction::callAsFunction):
63691         (KJS::DOMCSSValue::DOMCSSValue):
63692         (KJS::DOMCSSValuePrototypeFunction::callAsFunction):
63693         * bindings/js/kjs_css.h:
63694         * bindings/js/kjs_dom.cpp:
63695         (KJS::DOMNode::DOMNode):
63696         (KJS::DOMNodePrototypeFunction::callAsFunction):
63697         (KJS::DOMEventTargetNode::DOMEventTargetNode):
63698         (KJS::DOMEventTargetNodePrototypeFunction::callAsFunction):
63699         (KJS::DOMNamedNodeMap::DOMNamedNodeMap):
63700         (KJS::DOMNamedNodeMapPrototypeFunction::callAsFunction):
63701         * bindings/js/kjs_dom.h:
63702         * bindings/js/kjs_domnode.h:
63703         * bindings/js/kjs_events.cpp:
63704         (KJS::DOMEvent::DOMEvent):
63705         (KJS::DOMEventPrototypeFunction::callAsFunction):
63706         (KJS::Clipboard::Clipboard):
63707         (KJS::ClipboardPrototypeFunction::callAsFunction):
63708         * bindings/js/kjs_events.h:
63709         * bindings/js/kjs_html.cpp:
63710         (KJS::JSHTMLDocumentPrototypeFunction::callAsFunction):
63711         (KJS::):
63712         (KJS::JSHTMLDocument::JSHTMLDocument):
63713         (KJS::JSHTMLElementPrototypeFunction::callAsFunction):
63714         (KJS::JSHTMLElement::JSHTMLElement):
63715         (KJS::JSHTMLCollection::JSHTMLCollection):
63716         (KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
63717         * bindings/js/kjs_html.h:
63718         * bindings/js/kjs_navigator.cpp:
63719         * bindings/js/kjs_traversal.cpp:
63720         (KJS::DOMNodeFilter::DOMNodeFilter):
63721         (KJS::DOMNodeFilterPrototypeFunction::callAsFunction):
63722         * bindings/js/kjs_window.cpp:
63723         (KJS::Window::clear):
63724         Changed Proto to Prototype, and ProtoFunc to PrototypeFunction.
63726 2007-01-17  Lars Knoll <lars@trolltech.com>
63728         Reviewed by Zack and Darin
63730         Fix the Qt build again after the latest Image changes.
63731         Also make some of the methods implemented in ImageCG 
63732         crossplatform.
63734         * platform/graphics/BitmapImage.h:
63735         * platform/graphics/Image.cpp:
63736         (WebCore::Image::fillWithSolidColor):
63737         (WebCore::calculatePatternScale):
63738         (WebCore::Image::drawTiled):
63739         * platform/graphics/Image.h:
63740         * platform/graphics/cg/ImageCG.cpp:
63741         (WebCore::BitmapImage::draw):
63742         * platform/graphics/qt/ImageQt.cpp:
63743         (WebCore::Image::loadPlatformResource):
63744         (WebCore::Image::drawPattern):
63745         (WebCore::BitmapImage::initPlatformData):
63746         (WebCore::BitmapImage::invalidatePlatformData):
63747         (WebCore::BitmapImage::draw):
63748         (WebCore::BitmapImage::drawPattern):
63749         * platform/qt/TemporaryLinkStubs.cpp:
63751 2007-01-17  Darin Adler  <darin@apple.com>
63753         - quick attempt to fix the Qt build
63755         * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::drawTiled):
63756         Remove obsolete parameters from this stub.
63758 2007-01-17  Eric Seidel  <eric@webkit.org>
63760         Reviewed by rwlbuis.
63762         Test: svg/custom/inner-svg-hit-test.svg
63764         * rendering/RenderSVGContainer.cpp:
63765         (WebCore::RenderSVGContainer::nodeAtPoint): never allow containers to be hit.
63767 2007-01-17  Lars Knoll <lars@trolltech.com>
63769         Reviewed by Zack
63771         Don't call receivedResponse twice for file: URLs.
63772         Never call back into the ResourceHandleClient once
63773         cancel() has been called on the ResourceHandle.
63775         * WebCore.pro:
63776         * platform/network/qt/ResourceHandleManagerQt.cpp:
63777         (WebCore::ResourceHandleManager::cancel):
63778         (WebCore::ResourceHandleManager::receivedResponse):
63779         (WebCore::ResourceHandleManager::receivedData):
63780         (WebCore::ResourceHandleManager::receivedFinished):
63781         (WebCore::FileLoader::request):
63782         (WebCore::FileLoader::parseDataUrl):
63783         (WebCore::WebCoreHttp::scheduleNextRequest):
63784         * platform/network/qt/ResourceHandleManagerQt.h:
63786 2007-01-17  Eric Seidel  <eric@webkit.org>
63788         No review, build fix only.
63790         * platform/graphics/cg/ImageCG.cpp: correct drawPatternCombined to drawPattern
63791         (WebCore::Image::drawPattern):
63792         (WebCore::Image::drawTiled):
63794 2007-01-17  Eric Seidel  <eric@webkit.org>
63796         Reviewed by mitz and rwlbuis.
63797         
63798         SVGs do not work as background images:
63799         http://bugs.webkit.org/show_bug.cgi?id=12096
63801         Tests updated:
63802         - fast/images/svg-as-background.svg: now passes
63803         - fast/images/svg-as-tiled-background.svg: now passes
63805         * platform/graphics/BitmapImage.h:
63806         (WebCore::BitmapImage::nativeImageForCurrentFrame):
63807         (WebCore::BitmapImage::mayFillWithSolidColor):
63808         (WebCore::BitmapImage::solidColor):
63809         * platform/graphics/Image.h:
63810         (WebCore::Image::mayFillWithSolidColor):
63811         (WebCore::Image::solidColor):
63812         (WebCore::Image::nativeImageForCurrentFrame):
63813         (WebCore::Image::startAnimation):
63814         * platform/graphics/cg/ImageCG.cpp:
63815         (WebCore::Image::drawPatternCallback):
63816         (WebCore::Image::drawPatternCombined):
63817         (WebCore::caculatePatternScale):
63818         (WebCore::Image::drawTiled):
63819         * platform/graphics/cg/PDFDocumentImage.cpp:
63820         * platform/graphics/cg/PDFDocumentImage.h:
63821         * platform/graphics/svg/SVGImage.cpp:
63822         (WebCore::SVGImage::nativeImageForCurrentFrame):
63823         * platform/graphics/svg/SVGImage.h:
63825 2007-01-17  Rob Buis  <buis@kde.org>
63827         Reviewed by Eric
63829         Add proper condition for rx attribute negative check.
63831         * ksvg2/svg/SVGRectElement.cpp:
63832         (WebCore::SVGRectElement::parseMappedAttribute):
63834 2007-01-17  Lars Knoll <lars@trolltech.com>
63836         Reviewed by Zack
63838         change all notImplemented() macros to use qDebug
63839         instead of fprintf(stder, ...)
63841         * loader/qt/DocumentLoaderQt.cpp:
63842         * loader/qt/FrameLoaderQt.cpp:
63843         * page/qt/EventHandlerQt.cpp:
63844         * page/qt/FrameQt.cpp:
63845         * platform/graphics/qt/GraphicsContextQt.cpp:
63846         * platform/graphics/qt/IconQt.cpp:
63847         * platform/network/qt/ResourceHandleManagerQt.cpp:
63848         * platform/network/qt/ResourceHandleQt.cpp:
63849         * platform/qt/CursorQt.cpp:
63850         * platform/qt/FileChooserQt.cpp:
63851         * platform/qt/MimeTypeRegistryQt.cpp:
63852         * platform/qt/PageQt.cpp: Removed.
63853         * platform/qt/PopupMenuQt.cpp:
63854         * platform/qt/ScrollViewQt.cpp:
63855         * platform/qt/TemporaryLinkStubs.cpp:
63856         * platform/qt/TextBoundaries.cpp:
63857         * platform/qt/WidgetQt.cpp:
63859 2007-01-16  Brady Eidson  <beidson@apple.com>
63861         Reviewed by Oliver
63863         A few enhancements to the HTTP Auth architecture
63865         * platform/network/ProtectionSpace.cpp:
63866         (WebCore::ProtectionSpace::isProxy):
63867         (WebCore::ProtectionSpace::receivesCredentialSecurely):
63868         * platform/network/ProtectionSpace.h:
63870 2007-01-16  Alice Liu  <alice.liu@apple.com>
63872         Reviewed by harrison.
63874         Fixed <rdar://problem/4921134> WebKit needs extensible cut/copy to allow additional types to be written to pasteboard
63876         * WebCore.xcodeproj/project.pbxproj:
63877         * bridge/EditorClient.h:
63878         * editing/Editor.cpp:
63879         (WebCore::Editor::copy):
63880         (WebCore::Editor::didWriteSelectionToPasteboard):
63881         * editing/Editor.h:
63882         * platform/graphics/svg/SVGImageEmptyClients.h:
63883         (WebCore::SVGEmptyEditorClient::didWriteSelectionToPasteboard):
63885 2007-01-16  Justin Garcia  <justin.garcia@apple.com>
63887         Reviewed by harrison
63888         
63889         <rdar://problem/4747450>
63890         Gmail Editor: Caret doesn't always position itself after list marker
63891         <rdar://problem/4917055>
63892         GMail Editor: A hang can occur when attempting to apply list styling to selected indented text
63894         * editing/TextIterator.cpp:
63895         (WebCore::TextIterator::rangeFromLocationAndLength): Use VisiblePositions
63896         to compute the end of a run for emitted '\n's, because it's often wrong
63897         in that case.
63899 2007-01-16  Darin Adler  <darin@apple.com>
63901         - quick lame attempt to get Qt compiling again
63903         * platform/qt/ContextMenuQt.cpp: Removed show() function.
63905 2007-01-17  Nicholas Shanks  <contact@nickshanks.com>
63907         Reviewed by Darin.
63909         * platform/network/ResourceRequest.h:
63910         (WebCore::ResourceRequest::setHTTPAccept): Correct argument name.
63912 2007-01-16  Beth Dakin  <bdakin@apple.com>
63914         Reviewed by Adam.
63916         Get rid of show() and hide() since they don't do anything.
63918         * page/ContextMenuController.cpp:
63919         (WebCore::ContextMenuController::handleContextMenuEvent):
63920         * platform/ContextMenu.h:
63921         * platform/mac/ContextMenuMac.mm:
63923 2007-01-16  Lars Knoll <lars@trolltech.com>
63925         Reviewed by Zack
63927         Cleaned up the way we create native widgets. They are
63928         now not created in WebCore anymore, but in the new
63929         Qt API to WebKit.
63931         Fix a compile issue in the ResourceHandleManager.
63933         * WebCore.pro:
63934         * platform/ScrollView.h:
63935         * platform/Widget.h:
63936         (WebCore::ResourceHandleManager::cancel):
63937         * platform/qt/ScrollViewCanvasQt.cpp:
63938         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
63939         (WebCore::ScrollViewCanvasQt::paintEvent):
63940         (WebCore::ScrollViewCanvasQt::mouseMoveEvent):
63941         (WebCore::ScrollViewCanvasQt::mousePressEvent):
63942         (WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
63943         (WebCore::ScrollViewCanvasQt::handleKeyEvent):
63944         * platform/qt/ScrollViewCanvasQt.h:
63945         * platform/qt/ScrollViewQt.cpp:
63946         (WebCore::ScrollView::ScrollView):
63947         (WebCore::ScrollView::setScrollArea):
63948         (WebCore::ScrollView::addChild):
63949         * platform/qt/WidgetQt.cpp:
63950         * platform/network/qt/ResourceHandleManagerQt.cpp:
63952 2007-01-16  Lars Knoll <lars@trolltech.com>
63954         Reviewed by Zack
63956         Looks like ResourceHandle _has_ to do everything
63957         asynchronously if we don't want to run into
63958         lots of trouble in the loader.
63960         Implement support data: URLs.
63962         Remove some unused Qt only code in ResourceHandleClient.h
63964         * platform/network/ResourceHandleClient.h:
63965         * platform/network/qt/ResourceHandleManagerQt.cpp:
63966         (WebCore::RequestQt::setURL):
63967         (WebCore::ResourceHandleManager::add):
63968         (WebCore::ResourceHandleManager::cancel):
63969         (WebCore::ResourceHandleManager::receivedFinished):
63970         (WebCore::LoaderThread::run):
63971         (WebCore::FileLoader::request):
63972         (WebCore::FileLoader::sendData):
63973         (WebCore::FileLoader::parseDataUrl):
63974         * platform/network/qt/ResourceHandleManagerQt.h:
63976 2007-01-16  Eric Seidel  <eric@webkit.org>
63978         Reviewed by mitz.
63980         Refactor drawTiled implementations in preparation for combining them.
63981         Removed unused RoundTile code path.
63983         * platform/graphics/cg/ImageCG.cpp:
63984         (WebCore::drawPattern):
63985         (WebCore::BitmapImage::drawTiled):
63986         (WebCore::caculatePatternScale):
63988 2007-01-16  Darin Adler  <darin@apple.com>
63990         Reviewed by Mark Rowe.
63992         - removed unused field from loader
63994         * loader/loader.cpp:
63995         (WebCore::Loader::numRequests):
63996         (WebCore::Loader::cancelRequests):
63997         * loader/loader.h:
63999 2007-01-15  Rob Buis  <buis@kde.org>
64001         Reviewed by Eric.
64003         http://bugs.webkit.org/show_bug.cgi?id=12272
64004         SVG picture is clipped (edges not visible)
64006         Expose css dpi constant and use it for svg, making
64007         1in amount to 96 pixels like for html.
64009         * css/CSSPrimitiveValue.cpp:
64010         (WebCore::CSSPrimitiveValue::computeLengthFloat):
64011         (WebCore::scaleFactorForConversion):
64012         * css/csshelper.h:
64013         * ksvg2/svg/SVGLength.cpp:
64014         (WebCore::SVGLength::value):
64015         (WebCore::SVGLength::setValue):
64016         * ksvg2/svg/SVGLength.h:
64018 2007-01-15  Brady Eidson  <beidson@apple.com>
64020         Reviewed by Adam
64021         
64022         CFNet additions
64024         * platform/network/AuthenticationChallenge.cpp:
64025         (WebCore::operator==):
64026         * platform/network/AuthenticationChallenge.h:
64027         (WebCore::AuthenticationChallenge::sourceHandle):
64028         (WebCore::AuthenticationChallenge::cfURLAuthChallengeRef):
64029         * platform/network/ResourceError.h:
64030         * platform/network/ResourceHandle.h:
64031         * platform/network/ResourceHandleInternal.h:
64032         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
64034 2007-01-15  Eric Seidel  <eric@webkit.org>
64036         Reviewed by hyatt.
64038         Don't map attributes in namespaces other than null to CSS properties.
64039         
64040         Test: svg/custom/attribute-namespace-check.svg
64042         * ksvg2/svg/SVGStyledElement.cpp:
64043         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
64045 2007-01-15  Lars Naesbye Christensen  <lars@naesbye.dk>
64047         Reviewed by Darin.
64049         - http://bugs.webkit.org/show_bug.cgi?id=11112
64050           add a drop shadow to the hand cursor used for links
64052         * Resources/linkCursor.png: Added a drop shadow.
64054 2007-01-15  Darin Adler  <darin@apple.com>
64056         Reviewed by Adam.
64058         - fix http://bugs.webkit.org/show_bug.cgi?id=12190
64059           REGRESSION: Placeholder text does not reflect dynamic updates
64061         Test: fast/forms/placeholder-set-attribute.html
64063         * html/HTMLTextFieldInnerElement.cpp:
64064         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
64065         Call onSearch on the element since I removed it from the renderer.
64067         * rendering/RenderTextControl.h: Added explicit virtual keywords for overrides
64068         of virtual functions. Removed the unneeded onSearch function. Made the inheritance
64069         from PopupMenuClient be private, and made the overrides all private. Replaced the
64070         showPlaceholderIfNeeded and hidePlaceholderIfNeeded functions with updatePlaceholder.
64071         * rendering/RenderTextControl.cpp:
64072         (WebCore::RenderTextControl::createResultsButtonStyle): Added an assertion.
64073         (WebCore::RenderTextControl::updatePlaceholder): Added. Replaces the two
64074         functions, showPlaceholderIfNeeded and hidePlaceholderIfNeeded.
64075         (WebCore::RenderTextControl::updateFromElement): Added call to
64076         updatePlaceholder before updating the value. Also improved the structure
64077         of the function and corrected incorrect use of copy and replace.
64078         (WebCore::RenderTextControl::updateCancelButtonVisibility): Added an
64079         assertion and removed an unneeded local variable.
64080         (WebCore::RenderTextControl::subtreeHasChanged): Removed an unneeded
64081         null check and virtual function calls.
64082         (WebCore::RenderTextControl::forwardEvent): Replaced calls to the old
64083         functions with calls to updatePlaceholder.
64084         (WebCore::RenderTextControl::selectionChanged): Changed code to dispatch
64085         the select event directly -- I plan to remove the onSelect function, which
64086         was only called here.
64087         (WebCore::RenderTextControl::autosaveName): Removed too-specific cast and
64088         local variable.
64089         (WebCore::RenderTextControl::addSearchResult): Added assertion and changed
64090         variable name for clarity.
64091         (WebCore::RenderTextControl::valueChanged): Changed code to check for empty
64092         autosave name instead of null for consistency with other call sites that
64093         manage the autosave name. Also changed the code that dispatches an event
64094         to call onSearch on the input element so we don't need our own function.
64096 2007-01-15  Eric Seidel  <eric@webkit.org>
64098         Reviewed by hyatt.
64100         Fix SVGStyledElement::parseMappedAttribute to only map SVG-allowed CSS properties
64101         (i.e. width is no longer mapped to CSS for SVG)
64102         Add SVGStyledElement::mapToEntry to allow RenderStyle-sharing
64103         http://bugs.webkit.org/show_bug.cgi?id=12060
64105         * dom/MappedAttributeEntry.h:
64106         (WebCore::):
64107         * ksvg2/svg/SVGStyledElement.cpp:
64108         (WebCore::cssPropertyIdForName): new helper
64109         (WebCore::mapAttributeToCSSProperty): new helper
64110         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): new helper
64111         (WebCore::SVGStyledElement::mapToEntry): added.
64112         (WebCore::SVGStyledElement::parseMappedAttribute): use cssPropertyIdForSVGAttributeName
64113         * ksvg2/svg/SVGStyledElement.h:
64115 2007-01-15  Eric Seidel  <eric@webkit.org>
64117         Reviewed by bdash.
64119         Update header guards to follow new style guidelines using new clean-header-guards script.
64121         * bindings/js/JSHTMLElementWrapperFactory.h:
64122         * bindings/js/JSHTMLInputElementBase.h:
64123         * bindings/js/JSHTMLOptionElementConstructor.h:
64124         * bindings/js/JSSVGElementWrapperFactory.h:
64125         * bindings/js/JSSVGPODTypeWrapper.h:
64126         * bindings/js/JSXMLHttpRequest.h:
64127         * bindings/js/JSXSLTProcessor.h:
64128         * bindings/js/kjs_binding.h:
64129         * bindings/js/kjs_css.h:
64130         * bindings/js/kjs_dom.h:
64131         * bindings/js/kjs_domnode.h:
64132         * bindings/js/kjs_events.h:
64133         * bindings/js/kjs_html.h:
64134         * bindings/js/kjs_navigator.h:
64135         * bindings/js/kjs_proxy.h:
64136         * bindings/js/kjs_traversal.h:
64137         * bindings/js/kjs_window.h:
64138         * bridge/EditorClient.h:
64139         * bridge/History.h:
64140         * css/CSSStyleSheet.h:
64141         * css/CSSValue.h:
64142         * css/CSSValueList.h:
64143         * css/DashboardRegion.h:
64144         * css/FontFamilyValue.h:
64145         * css/FontValue.h:
64146         * css/MediaFeatureNames.h:
64147         * css/MediaList.h:
64148         * css/Pair.h:
64149         * css/RectImpl.h:
64150         * css/ShadowValue.h:
64151         * css/StyleBase.h:
64152         * css/StyleList.h:
64153         * css/StyleSheet.h:
64154         * css/StyleSheetList.h:
64155         * css/cssstyleselector.h:
64156         * dom/BeforeTextInsertedEvent.h:
64157         * dom/CDATASection.h:
64158         * dom/CharacterData.h:
64159         * dom/ChildNodeList.h:
64160         * dom/Comment.h:
64161         * dom/DOMImplementation.h:
64162         * dom/DocPtr.h:
64163         * dom/Document.h:
64164         * dom/DocumentFragment.h:
64165         * dom/DocumentMarker.h:
64166         * dom/DocumentType.h:
64167         * dom/EditingText.h:
64168         * dom/Entity.h:
64169         * dom/EntityReference.h:
64170         * dom/EventNames.h:
64171         * dom/EventTargetNode.h:
64172         * dom/NameNodeList.h:
64173         * dom/NamedNodeMap.h:
64174         * dom/Node.h:
64175         * dom/NodeList.h:
64176         * dom/Notation.h:
64177         * dom/Position.h:
64178         * dom/ProcessingInstruction.h:
64179         * dom/Range.h:
64180         * dom/StyleElement.h:
64181         * dom/Text.h:
64182         * editing/AppendNodeCommand.h:
64183         * editing/ApplyStyleCommand.h:
64184         * editing/BreakBlockquoteCommand.h:
64185         * editing/CommandByName.h:
64186         * editing/CompositeEditCommand.h:
64187         * editing/DeleteButton.h:
64188         * editing/DeleteButtonController.h:
64189         * editing/DeleteFromTextNodeCommand.h:
64190         * editing/DeleteSelectionCommand.h:
64191         * editing/InsertIntoTextNodeCommand.h:
64192         * editing/InsertLineBreakCommand.h:
64193         * editing/InsertNodeBeforeCommand.h:
64194         * editing/InsertParagraphSeparatorCommand.h:
64195         * editing/InsertTextCommand.h:
64196         * editing/JoinTextNodesCommand.h:
64197         * editing/MergeIdenticalElementsCommand.h:
64198         * editing/ModifySelectionListLevel.h:
64199         * editing/MoveSelectionCommand.h:
64200         * editing/RemoveCSSPropertyCommand.h:
64201         * editing/RemoveNodeAttributeCommand.h:
64202         * editing/RemoveNodeCommand.h:
64203         * editing/RemoveNodePreservingChildrenCommand.h:
64204         * editing/ReplaceSelectionCommand.h:
64205         * editing/SetNodeAttributeCommand.h:
64206         * editing/SplitElementCommand.h:
64207         * editing/SplitTextNodeCommand.h:
64208         * editing/SplitTextNodeContainingElementCommand.h:
64209         * editing/TextGranularity.h:
64210         * editing/TypingCommand.h:
64211         * editing/WrapContentsInDummySpanCommand.h:
64212         * history/BackForwardList.h:
64213         * history/HistoryItem.h:
64214         * history/HistoryItemTimer.h:
64215         * history/PageCache.h:
64216         * html/CanvasGradient.h:
64217         * html/CanvasPattern.h:
64218         * html/CanvasRenderingContext2D.h:
64219         * html/CanvasStyle.h:
64220         * html/FormDataList.h:
64221         * html/HTMLAnchorElement.h:
64222         * html/HTMLAppletElement.h:
64223         * html/HTMLAreaElement.h:
64224         * html/HTMLBRElement.h:
64225         * html/HTMLBaseElement.h:
64226         * html/HTMLBaseFontElement.h:
64227         * html/HTMLBlockquoteElement.h:
64228         * html/HTMLBodyElement.h:
64229         * html/HTMLButtonElement.h:
64230         * html/HTMLCanvasElement.h:
64231         * html/HTMLCollection.h:
64232         * html/HTMLDListElement.h:
64233         * html/HTMLDirectoryElement.h:
64234         * html/HTMLDivElement.h:
64235         * html/HTMLElement.h:
64236         * html/HTMLElementFactory.h:
64237         * html/HTMLEmbedElement.h:
64238         * html/HTMLFieldSetElement.h:
64239         * html/HTMLFontElement.h:
64240         * html/HTMLFormCollection.h:
64241         * html/HTMLFormElement.h:
64242         * html/HTMLFrameSetElement.h:
64243         * html/HTMLGenericFormElement.h:
64244         * html/HTMLHRElement.h:
64245         * html/HTMLHeadElement.h:
64246         * html/HTMLHeadingElement.h:
64247         * html/HTMLHtmlElement.h:
64248         * html/HTMLImageElement.h:
64249         * html/HTMLImageLoader.h:
64250         * html/HTMLInputElement.h:
64251         * html/HTMLIsIndexElement.h:
64252         * html/HTMLKeygenElement.h:
64253         * html/HTMLLIElement.h:
64254         * html/HTMLLabelElement.h:
64255         * html/HTMLLegendElement.h:
64256         * html/HTMLLinkElement.h:
64257         * html/HTMLMapElement.h:
64258         * html/HTMLMarqueeElement.h:
64259         * html/HTMLMenuElement.h:
64260         * html/HTMLMetaElement.h:
64261         * html/HTMLModElement.h:
64262         * html/HTMLNameCollection.h:
64263         * html/HTMLOListElement.h:
64264         * html/HTMLObjectElement.h:
64265         * html/HTMLOptGroupElement.h:
64266         * html/HTMLOptionElement.h:
64267         * html/HTMLOptionsCollection.h:
64268         * html/HTMLParagraphElement.h:
64269         * html/HTMLParamElement.h:
64270         * html/HTMLParser.h:
64271         * html/HTMLPlugInElement.h:
64272         * html/HTMLPreElement.h:
64273         * html/HTMLQuoteElement.h:
64274         * html/HTMLScriptElement.h:
64275         * html/HTMLSelectElement.h:
64276         * html/HTMLStyleElement.h:
64277         * html/HTMLTableCaptionElement.h:
64278         * html/HTMLTableCellElement.h:
64279         * html/HTMLTableColElement.h:
64280         * html/HTMLTableElement.h:
64281         * html/HTMLTablePartElement.h:
64282         * html/HTMLTableRowElement.h:
64283         * html/HTMLTableSectionElement.h:
64284         * html/HTMLTextAreaElement.h:
64285         * html/HTMLTextFieldInnerElement.h:
64286         * html/HTMLTitleElement.h:
64287         * html/HTMLUListElement.h:
64288         * ksvg2/css/SVGRenderStyle.h:
64289         * ksvg2/css/SVGRenderStyleDefs.h:
64290         * ksvg2/events/JSSVGLazyEventListener.h:
64291         * ksvg2/events/SVGZoomEvent.h:
64292         * ksvg2/misc/KCanvasRenderingStyle.h:
64293         * ksvg2/misc/PointerEventsHitRules.h:
64294         * ksvg2/misc/SVGDocumentExtensions.h:
64295         * ksvg2/misc/SVGImageLoader.h:
64296         * ksvg2/misc/TimeScheduler.h:
64297         * ksvg2/svg/GradientAttributes.h:
64298         * ksvg2/svg/LinearGradientAttributes.h:
64299         * ksvg2/svg/PatternAttributes.h:
64300         * ksvg2/svg/RadialGradientAttributes.h:
64301         * ksvg2/svg/SVGAElement.h:
64302         * ksvg2/svg/SVGAngle.h:
64303         * ksvg2/svg/SVGAnimateColorElement.h:
64304         * ksvg2/svg/SVGAnimateElement.h:
64305         * ksvg2/svg/SVGAnimateMotionElement.h:
64306         * ksvg2/svg/SVGAnimateTransformElement.h:
64307         * ksvg2/svg/SVGAnimatedPathData.h:
64308         * ksvg2/svg/SVGAnimatedPoints.h:
64309         * ksvg2/svg/SVGAnimatedTemplate.h:
64310         * ksvg2/svg/SVGAnimationElement.h:
64311         * ksvg2/svg/SVGCircleElement.h:
64312         * ksvg2/svg/SVGClipPathElement.h:
64313         * ksvg2/svg/SVGColor.h:
64314         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
64315         * ksvg2/svg/SVGCursorElement.h:
64316         * ksvg2/svg/SVGDOMImplementation.h:
64317         * ksvg2/svg/SVGDefsElement.h:
64318         * ksvg2/svg/SVGDescElement.h:
64319         * ksvg2/svg/SVGDocument.h:
64320         * ksvg2/svg/SVGElement.h:
64321         * ksvg2/svg/SVGElementInstance.h:
64322         * ksvg2/svg/SVGElementInstanceList.h:
64323         * ksvg2/svg/SVGEllipseElement.h:
64324         * ksvg2/svg/SVGExternalResourcesRequired.h:
64325         * ksvg2/svg/SVGFEBlendElement.h:
64326         * ksvg2/svg/SVGFEColorMatrixElement.h:
64327         * ksvg2/svg/SVGFEComponentTransferElement.h:
64328         * ksvg2/svg/SVGFECompositeElement.h:
64329         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
64330         * ksvg2/svg/SVGFEDisplacementMapElement.h:
64331         * ksvg2/svg/SVGFEDistantLightElement.h:
64332         * ksvg2/svg/SVGFEFloodElement.h:
64333         * ksvg2/svg/SVGFEFuncAElement.h:
64334         * ksvg2/svg/SVGFEFuncBElement.h:
64335         * ksvg2/svg/SVGFEFuncGElement.h:
64336         * ksvg2/svg/SVGFEFuncRElement.h:
64337         * ksvg2/svg/SVGFEGaussianBlurElement.h:
64338         * ksvg2/svg/SVGFEImageElement.h:
64339         * ksvg2/svg/SVGFELightElement.h:
64340         * ksvg2/svg/SVGFEMergeElement.h:
64341         * ksvg2/svg/SVGFEMergeNodeElement.h:
64342         * ksvg2/svg/SVGFEOffsetElement.h:
64343         * ksvg2/svg/SVGFEPointLightElement.h:
64344         * ksvg2/svg/SVGFESpecularLightingElement.h:
64345         * ksvg2/svg/SVGFESpotLightElement.h:
64346         * ksvg2/svg/SVGFETileElement.h:
64347         * ksvg2/svg/SVGFETurbulenceElement.h:
64348         * ksvg2/svg/SVGFilterElement.h:
64349         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
64350         * ksvg2/svg/SVGFitToViewBox.h:
64351         * ksvg2/svg/SVGForeignObjectElement.h:
64352         * ksvg2/svg/SVGGElement.h:
64353         * ksvg2/svg/SVGGradientElement.h:
64354         * ksvg2/svg/SVGImageElement.h:
64355         * ksvg2/svg/SVGLangSpace.h:
64356         * ksvg2/svg/SVGLength.h:
64357         * ksvg2/svg/SVGLengthList.h:
64358         * ksvg2/svg/SVGLineElement.h:
64359         * ksvg2/svg/SVGLinearGradientElement.h:
64360         * ksvg2/svg/SVGList.h:
64361         * ksvg2/svg/SVGListTraits.h:
64362         * ksvg2/svg/SVGLocatable.h:
64363         * ksvg2/svg/SVGMarkerElement.h:
64364         * ksvg2/svg/SVGMaskElement.h:
64365         * ksvg2/svg/SVGMetadataElement.h:
64366         * ksvg2/svg/SVGNumberList.h:
64367         * ksvg2/svg/SVGPaint.h:
64368         * ksvg2/svg/SVGParserUtilities.h:
64369         * ksvg2/svg/SVGPathElement.h:
64370         * ksvg2/svg/SVGPathSeg.h:
64371         * ksvg2/svg/SVGPathSegArc.h:
64372         * ksvg2/svg/SVGPathSegClosePath.h:
64373         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
64374         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
64375         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
64376         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
64377         * ksvg2/svg/SVGPathSegLineto.h:
64378         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
64379         * ksvg2/svg/SVGPathSegLinetoVertical.h:
64380         * ksvg2/svg/SVGPathSegList.h:
64381         * ksvg2/svg/SVGPathSegMoveto.h:
64382         * ksvg2/svg/SVGPatternElement.h:
64383         * ksvg2/svg/SVGPointList.h:
64384         * ksvg2/svg/SVGPolyElement.h:
64385         * ksvg2/svg/SVGPolygonElement.h:
64386         * ksvg2/svg/SVGPolylineElement.h:
64387         * ksvg2/svg/SVGPreserveAspectRatio.h:
64388         * ksvg2/svg/SVGRadialGradientElement.h:
64389         * ksvg2/svg/SVGRectElement.h:
64390         * ksvg2/svg/SVGRenderingIntent.h:
64391         * ksvg2/svg/SVGSVGElement.h:
64392         * ksvg2/svg/SVGScriptElement.h:
64393         * ksvg2/svg/SVGSetElement.h:
64394         * ksvg2/svg/SVGStopElement.h:
64395         * ksvg2/svg/SVGStringList.h:
64396         * ksvg2/svg/SVGStylable.h:
64397         * ksvg2/svg/SVGStyleElement.h:
64398         * ksvg2/svg/SVGStyledElement.h:
64399         * ksvg2/svg/SVGStyledLocatableElement.h:
64400         * ksvg2/svg/SVGStyledTransformableElement.h:
64401         * ksvg2/svg/SVGSwitchElement.h:
64402         * ksvg2/svg/SVGSymbolElement.h:
64403         * ksvg2/svg/SVGTRefElement.h:
64404         * ksvg2/svg/SVGTSpanElement.h:
64405         * ksvg2/svg/SVGTests.h:
64406         * ksvg2/svg/SVGTextContentElement.h:
64407         * ksvg2/svg/SVGTextElement.h:
64408         * ksvg2/svg/SVGTextPositioningElement.h:
64409         * ksvg2/svg/SVGTitleElement.h:
64410         * ksvg2/svg/SVGTransform.h:
64411         * ksvg2/svg/SVGTransformList.h:
64412         * ksvg2/svg/SVGTransformable.h:
64413         * ksvg2/svg/SVGURIReference.h:
64414         * ksvg2/svg/SVGUnitTypes.h:
64415         * ksvg2/svg/SVGUseElement.h:
64416         * ksvg2/svg/SVGViewElement.h:
64417         * ksvg2/svg/SVGZoomAndPan.h:
64418         * loader/CachedCSSStyleSheet.h:
64419         * loader/CachedImage.h:
64420         * loader/CachedXSLStyleSheet.h:
64421         * loader/DocumentLoader.h:
64422         * loader/Request.h:
64423         * loader/SubresourceLoader.h:
64424         * loader/icon/IconDataCache.h:
64425         * loader/icon/IconDatabase.h:
64426         * loader/icon/IconLoader.h:
64427         * loader/icon/SQLDatabase.h:
64428         * loader/icon/SQLStatement.h:
64429         * loader/icon/SQLTransaction.h:
64430         * page/Frame.h:
64431         * page/FrameLoadRequest.h:
64432         * page/FrameTree.h:
64433         * page/FrameView.h:
64434         * page/PageState.h:
64435         * page/Plugin.h:
64436         * page/qt/FrameQt.h:
64437         * page/qt/FrameQtClient.h:
64438         * platform/Arena.h:
64439         * platform/ArrayImpl.h:
64440         * platform/Cursor.h:
64441         * platform/DeprecatedArray.h:
64442         * platform/DeprecatedCString.h:
64443         * platform/FileChooser.h:
64444         * platform/Font.h:
64445         * platform/FontCache.h:
64446         * platform/FontData.h:
64447         * platform/FontDescription.h:
64448         * platform/FontFamily.h:
64449         * platform/GlyphBuffer.h:
64450         * platform/GlyphMap.h:
64451         * platform/GlyphWidthMap.h:
64452         * platform/Logging.h:
64453         * platform/Pasteboard.h:
64454         * platform/PlatformString.h:
64455         * platform/PlugInInfoStore.h:
64456         * platform/PopupMenu.h:
64457         * platform/PopupMenuClient.h:
64458         * platform/ScrollBar.h:
64459         * platform/ScrollView.h:
64460         * platform/SearchPopupMenu.h:
64461         * platform/Shared.h:
64462         * platform/Sound.h:
64463         * platform/SystemTime.h:
64464         * platform/Timer.h:
64465         * platform/Widget.h:
64466         * platform/cf/RetainPtr.h:
64467         * platform/gdk/ChromeClientGdk.h:
64468         * platform/gdk/FontPlatformData.h:
64469         * platform/gdk/FrameGdk.h:
64470         * platform/gdk/KeyboardCodes.h:
64471         * platform/gdk/RenderPopupMenuGdk.h:
64472         * platform/gdk/RenderThemeGdk.h:
64473         * platform/graphics/BitmapImage.h:
64474         * platform/graphics/Color.h:
64475         * platform/graphics/FloatPoint.h:
64476         * platform/graphics/FloatPoint3D.h:
64477         * platform/graphics/FloatRect.h:
64478         * platform/graphics/Icon.h:
64479         * platform/graphics/Image.h:
64480         * platform/graphics/ImageAnimationObserver.h:
64481         * platform/graphics/ImageBuffer.h:
64482         * platform/graphics/ImageSource.h:
64483         * platform/graphics/IntPoint.h:
64484         * platform/graphics/IntRect.h:
64485         * platform/graphics/IntSize.h:
64486         * platform/graphics/IntSizeHash.h:
64487         * platform/graphics/PathTraversalState.h:
64488         * platform/graphics/Pen.h:
64489         * platform/graphics/qt/ImageDecoderQt.h:
64490         * platform/graphics/svg/SVGImage.h:
64491         * platform/graphics/svg/SVGImageEmptyClients.h:
64492         * platform/graphics/svg/SVGPaintServer.h:
64493         * platform/graphics/svg/SVGPaintServerGradient.h:
64494         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
64495         * platform/graphics/svg/SVGPaintServerPattern.h:
64496         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
64497         * platform/graphics/svg/SVGPaintServerSolid.h:
64498         * platform/graphics/svg/SVGResource.h:
64499         * platform/graphics/svg/SVGResourceClipper.h:
64500         * platform/graphics/svg/SVGResourceFilter.h:
64501         * platform/graphics/svg/SVGResourceMarker.h:
64502         * platform/graphics/svg/SVGResourceMasker.h:
64503         * platform/graphics/svg/cg/CgSupport.h:
64504         * platform/graphics/svg/filters/SVGDistantLightSource.h:
64505         * platform/graphics/svg/filters/SVGFEBlend.h:
64506         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
64507         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
64508         * platform/graphics/svg/filters/SVGFEComposite.h:
64509         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
64510         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
64511         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
64512         * platform/graphics/svg/filters/SVGFEFlood.h:
64513         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
64514         * platform/graphics/svg/filters/SVGFEImage.h:
64515         * platform/graphics/svg/filters/SVGFEMerge.h:
64516         * platform/graphics/svg/filters/SVGFEMorphology.h:
64517         * platform/graphics/svg/filters/SVGFEOffset.h:
64518         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
64519         * platform/graphics/svg/filters/SVGFETile.h:
64520         * platform/graphics/svg/filters/SVGFETurbulence.h:
64521         * platform/graphics/svg/filters/SVGFilterEffect.h:
64522         * platform/graphics/svg/filters/SVGLightSource.h:
64523         * platform/graphics/svg/filters/SVGPointLightSource.h:
64524         * platform/graphics/svg/filters/SVGSpotLightSource.h:
64525         * platform/mac/FontPlatformData.h:
64526         * platform/mac/PlatformScrollBar.h:
64527         * platform/network/AuthenticationChallenge.h:
64528         * platform/network/Credential.h:
64529         * platform/network/HTTPHeaderMap.h:
64530         * platform/network/ProtectionSpace.h:
64531         * platform/network/ResourceError.h:
64532         * platform/network/ResourceRequest.h:
64533         * platform/network/ResourceResponse.h:
64534         * platform/network/cf/FormDataStreamCFNet.h:
64535         * platform/network/cf/ResourceRequestCFNet.h:
64536         * platform/network/cf/ResourceResponseCFNet.h:
64537         * platform/network/gdk/ResourceHandleManager.h:
64538         * platform/network/mac/AuthenticationMac.h:
64539         * platform/network/mac/FormDataStreamMac.h:
64540         * platform/network/qt/ResourceHandleManagerKDE.h:
64541         * platform/network/qt/ResourceHandleManagerQt.h:
64542         * platform/network/win/ResourceHandleWin.h:
64543         * platform/qt/FontPlatformData.h:
64544         * platform/qt/KeyboardCodes.h:
64545         * platform/qt/PlatformScrollBar.h:
64546         * platform/qt/ScrollViewCanvasQt.h:
64547         * platform/qt/SharedTimerQt.h:
64548         * platform/win/FontPlatformData.h:
64549         * platform/win/PlatformScrollBar.h:
64550         * rendering/AutoTableLayout.h:
64551         * rendering/HitTestRequest.h:
64552         * rendering/HitTestResult.h:
64553         * rendering/InlineBox.h:
64554         * rendering/InlineFlowBox.h:
64555         * rendering/Length.h:
64556         * rendering/ListMarkerBox.h:
64557         * rendering/RenderBox.h:
64558         * rendering/RenderMenuList.h:
64559         * rendering/RenderPart.h:
64560         * rendering/RenderPartObject.h:
64561         * rendering/RenderPath.h:
64562         * rendering/RenderReplaced.h:
64563         * rendering/RenderSVGContainer.h:
64564         * rendering/RenderSVGImage.h:
64565         * rendering/RenderSVGInline.h:
64566         * rendering/RenderSVGInlineText.h:
64567         * rendering/RenderSVGTSpan.h:
64568         * rendering/RenderSVGText.h:
64569         * rendering/RenderStyle.h:
64570         * rendering/RenderTableCol.h:
64571         * rendering/RenderThemeWin.h:
64572         * rendering/bidi.h:
64573         * xml/DOMParser.h:
64574         * xml/XPathEvaluator.h:
64575         * xml/XPathExpression.h:
64576         * xml/XPathExpressionNode.h:
64577         * xml/XPathFunctions.h:
64578         * xml/XPathNSResolver.h:
64579         * xml/XPathNamespace.h:
64580         * xml/XPathParser.h:
64581         * xml/XPathPath.h:
64582         * xml/XPathPredicate.h:
64583         * xml/XPathResult.h:
64584         * xml/XPathStep.h:
64585         * xml/XPathUtil.h:
64586         * xml/XPathValue.h:
64587         * xml/XPathVariableReference.h:
64588         * xml/XSLImportRule.h:
64589         * xml/XSLStyleSheet.h:
64590         * xml/XSLTProcessor.h:
64591         * xml/xmlhttprequest.h:
64593 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
64595         Build fix.
64596         
64597         * loader/ProgressTracker.cpp:
64599 2007-01-15  Lars Knoll <lars@trolltech.com>
64601         Fix the Qt build
64603         * WebCore.pro:
64605 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
64607         Reviewed by Darin.
64609         * loader/ProgressTracker.cpp:
64610         Set finalProgressValue to its value explicitly instead of calculating it 
64611         (which causes a global initializer to be generated).
64613 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
64615         Reviewed by Darin and Adam.
64617         Move progress tracking down to WebCore.
64618         
64619         * WebCore.exp:
64620         Add ProgressTracker::estimatedProgress() to be used by WebKit.
64621         
64622         * WebCore.xcodeproj/project.pbxproj:
64623         Add ProgressTracker.[cpp|h]
64624         
64625         * loader/FrameLoader.cpp:
64626         (WebCore::FrameLoader::prepareForLoadStart):
64627         (WebCore::FrameLoader::clearProvisionalLoad):
64628         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
64629         (WebCore::FrameLoader::startLoading):
64630         (WebCore::FrameLoader::didReceiveResponse):
64631         (WebCore::FrameLoader::didReceiveData):
64632         (WebCore::FrameLoader::didFailToLoad):
64633         (WebCore::FrameLoader::requestFromDelegate):
64634         (WebCore::FrameLoader::didFinishLoad):
64635         Call directly to the progress tracker instead of through the frame loader client.
64636         
64637         * loader/FrameLoaderClient.h:
64638         Get rid of the old methods and add new methods for tracking progress.
64639         
64640         * loader/ProgressTracker.cpp: Added.
64641         (WebCore::ProgressItem::ProgressItem):
64642         (WebCore::ProgressTracker::ProgressTracker):
64643         (WebCore::ProgressTracker::~ProgressTracker):
64644         (WebCore::ProgressTracker::estimatedProgress):
64645         (WebCore::ProgressTracker::reset):
64646         (WebCore::ProgressTracker::progressStarted):
64647         (WebCore::ProgressTracker::progressCompleted):
64648         (WebCore::ProgressTracker::finalProgressComplete):
64649         (WebCore::ProgressTracker::incrementProgress):
64650         (WebCore::ProgressTracker::completeProgress):
64651         (WebCore::ProgressTracker::createUniqueIdentifier):
64652         * loader/ProgressTracker.h: Added.
64653         New per page class which tracks progress.
64654         
64655         * loader/ResourceLoader.cpp:
64656         (WebCore::ResourceLoader::willSendRequest):
64657         * page/Page.cpp:
64658         (WebCore::Page::Page):
64659         * page/Page.h:
64660         (WebCore::Page::progress):
64661         Move createUniqueIdentifier to ProgressTracker, add ProgressTracker object to Page.
64662         
64663         * platform/graphics/svg/SVGImageEmptyClients.h:
64664         (WebCore::SVGEmptyFrameLoaderClient::willChangeEstimatedProgress):
64665         (WebCore::SVGEmptyFrameLoaderClient::didChangeEstimatedProgress):
64666         (WebCore::SVGEmptyFrameLoaderClient::postProgressStartedNotification):
64667         (WebCore::SVGEmptyFrameLoaderClient::postProgressEstimateChangedNotification):
64668         (WebCore::SVGEmptyFrameLoaderClient::postProgressFinishedNotification):
64669         Add new methods, get rid of the old ones.
64671 2007-01-15  Adam Roben  <aroben@apple.com>
64673         Reviewed by Anders.
64675         Fix comment.
64677         * html/HTMLScriptElement.cpp:
64678         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript):
64680 2007-01-15  John Sullivan  <sullivan@apple.com>
64682         * platform/ContextMenu.cpp:
64683         (WebCore::ContextMenu::checkOrEnableIfNeeded):
64684         Leopard build fix; don't declare one of the case values twice
64686 2007-01-15  Mitz Pettel  <mitz@webkit.org>
64688         Reviewed by Darin.
64690         - fix http://bugs.webkit.org/show_bug.cgi?id=8604
64691           rowspan does not work when set through javascript
64693         Covered by existing tests.
64695         * rendering/RenderTableCell.cpp:
64696         (WebCore::RenderTableCell::updateFromElement): Mark the section for grid recalc
64697         if row span or column span change.
64699 2007-01-15  Adam Roben  <aroben@apple.com>
64701         Reviewed by Darin.
64703         Small context menu fixes.
64705         * platform/ContextMenu.cpp:
64706         (WebCore::ContextMenu::populate): Fix typo.
64707         (WebCore::ContextMenu::checkOrEnableIfNeeded): Disabled "No Guesses
64708         Found", and added all enum values explicitly.
64710 2007-01-15  Alexey Proskuryakov  <ap@webkit.org>
64712         Reviewed by Darin.
64714         http://bugs.webkit.org/show_bug.cgi?id=6272
64715         XMLHttpRequest freezes on getting a missing document with overridden Content-Length
64717         http://bugs.webkit.org/show_bug.cgi?id=6212
64718         Investigate disallowing some XMLHttpRequest headers from being set via setRequestHeader.
64720         Tests:
64721         - http/tests/xmlhttprequest/connection-error-sync.html
64722         - http/tests/xmlhttprequest/set-dangerous-headers.html
64724         * bindings/js/kjs_binding.cpp:
64725         (KJS::):
64726         (KJS::setDOMException): Added support for NETWORK_ERR. Changed the temporary 
64727         PERMISSION_DENIED error into a special case.
64729         * loader/FrameLoader.cpp:
64730         (WebCore::FrameLoader::loadResourceSynchronously):
64731         * loader/FrameLoader.h:
64732         Return the error object to the caller. Removed an extra local variable for error, 
64733         which shadowed the one from enclosing block.
64735         * dom/XMLTokenizer.cpp:
64736         (WebCore::openFunc): 
64737         * xml/XSLTProcessor.cpp:
64738         (WebCore::docLoaderFunc): 
64739         Updated to pass an error object (currently ignored).
64741         * xml/xmlhttprequest.cpp:
64742         (WebCore::canSetRequestHeader): Added. The headers to block include the ones from 
64743         the current XMLHttpRequest draft plus "Via", which is blocked by Firefox.
64744         (WebCore::XMLHttpRequest::send): Raise an exception if a sync request results in 
64745         an error.
64746         (WebCore::XMLHttpRequest::setRequestHeader): Call canSetRequestHeader().
64747         * xml/xmlhttprequest.h:
64748         (WebCore::): Added NETWORK_ERR and a comment about PERMISSION_DENIED.
64750 2007-01-15  Zack Rusin  <zack@kde.org>
64752         Optimizing rendering on the Qt platform. Mainly
64753         switching from client side QImage to QPixmap's.
64754         Also cleaning the the ScrollViewCanvasQt code
64755         quite a bit.
64757         * platform/graphics/ImageSource.h: use QPixmap
64758         * platform/graphics/qt/GraphicsContextQt.cpp:
64759         (WebCore::TransparencyLayer::TransparencyLayer):
64760         (WebCore::GraphicsContext::clip): clip rects when you can
64761         * platform/graphics/qt/ImageDecoderQt.cpp:
64762         (WebCore::ImageDecoderQt::ImageData::ImageData):
64763         (WebCore::ImageDecoderQt::ReadContext::read):
64764         (WebCore::ImageDecoderQt::ReadContext::readImageLines):
64765         (WebCore::ImageDecoderQt::imageAtIndex):
64766         * platform/graphics/qt/ImageDecoderQt.h: use QPixmap
64767         * platform/graphics/qt/ImageQt.cpp: QPixmap instead of QImage
64768         (WebCore::BitmapImage::draw):
64769         (WebCore::BitmapImage::drawTiled):
64770         * platform/graphics/qt/ImageSourceQt.cpp:
64771         (WebCore::):
64772         (WebCore::ImageSource::createFrameAtIndex):
64773         (WebCore::ImageSource::frameHasAlphaAtIndex):
64774         * platform/qt/ScrollViewCanvasQt.cpp: clean up
64775         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
64776         (WebCore::ScrollViewCanvasQt::updateFrameView):
64777         (WebCore::ScrollViewCanvasQt::paintEvent):
64778         (WebCore::ScrollViewCanvasQt::mouseMoveEvent):
64779         (WebCore::ScrollViewCanvasQt::mousePressEvent):
64780         (WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
64781         (WebCore::ScrollViewCanvasQt::handleKeyEvent):
64782         * platform/qt/ScrollViewCanvasQt.h:
64783         * platform/qt/ScrollViewQt.cpp: remove hacks
64784         (WebCore::ScrollView::ScrollView):
64785         (WebCore::ScrollView::setParentWidget):
64786         (WebCore::ScrollView::updateContents):
64788 2007-01-15  Lars Knoll <lars@trolltech.com>
64790         Reviewed by Zack
64792         Fix weird crashes when running the layout tests. The
64793         reason was that I used KURL (and thus DeprecatedString)
64794         in a thread. Unfortunately that class is not threadsafe
64795         at all.
64797         * platform/network/qt/ResourceHandleManagerQt.cpp:
64798         (WebCore::RequestQt::RequestQt):
64799         (WebCore::RequestQt::setURL):
64800         (WebCore::ResourceHandleManager::add):
64801         (WebCore::ResourceHandleManager::cancel):
64802         (WebCore::ResourceHandleManager::receivedResponse):
64803         (WebCore::FileLoader::request):
64804         (WebCore::HostInfo::HostInfo):
64805         (WebCore::NetworkLoader::request):
64806         (WebCore::NetworkLoader::cancel):
64807         * platform/network/qt/ResourceHandleManagerQt.h:
64808         (WebCore::HostInfo::HostInfo):
64809         (WebCore::HostInfo::isLocalFile):
64811 2007-01-15  Eric Seidel  <eric@webkit.org>
64813         Reviewed by rwlbuis.
64815         Make isValid check not malloc 3 SVGStringLists for every element.
64816         
64817         No test possible, performance fix only.
64819         * ksvg2/svg/SVGTests.cpp:
64820         (WebCore::SVGTests::isValid):
64822 2007-01-15  Rob Buis  <buis@kde.org>
64824         Reviewed by Eric.
64826         Remove unused member var.
64828         * ksvg2/svg/SVGStyledElement.h:
64830 2007-01-15  Rob Buis  <buis@kde.org>
64832         Reviewed by Eric.
64834         http://bugs.webkit.org/show_bug.cgi?id=12069
64835         Hit detection fails under some viewbox constraints
64837         Do not take viewBox into account when hit testing svg container.
64839         * rendering/RenderSVGContainer.cpp:
64840         (WebCore::RenderSVGContainer::nodeAtPoint):
64842 2007-01-15  David Hyatt  <hyatt@apple.com>
64844         Fix  for 12275, negative margins confuse page breaks.
64846         Reviewed by Eric
64848         * rendering/RenderBlock.cpp:
64849         (WebCore::RenderBlock::paintChildren):
64851 2007-01-15  Eric Seidel  <eric@webkit.org>
64853         Reviewed by mjs.
64854         
64855         SVG gradients do not notice stop additions
64856         http://bugs.webkit.org/show_bug.cgi?id=12192
64858         Test: svg/custom/gradient-add-stops.svg
64860         * ksvg2/svg/SVGGradientElement.cpp:
64861         (WebCore::SVGGradientElement::childrenChanged):
64862         * ksvg2/svg/SVGGradientElement.h:
64864 2007-01-14  David Hyatt  <hyatt@apple.com>
64866         Fix for bug 10356, positioning doesn't work with <svg> elements in XHTML.  Change the requiresLayer
64867         check to use the DOM, since the old check would fail if the parent block had no element.
64869         Reviewed by Eric
64871         Added svg/custom/relative-positioning.html (absolute/fixed too)
64873         * rendering/RenderSVGContainer.cpp:
64874         (WebCore::RenderSVGContainer::requiresLayer):
64876 2007-01-14  Eric Seidel  <eric@webkit.org>
64878         Reviewed by hyatt.
64879         
64880         SVG does not correctly handle float: left
64881         http://bugs.webkit.org/show_bug.cgi?id=12210
64883         Test: svg/custom/svg-float-border-padding.xml
64885         * rendering/RenderSVGContainer.cpp:
64886         (WebCore::RenderSVGContainer::paint):
64888 2007-01-14  David Hyatt  <hyatt@apple.com>
64890         More work to fix 10145, regression where form elements don't break properly.  Make sure to really use
64891         the parent of the replaced element's whitespace value everywhere.
64893         Reviewed by olliej
64895         fast/replaced/three-selects-break.html
64897         * rendering/bidi.cpp:
64898         (WebCore::RenderBlock::findNextLineBreak):
64900 2007-01-14  Sam Weinig  <sam@webkit.org>
64902         Reviewed by Darin and then by Mitz.
64904         Patch for http://bugs.webkit.org/show_bug.cgi?id=12228
64905         Cleanup assorted CSS classes
64907         * css/CSSBorderImageValue.cpp:
64908         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
64909         (WebCore::CSSBorderImageValue::cssText):
64910         * css/CSSBorderImageValue.h:
64911         * css/CSSComputedStyleDeclaration.cpp:
64912         (WebCore::valueForLength):
64913         (WebCore::valueForBorderStyle):
64914         (WebCore::valueForTextAlign):
64915         (WebCore::valueForShadow):
64916         (WebCore::getPositionOffsetValue):
64917         (WebCore::CSSComputedStyleDeclaration::cssText):
64918         (WebCore::primitiveValueFromLength):
64919         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
64920         (WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
64921         (WebCore::CSSComputedStyleDeclaration::removeProperty):
64922         (WebCore::CSSComputedStyleDeclaration::setProperty):
64923         (WebCore::CSSComputedStyleDeclaration::length):
64924         (WebCore::CSSComputedStyleDeclaration::item):
64925         * css/CSSComputedStyleDeclaration.h:
64926         * css/CSSCursorImageValue.cpp:
64927         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
64928         * css/CSSCursorImageValue.h:
64929         * css/CSSGrammar.y:
64930         * css/CSSImageValue.cpp:
64931         * css/CSSImageValue.h:
64932         * css/CSSInheritedValue.cpp:
64933         * css/CSSInheritedValue.h:
64934         * css/CSSInitialValue.cpp:
64935         * css/CSSInitialValue.h:
64936         * css/CSSMutableStyleDeclaration.cpp:
64937         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
64938         (WebCore::CSSMutableStyleDeclaration::operator=):
64939         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
64940         (WebCore::CSSMutableStyleDeclaration::get4Values):
64941         (WebCore::CSSMutableStyleDeclaration::getShorthandValue):
64942         (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
64943         (WebCore::CSSMutableStyleDeclaration::removeProperty):
64944         (WebCore::CSSMutableStyleDeclaration::setChanged):
64945         (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
64946         (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
64947         (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
64948         (WebCore::CSSMutableStyleDeclaration::setProperty):
64949         (WebCore::CSSMutableStyleDeclaration::setImageProperty):
64950         (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
64951         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
64952         (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
64953         (WebCore::CSSMutableStyleDeclaration::cssText):
64954         (WebCore::CSSMutableStyleDeclaration::merge):
64955         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
64956         * css/CSSMutableStyleDeclaration.h:
64957         (WebCore::CSSMutableStyleDeclaration::setProperty):
64958         (WebCore::CSSMutableStyleDeclaration::removeProperty):
64959         * css/CSSNamespace.h:
64960         (WebCore::CSSNamespace::CSSNamespace):
64961         * css/CSSPrimitiveValue.cpp:
64962         (WebCore::isCSSTokenizerIdentifier):
64963         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
64964         (WebCore::CSSPrimitiveValue::cleanup):
64965         (WebCore::CSSPrimitiveValue::computeLengthInt):
64966         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
64967         (WebCore::CSSPrimitiveValue::computeLengthShort):
64968         (WebCore::CSSPrimitiveValue::computeLengthFloat):
64969         (WebCore::CSSPrimitiveValue::setFloatValue):
64970         (WebCore::scaleFactorForConversion):
64971         (WebCore::CSSPrimitiveValue::getFloatValue):
64972         (WebCore::CSSPrimitiveValue::setStringValue):
64973         (WebCore::CSSPrimitiveValue::getStringValue):
64974         (WebCore::CSSPrimitiveValue::parseString):
64975         (WebCore::CSSPrimitiveValue::getIdent):
64976         (WebCore::CSSPrimitiveValue::cssText):
64977         * css/CSSPrimitiveValue.h:
64978         (WebCore::CSSPrimitiveValue::getCounterValue):
64979         (WebCore::CSSPrimitiveValue::getRectValue):
64980         (WebCore::CSSPrimitiveValue::getRGBColorValue):
64981         (WebCore::CSSPrimitiveValue::getPairValue):
64982         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
64983         * css/CSSProperty.cpp:
64984         (WebCore::operator==):
64985         * css/CSSProperty.h:
64986         (WebCore::CSSProperty::operator=):
64987         * css/CSSQuirkPrimitiveValue.h:
64988         (WebCore::CSSQuirkPrimitiveValue::CSSQuirkPrimitiveValue):
64989         * css/CSSRuleList.cpp:
64990         (WebCore::CSSRuleList::CSSRuleList):
64991         (WebCore::CSSRuleList::deleteRule):
64992         (WebCore::CSSRuleList::insertRule):
64993         * css/CSSRuleList.h:
64994         (WebCore::CSSRuleList::item):
64995         * css/CSSSelector.cpp:
64996         (WebCore::CSSSelector::print):
64997         (WebCore::CSSSelector::specificity):
64998         (WebCore::CSSSelector::extractPseudoType):
64999         (WebCore::CSSSelector::operator==):
65000         (WebCore::CSSSelector::selectorText):
65001         * css/CSSSelector.h:
65002         (WebCore::CSSSelector::CSSSelector):
65003         (WebCore::CSSSelector::~CSSSelector):
65004         (WebCore::CSSSelector::append):
65005         (WebCore::CSSSelector::next):
65006         (WebCore::CSSSelector::pseudoType):
65007         (WebCore::CSSSelector::hasTag):
65008         (WebCore::CSSSelector::hasAttribute):
65009         * css/CSSStyleDeclaration.cpp:
65010         (WebCore::propertyID):
65011         (WebCore::CSSStyleDeclaration::getPropertyPriority):
65012         (WebCore::CSSStyleDeclaration::getPropertyShorthand):
65013         (WebCore::CSSStyleDeclaration::isPropertyImplicit):
65014         (WebCore::CSSStyleDeclaration::setProperty):
65015         (WebCore::CSSStyleDeclaration::isPropertyName):
65016         (WebCore::CSSStyleDeclaration::parentRule):
65017         (WebCore::CSSStyleDeclaration::diff):
65018         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
65019         * css/CSSStyleDeclaration.h:
65020         * css/Counter.h:
65021         (WebCore::Counter::Counter):
65022         (WebCore::Counter::listStyleNumber):
65023         * css/csshelper.cpp:
65024         (WebCore::parseURL):
65025         * css/csshelper.h:
65026         * css/cssparser.h:
65027         (WebCore::domString):
65028         (WebCore::atomicString):
65029         (WebCore::CSSParser::operator|):
65030         * css/cssstyleselector.cpp:
65031         (WebCore::CSSStyleSelector::matchRulesForList):
65032         (WebCore::CSSStyleSelector::checkSelector):
65033         (WebCore::CSSStyleSelector::checkOneSelector):
65034         (WebCore::CSSRuleSet::addRule):
65036 2007-01-14  Mitz Pettel  <mitz@webkit.org>
65038         Reviewed by Adam.
65040         - fix http://bugs.webkit.org/show_bug.cgi?id=12264
65041           REGRESSION (r18843): Webkit crashes on 43Folders.com home page
65043         Test: fast/tokenizer/ignore-tags-in-iframe.html
65045         * html/HTMLParser.cpp:
65046         (WebCore::HTMLParser::reset): Removed unused inSelect member variable.
65047         (WebCore::HTMLParser::selectCreateErrorCheck): Ditto.
65048         (WebCore::HTMLParser::processCloseTag): Ditto.
65049         * html/HTMLParser.h: Ditto.
65050         * html/HTMLTokenizer.cpp:
65051         (WebCore::HTMLTokenizer::parseTag): Changed not to process <pre>, <listing>,
65052         <script>, <style>, <title>, <textarea> and <xmp> if the parser is in skip mode
65053         (waiting for a close tag of an element whose contents are not parsed,
65054         such as iframe).
65055         * html/HTMLTokenizer.h:
65056         (WebCore::HTMLTokenizer::State::setInStyle): Removed unused bit.
65057         (WebCore::HTMLTokenizer::State::): Ditto.
65059 2007-01-14  Alexey Proskuryakov  <ap@webkit.org>
65061         Reviewed by Darin.
65063         http://bugs.webkit.org/show_bug.cgi?id=12258
65064         fast/tokenizer/002 test broken
65066         * loader/FrameLoader.h: Added a flush parameter to write().
65067         * loader/FrameLoader.cpp:
65068         (WebCore::FrameLoader::write): Ditto.
65069         (WebCore::FrameLoader::endIfNotLoading): Instead of poorly duplicating the logic in write(),
65070         call it directly.
65072 2007-01-14  Adam Roben  <aroben@apple.com>
65074         Reviewed by Maciej.
65076         Make sure our whitelisting of the type and language attributes of the
65077         <script> element is enforced in all HTMLTokenizer/HTMLScriptElement
65078         code paths.
65080         All layout tests pass.
65082         * html/HTMLScriptElement.cpp:
65083         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): New method to
65084         determine whether the script should be executed, given its type and
65085         language attributes.
65086         (WebCore::HTMLScriptElement::evaluateScript): Check type/language
65087         before executing.
65088         * html/HTMLScriptElement.h: Added new declarations.
65089         * html/HTMLTokenizer.cpp:
65090         (WebCore::HTMLTokenizer::begin): Made scriptSrc a String. 
65091         (WebCore::HTMLTokenizer::scriptHandler): Check
65092         shouldExecuteAsJavaScript before executing.
65093         (WebCore::HTMLTokenizer::notifyFinished): Ditto.
65094         (WebCore::HTMLTokenizer::parseTag): Moved type/language checking from
65095         here to HTMLScriptElement::shouldExecuteAsJavaScript.
65096         * html/HTMLTokenizer.h: Made scriptSrc a String, and removed the
65097         javascript member.
65099 2007-01-14  David Hyatt  <hyatt@apple.com>
65101         Make sure floats are avoided if you have non-auto column property values.  Fixes the crazy layout
65102         on http://weblogs.mozillazine.org/roc.
65104         Reviewed by mitz
65106         Added fast/multicol/float-avoidance.html
65108         * rendering/RenderBlock.cpp:
65109         (WebCore::RenderBlock::avoidsFloats):
65111 2007-01-14  David Hyatt  <hyatt@apple.com>
65113         Fix for 10145, regression where line breaks are not being honored between adjacent replaced elements.
65114         When checking for break opportunities where replaced elements are involved, we ignore their white-space
65115         values and use their parents' instead.  The assumption/idea behind this change is that because the element
65116         is replaced, its white-space value is irrelevant except as a means of applying style to its interior.
65118         The CSS spec does not cover this situation, so we're implementing this based off what other browsers seem to
65119         do.
65121         Reviewed by aroben
65123         * css/CSSComputedStyleDeclaration.cpp:
65124         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
65125         * css/CSSValueKeywords.in:
65126         * css/cssparser.cpp:
65127         (WebCore::CSSParser::parseValue):
65128         * css/cssstyleselector.cpp:
65129         (WebCore::CSSStyleSelector::applyProperty):
65130         * page/EventHandler.cpp:
65131         (WebCore::EventHandler::EventHandler):
65132         (WebCore::EventHandler::clear):
65133         (WebCore::EventHandler::handleWheelEvent):
65134         * page/EventHandler.h:
65135         * rendering/RenderBox.cpp:
65136         (WebCore::RenderBox::calcHeight):
65137         * rendering/RenderLayer.cpp:
65138         (WebCore::Marquee::Marquee):
65139         (WebCore::Marquee::start):
65140         (WebCore::Marquee::updateMarqueePosition):
65141         (WebCore::Marquee::updateMarqueeStyle):
65142         (WebCore::Marquee::timerFired):
65143         * rendering/RenderLayer.h:
65144         * rendering/RenderPartObject.cpp:
65145         (WebCore::RenderPartObject::viewCleared):
65146         * rendering/RenderStyle.h:
65147         (WebCore::):
65148         * rendering/bidi.cpp:
65149         (WebCore::RenderBlock::findNextLineBreak):
65151 2007-01-13  David Hyatt  <hyatt@apple.com>
65153         While optimizing form controls and fixing their clipping, I caused this text zoom regression.  The layout
65154         of text is necessary because it needs to recalc minmaxwidth.  This is still a really unfortunate
65155         bit of code... since a lot of properties don't apply to text (e.g., borders), we're marking text renderers
65156         as dirty when we don't have to.
65158         Reviewed by mitz
65160         * rendering/RenderObject.cpp:
65161         (WebCore::RenderObject::setStyle):
65163 2007-01-13  Lars Knoll <lars@trolltech.com>
65165         Reviewed by Alexey
65167         String::format() was relying on undefined behaviour, which
65168         happened to work on lots of systems (Mac and 32bit Linux at least)
65169         but broke badly on 64bit Linux.
65170         
65171         * platform/String.cpp:
65172         (WebCore::String::format):
65174 2007-01-13  Martin Reddy  <reddy@pixar.com>
65176         Fix for bug 11924: WebCore would crash on any HTML content
65177         with a non-empty <table> tag in it on a 64-bit machine. The
65178         size_t (64bit) vs int (32bit) cast is now fixed in ensureRows,
65179         and the clients of this function have been updated to check
65180         for a false return code.
65182         Reviewed by Darin, landed by Lars
65184         * rendering/RenderTableSection.cpp:
65185         (WebCore::RenderTableSection::addChild):
65186         (WebCore::RenderTableSection::ensureRows):
65187         (WebCore::RenderTableSection::recalcCells):
65189 2007-01-13  Alexey Proskuryakov  <ap@webkit.org>
65191         Reviewed by Darin.
65193         http://bugs.webkit.org/show_bug.cgi?id=12165
65194         REGRESSION: text encoding problem at jn.sapo.pt
65196         Test: fast/encoding/script-in-head.html
65198         * loader/TextResourceDecoder.cpp:
65199         (WebCore::TextResourceDecoder::checkForHeadCharset):
65200         Ignore tags within <script> elements in head, just like we do for <title>.
65202 2007-01-13  Lars Knoll <lars@trolltech.com>
65204         Reviewed by Maciej
65206         Don't crash when constructing a GraphicsContext with a 0
65207         PlatformGraphicsContext and don't do anything if painting
65208         is disabled.
65210         * platform/graphics/qt/GraphicsContextQt.cpp:
65211         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
65212         (WebCore::GraphicsContext::origin):
65213         (WebCore::GraphicsContext::setPlatformFont):
65214         (WebCore::GraphicsContext::setPlatformStrokeColor):
65215         (WebCore::GraphicsContext::setPlatformStrokeStyle):
65216         (WebCore::GraphicsContext::setPlatformStrokeThickness):
65217         (WebCore::GraphicsContext::setPlatformFillColor):
65219 2007-01-13  Eric Seidel  <eric@webkit.org>
65221         Reviewed by hyatt.
65223         RichDraw demo does not live-update in Safari
65224         (SVG elements should ignore CSS position)
65225         http://bugs.webkit.org/show_bug.cgi?id=10364
65227         * css/cssstyleselector.cpp:
65228         (WebCore::CSSStyleSelector::adjustRenderStyle): ignore position for everything but <svg>
65229         * ksvg2/svg/SVGStyledElement.cpp:
65230         (WebCore::SVGStyledElement::rebuildRenderer): move path generation into layout()
65231         * rendering/RenderContainer.cpp:
65232         (WebCore::RenderContainer::layout): ASSERT kids marked as having completed layout
65233         * rendering/RenderPath.cpp:
65234         (WebCore::RenderPath::layout): move path generation into layout()
65235         * rendering/RenderSVGContainer.cpp:
65236         (WebCore::RenderSVGContainer::layout): ASSERT kids marked as having completed layout
65238 2007-01-12  David Hyatt  <hyatt@apple.com>
65240         Add support for column rules.
65242         Reviewed by bdash
65244         fast/multicol/column-rules.html
65246         * rendering/RenderBlock.cpp:
65247         (WebCore::RenderBlock::paintColumns):
65248         * rendering/RenderStyle.h:
65249         (WebCore::RenderStyle::columnRuleIsTransparent):
65251 2007-01-12  David Hyatt  <hyatt@apple.com>
65253         Make multicolumn layout work with floats.
65255         Reviewed by andersca
65257         Added fast/multicol/float-multicol.html
65259         * rendering/RenderBlock.cpp:
65260         (WebCore::RenderBlock::layoutBlock):
65261         (WebCore::RenderBlock::paintColumns):
65262         (WebCore::RenderBlock::paintObject):
65263         * rendering/RenderBlock.h:
65265 2007-01-12  David Kilzer  <ddkilzer@kilzer.net>
65267         Reviewed by Maciej.
65269         - fix http://bugs.webkit.org/show_bug.cgi?id=12239
65270           REGRESSION (r18816-r18818): Assertion failure in 
65271           WebCore::Length::Length[in-charge](int, WebCore::LengthType, bool)
65273         Test: fast/css/line-height.html
65275         * rendering/RenderTextControl.cpp:
65276         (WebCore::RenderTextControl::createInnerTextStyle): Use a float to create a percent Length.
65278 2007-01-12  Anders Carlsson  <acarlsson@apple.com>
65280         Reviewed by Darin.
65282         Use unsigned long for identifiers instead of Objective-C objects.
65283         
65284         * loader/FrameLoader.cpp:
65285         (WebCore::FrameLoader::loadResourceSynchronously):
65286         (WebCore::FrameLoader::startLoadingMainResource):
65287         (WebCore::FrameLoader::startLoading):
65288         (WebCore::FrameLoader::assignIdentifierToInitialRequest):
65289         (WebCore::FrameLoader::opened):
65290         (WebCore::FrameLoader::sendRemainingDelegateMessages):
65291         (WebCore::FrameLoader::requestFromDelegate):
65292         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
65293         * loader/FrameLoader.h:
65294         * loader/FrameLoaderClient.h:
65295         * loader/ResourceLoader.cpp:
65296         (WebCore::ResourceLoader::ResourceLoader):
65297         (WebCore::ResourceLoader::willSendRequest):
65298         * loader/ResourceLoader.h:
65299         (WebCore::ResourceLoader::setIdentifier):
65300         (WebCore::ResourceLoader::identifier):
65301         * page/Page.cpp:
65302         (WebCore::Page::Page):
65303         (WebCore::Page::createUniqueIdentifier):
65304         * page/Page.h:
65305         * platform/graphics/svg/SVGImageEmptyClients.h:
65306         (WebCore::SVGEmptyFrameLoaderClient::assignIdentifierToInitialRequest):
65307         (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
65308         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
65309         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
65310         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
65311         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveContentLength):
65312         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishLoading):
65313         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoading):
65314         (WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
65315         (WebCore::SVGEmptyFrameLoaderClient::completeProgress):
65317 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65319         Reviewed by Darin.
65321         - fix http://bugs.webkit.org/show_bug.cgi?id=12235
65322           REGRESSION (r18815): Marquees do not scroll
65324         * css/cssstyleselector.cpp:
65325         (WebCore::CSSStyleSelector::applyProperty): Apply the '-webkit-marquee' value
65326         of 'overflow-x' and 'overflow-y'.
65328 2007-01-12  Justin Garcia  <justin.garcia@apple.com>
65330         Reviewed by hyatt
65331         
65332         <rdar://problem/4875425>
65333         EBay, GMail, and GoogleDocs RTEs font size popups don't work
65335         Changed execCommand("FontSize", ...) to match the spec 
65336         and the behavior of other browsers.  It expects a number, 
65337         n, which, the spec says can be 1 through 7.  Other browsers 
65338         perform the font size change by creating a font element 
65339         wrapper with size="n".  We convert n into one of the absolute 
65340         size CSS keywords (x-small, medium, etc.).
65342         * editing/JSEditor.cpp: Call cssValueFromFontSizeNumber.  If
65343         successful, perform the style change.
65344         * html/HTMLFontElement.cpp:
65345         (WebCore::HTMLFontElement::cssValueFromFontSizeNumber):  Added.
65346         Moved this code from parsedMappedAttribute so that it could be
65347         called from the Editor.
65348         (WebCore::HTMLFontElement::parseMappedAttribute): Moved code into
65349         cssValueFromFontSizeNumber.
65350         * html/HTMLFontElement.h:
65352 2007-01-12  David Hyatt  <hyatt@apple.com>
65354         Fix for bug 11598, implement lightweight control clipping mechanism for
65355         buttons, list boxes, and dropdown lists.  Make sure list box respects
65356         scrollLeft/Top/Width/Height as well as clientWidth/Height.
65358         Fix bugs in RenderStyle::diff.  CursorData was not being compared properly.
65359         vertical-align had a non-inline display check that was wrong (preventing
65360         dynamic changes to keyword-based vertical-align from working).
65362         Reviewed by mitz
65364         * page/EventHandler.cpp:
65365         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
65366         * rendering/RenderBlock.cpp:
65367         (WebCore::RenderBlock::layout):
65368         (WebCore::RenderBlock::layoutBlock):
65369         (WebCore::RenderBlock::determineHorizontalPosition):
65370         (WebCore::RenderBlock::layoutBlockChildren):
65371         (WebCore::RenderBlock::paint):
65372         (WebCore::RenderBlock::fillHorizontalSelectionGap):
65373         (WebCore::RenderBlock::nodeAtPoint):
65374         (WebCore::RenderBlock::layoutColumns):
65375         * rendering/RenderBox.cpp:
65376         (WebCore::RenderBox::computeAbsoluteRepaintRect):
65377         * rendering/RenderBox.h:
65378         * rendering/RenderButton.cpp:
65379         (WebCore::RenderButton::setStyle):
65380         (WebCore::RenderButton::controlClipRect):
65381         * rendering/RenderButton.h:
65382         (WebCore::RenderButton::hasControlClip):
65383         * rendering/RenderFlexibleBox.cpp:
65384         (WebCore::RenderFlexibleBox::layoutBlock):
65385         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
65386         (WebCore::RenderFlexibleBox::layoutVerticalBox):
65387         * rendering/RenderFlow.cpp:
65388         (WebCore::RenderFlow::addFocusRingRects):
65389         * rendering/RenderListBox.cpp:
65390         (WebCore::RenderListBox::itemBoundingBoxRect):
65391         (WebCore::RenderListBox::paintObject):
65392         (WebCore::RenderListBox::itemHeight):
65393         (WebCore::RenderListBox::verticalScrollbarWidth):
65394         (WebCore::RenderListBox::scrollWidth):
65395         (WebCore::RenderListBox::scrollHeight):
65396         (WebCore::RenderListBox::scrollLeft):
65397         (WebCore::RenderListBox::setScrollLeft):
65398         (WebCore::RenderListBox::scrollTop):
65399         (WebCore::RenderListBox::setScrollTop):
65400         (WebCore::RenderListBox::controlClipRect):
65401         * rendering/RenderListBox.h:
65402         (WebCore::RenderListBox::hasControlClip):
65403         * rendering/RenderMenuList.cpp:
65404         (WebCore::RenderMenuList::setStyle):
65405         (WebCore::RenderMenuList::controlClipRect):
65406         * rendering/RenderMenuList.h:
65407         (WebCore::RenderMenuList::hasControlClip):
65408         * rendering/RenderObject.cpp:
65409         (WebCore::RenderObject::verticalScrollbarWidth):
65410         (WebCore::RenderObject::horizontalScrollbarHeight):
65411         (WebCore::RenderObject::clientWidth):
65412         (WebCore::RenderObject::clientHeight):
65413         (WebCore::RenderObject::setStyle):
65414         * rendering/RenderObject.h:
65415         (WebCore::RenderObject::hasControlClip):
65416         (WebCore::RenderObject::controlClipRect):
65417         (WebCore::RenderObject::contentWidth):
65418         (WebCore::RenderObject::contentHeight):
65419         * rendering/RenderStyle.cpp:
65420         (WebCore::StyleVisualData::StyleVisualData):
65421         (WebCore::cursorDataEqvuialent):
65422         (WebCore::StyleInheritedData::operator==):
65423         (WebCore::CursorList::operator==):
65424         (WebCore::RenderStyle::diff):
65425         * rendering/RenderStyle.h:
65426         (WebCore::LengthBox::operator!=):
65427         (WebCore::StyleVisualData::operator==):
65428         (WebCore::CursorData::operator==):
65429         (WebCore::CursorData::operator!=):
65430         (WebCore::CursorList::operator!=):
65431         (WebCore::RenderStyle::setTableLayout):
65432         * rendering/bidi.cpp:
65433         (WebCore::RenderBlock::layoutInlineChildren):
65435 2007-01-12  David Hyatt  <hyatt@apple.com>
65437         Fix for bug 9934, smaller line heights should not be allowed on
65438         text fields.
65440         Reviewed by darin
65442         * rendering/RenderTextControl.cpp:
65443         (WebCore::RenderTextControl::createInnerTextStyle):
65445 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65447         Reviewed by Hyatt.
65449         - http://bugs.webkit.org/show_bug.cgi?id=12215
65450           Treat 'overflow' and '-webkit-border-radius' as shorthands when parsing and
65451           when removing.
65453         Test: fast/css/remove-shorthand.html (updated)
65455         * css/CSSMutableStyleDeclaration.cpp:
65456         (WebCore::initShorthandMap):
65457         * css/cssparser.cpp:
65458         (WebCore::CSSParser::parseValue):
65460 2007-01-12  Rob Buis  <buis@kde.org>
65462         Reviewed by Mitz.
65464         Do not mix up JSSVGPolygonElement and JSSVGPolylineElement.
65466         * bindings/js/JSSVGElementWrapperFactory.cpp:
65468 2007-01-12  Kevin Decker <kdecker@apple.com>
65470         Reviewed by andersca.
65472         Fixed: <rdar://problem/4701326>21.2 ms launch time regression spent in +[WebPluginDatabase installedPlugins]
65474         * dom/DOMImplementation.cpp:
65475         (WebCore::DOMImplementation::createDocument): Added a guard clause for text/html which used to be in WebKit before a lot of the 
65476         loader plumbing was moved to WebCore.  Pinging the plug-in database to ask it if it supports a given mime type has the side 
65477         effect of reading from disk on first call, therefore such a check should be a last resort.  
65479 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65481         Reviewed by Darin.
65483         - fix http://bugs.webkit.org/show_bug.cgi?id=12223
65484           REGRESSION: Leaks under CSSStyleSelector::applyProperty
65486         No test possible (no change to functionality).
65488         * rendering/RenderObject.h: Removed unused forward declaration.
65489         * rendering/RenderStyle.cpp:
65490         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
65491         Delete shadow data.
65493 2007-01-12  Anders Carlsson  <acarlsson@apple.com>
65495         Build fix.
65496         
65497         * WebCore.xcodeproj/project.pbxproj:
65498         Remove SubresourceLoaderMac.mm.
65499         
65500 2007-01-12  Lars Knoll <lars@trolltech.com>
65502         Reviewed by Darin and Anders.
65504         Make some more of the loader code platform independent.
65506         * loader/FrameLoader.cpp:
65507         (WebCore::FrameLoader::clear):
65508         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
65509         (WebCore::FrameLoader::urlSelected):
65510         (WebCore::FrameLoader::createEmptyDocument):
65511         (WebCore::FrameLoader::setTitle):
65512         (WebCore::FrameLoader::originalRequestURL):
65513         (WebCore::FrameLoader::referrer):
65514         * loader/SubresourceLoader.cpp:
65515         (WebCore::SubresourceLoader::SubresourceLoader):
65516         (WebCore::SubresourceLoader::load):
65517         (WebCore::SubresourceLoader::create):
65518         (WebCore::SubresourceLoader::willSendRequest):
65519         (WebCore::SubresourceLoader::didReceiveResponse):
65520         (WebCore::SubresourceLoader::didReceiveData):
65521         (WebCore::SubresourceLoader::didFinishLoading):
65522         (WebCore::SubresourceLoader::didFail):
65523         (WebCore::SubresourceLoader::didCancel):
65524         (WebCore::SubresourceLoader::stopLoading):
65525         * loader/SubresourceLoader.h:
65526         * loader/mac/FrameLoaderMac.mm:
65527         * loader/mac/SubresourceLoaderMac.mm: Removed.
65528         * loader/qt/FrameLoaderQt.cpp:
65530 2007-01-12  Lars Knoll <lars@trolltech.com>
65532         Reviewed by Zack
65534         Valgrind reported uninitialized variable.
65536         * platform/network/qt/ResourceHandleManagerQt.cpp:
65537         (WebCore::FileLoader::request):
65539 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65541         Reviewed by rwlbuis.
65543         - add missing null check in new fixed table layout code
65545         * rendering/FixedTableLayout.cpp:
65546         (WebCore::FixedTableLayout::calcWidthArray):
65548 2007-01-12  Lars Knoll <lars@trolltech.com>
65550         Fix the Qt build after the Authenitcation changes.
65552         * WebCore.pro:
65553         * platform/network/ResourceHandleInternal.h:
65555 2007-01-12  David Hyatt  <hyatt@apple.com>
65557         Fix for bug 9569.  Make sure the selection offset for selection roots excludes border and padding.
65559         Reviewed by Eric
65561         * rendering/RenderBlock.cpp:
65562         (WebCore::RenderBlock::leftSelectionOffset):
65563         (WebCore::RenderBlock::rightSelectionOffset):
65565 2007-01-11  David Hyatt  <hyatt@apple.com>
65567         Fix for bug 8705, readonly text fields should not get focus rings.  Add a rule to that effect to
65568         html4.css and then also add readonly as a special case for style sharing so that we can retain the
65569         performance boost from sharing styles on inputs.
65571         Reviewed by bdash
65573         * css/cssstyleselector.cpp:
65574         (WebCore::CSSStyleSelector::canShareStyleWithElement):
65575         (WebCore::CSSStyleSelector::checkOneSelector):
65576         * css/html4.css:
65578 2007-01-11  David Hyatt  <hyatt@apple.com>
65580         Fix for bug 11595.  Autoscrolling of layers didn't really work at all unless the layer was coincidentally
65581         in the root layer's coordinate space.  The event point was an absolute position within the document, but
65582         the layer's rect was only local coords.  This patch makes sure to use absolute bounds for the layer
65583         when comparing it with the point.
65585         This is covered by the scrollRevealButton test case already in the tree... the results change to be more
65586         correct.
65588         Reviewed by ggaren
65590         * rendering/RenderLayer.cpp:
65591         (WebCore::RenderLayer::scrollRectToVisible):
65593 2007-01-11  Brady Eidson  <beidson@apple.com>
65595         Reviewed by Oliver
65597         -Move more HTTP Auth handling towards ResourceHandle, away from ResourceHandleClient
65598         -Make more of ResourceLoader cross-platform
65600         * loader/ResourceLoader.cpp:
65601         (WebCore::ResourceLoader::ResourceLoader):
65602         (WebCore::ResourceLoader::releaseResources):
65603         (WebCore::ResourceLoader::didCancel):
65604         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65605         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65606         (WebCore::ResourceLoader::receivedCancellation):
65607         * loader/ResourceLoader.h:
65608         (WebCore::ResourceLoader::willStopBufferingData):
65609         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65610         (WebCore::ResourceLoader::willCacheResponse):
65611         * loader/mac/ResourceLoaderMac.mm:
65612         * platform/network/ResourceHandle.h:
65613         * platform/network/ResourceHandleClient.h:
65614         (WebCore::ResourceHandleClient::willStopBufferingData):
65615         * platform/network/ResourceHandleInternal.h:
65616         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
65617         * platform/network/mac/ResourceHandleMac.mm:
65618         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
65619         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
65620         (WebCore::ResourceHandle::receivedCredential):
65621         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
65622         (WebCore::ResourceHandle::receivedCancellation):
65623         (WebCore::ResourceHandle::clearAuthentication):
65624         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
65625         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
65626         (-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
65627         (-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
65628         (-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
65630 2007-01-11  David Hyatt  <hyatt@apple.com>
65632         A hit test is returning a null renderer.  Make sure to null-check it in the autoscroll code.
65633         This really shouldn't happen, but I'm just going to bullet proof for now given that it's happening
65634         on the front page of yahoo.com!
65636         Reviewed by mark
65638         * rendering/RenderLayer.cpp:
65639         (WebCore::RenderLayer::autoscroll):
65641 2007-01-11  David Hyatt  <hyatt@apple.com>
65643         Force column-width to parse in strict mode so that there is no confusion when it is used in the columns
65644         shorthand (it can be mistaken for column-count otherwise).
65646         Reviewed by Mark
65648         fast/multicol/columns-shorthand-parsing.html
65650         * css/cssparser.cpp:
65651         (WebCore::CSSParser::parseValue):
65653 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65655         Reviewed by Hyatt.
65657         - fix http://bugs.webkit.org/show_bug.cgi?id=12124
65658           RenderTable::section{Above,Below}() can return the wrong answer for the {footer,header}
65660         * rendering/RenderTable.cpp:
65661         (WebCore::resetSectionPointerIfNotBefore): Added this function to help with
65662         checking if a section being inserted is the going to be the first of its kind.
65663         (WebCore::RenderTable::addChild): Changed to maintain the pointers to the
65664         header, the footer, the caption and the first table body properly when objects
65665         are inserted in the middle. Also changed to make the first caption win over
65666         any other captions. This matches Firefox and what already used to happen when a
65667         section recalc took place.
65668         (WebCore::RenderTable::layout): Changed to use sectionBelow() for iterating
65669         over the sections from top to bottom.
65670         (WebCore::RenderTable::calcBorderLeft): Changed to really find the section
65671         containing the first row.
65672         (WebCore::RenderTable::calcBorderRight): Ditto.
65673         (WebCore::RenderTable::sectionAbove): Fixed a bug when the last section was
65674         skipped if the input was the footer.
65675         (WebCore::RenderTable::sectionBelow): Ditto for "first" and "header"
65676         respectively.
65678 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65680         Reviewed by Hyatt.
65682         - fix http://bugs.webkit.org/show_bug.cgi?id=12115
65683           RTL text is jumbled on display
65685         Fixed fixed table layout. Implemented an algorithm that matches the behavior
65686         of Firefox, up to rounding errors.
65688         Fixes three existing table tests.
65690         * rendering/FixedTableLayout.cpp:
65691         Undid accidental search-and-replace of "width" to "m_width" in the comments.
65692         Removed an outdated comment, since WebKit no longer honors table-layout:fixed
65693         for variable-width tables.
65694         (WebCore::FixedTableLayout::calcWidthArray): Fixed the logic that finds the
65695         first row. Changed to divide the width specified for a cell that spans multiple
65696         columns between the columns rather than assign its entire width to each column.
65697         (WebCore::FixedTableLayout::calcMinMaxWidth):
65698         (WebCore::FixedTableLayout::layout): Implemented the behavior observed in
65699         Firefox.
65700         * rendering/FixedTableLayout.h:
65702 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65704         Reviewed by Hyatt.
65706         - fix http://bugs.webkit.org/show_bug.cgi?id=8438
65707           iExploder(#460): Assertion failure in RenderObject::drawBorder()
65709         Test: fast/block/basic/fieldset-stretch-to-legend.html
65711         * rendering/RenderBox.cpp:
65712         (WebCore::RenderBox::calcWidth): Stretch to the minimum intrinsic
65713         width if the object requires it.
65714         (WebCore::RenderBox::calcHorizontalMargins): Some style cleanup.
65715         (WebCore::RenderBox::calcAbsoluteHorizontal): Stretch to the minimum
65716         intrinsic width if the object requires it.
65717         * rendering/RenderBox.h:
65718         (WebCore::RenderBox::stretchesToMinIntrinsicWidth): Added. Returns false.
65719         * rendering/RenderFieldset.cpp:
65720         (WebCore::RenderFieldset::calcMinMaxWidth): Overloaded RenderBlock's
65721         implementation to ensure that the legend's will fit in the fieldset's
65722         minimum intrinsic width.
65723         (WebCore::RenderFieldset::findLegend): Made const.
65724         (WebCore::RenderFieldset::paintBoxDecorations):
65725         (WebCore::RenderFieldset::paintBorderMinusLegend): Fixed the behavior when
65726         the legend does overflow the fieldset. This is the part of the fix that
65727         prevents the assertion failure. If the legend intersects with a corner of
65728         the fieldset's border, that corner will not be painted, even if it is not
65729         completely occluded. This edge case can be improved with clipping in the
65730         future. Added FIXME to implement border-radius.
65731         * rendering/RenderFieldset.h:
65732         (WebCore::RenderFieldset::stretchesToMinIntrinsicWidth): Overloaded to
65733         return true.
65735 2007-01-11  Brady Eidson  <beidson@apple.com>
65737         Reviewed by Build Fix Karma
65739         I broke the release build (debug build passed)
65741         * platform/network/mac/AuthenticationMac.mm:
65742         (WebCore::core):
65744 2007-01-11  Brady Eidson  <beidson@apple.com>
65746         Reviewed by Anders
65748         Rewrites HTTP Authentication setting up a more platform-independent structure
65750         * WebCore.exp:
65751         * WebCore.xcodeproj/project.pbxproj:
65752         * loader/FrameLoader.cpp:
65753         (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
65754         (WebCore::FrameLoader::didCancelAuthenticationChallenge):
65755         * loader/FrameLoader.h:
65756         * loader/FrameLoaderClient.h:
65757         * loader/ResourceLoader.cpp:
65758         (WebCore::ResourceLoader::ResourceLoader):
65759         (WebCore::ResourceLoader::didCancel):
65760         * loader/ResourceLoader.h:
65761         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65762         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65763         (WebCore::ResourceLoader::receivedCredential):
65764         (WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
65765         (WebCore::ResourceLoader::receivedCancellation):
65766         * loader/mac/FrameLoaderMac.mm:
65767         * loader/mac/ResourceLoaderMac.mm:
65768         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65769         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65770         (WebCore::ResourceLoader::receivedCredential):
65771         (WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
65772         (WebCore::ResourceLoader::receivedCancellation):
65773         * platform/graphics/svg/SVGImageEmptyClients.h:
65774         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
65775         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
65776         * platform/network/ResourceHandleClient.h:
65777         (WebCore::ResourceHandleClient::willSendRequest):
65778         (WebCore::ResourceHandleClient::didReceiveAuthenticationChallenge):
65779         (WebCore::ResourceHandleClient::didCancelAuthenticationChallenge):
65780         (WebCore::ResourceHandleClient::receivedCredential):
65781         (WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential):
65782         (WebCore::ResourceHandleClient::receivedCancellation):
65783         (WebCore::ResourceHandleClient::willCacheResponse):
65784         * platform/network/ResourceResponse.h:
65785         (WebCore::operator!=):
65786         * platform/network/URLAuthenticationChallenge.cpp: Added.
65787         (WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
65788         (WebCore::URLAuthenticationChallenge::previousFailureCount):
65789         (WebCore::URLAuthenticationChallenge::proposedCredential):
65790         (WebCore::URLAuthenticationChallenge::protectionSpace):
65791         (WebCore::URLAuthenticationChallenge::failureResponse):
65792         (WebCore::URLAuthenticationChallenge::error):
65793         (WebCore::URLAuthenticationChallenge::isNull):
65794         (WebCore::URLAuthenticationChallenge::nullify):
65795         (WebCore::operator==):
65796         (WebCore::operator!=):
65797         * platform/network/URLAuthenticationChallenge.h: Added.
65798         (WebCore::URLAuthenticationChallenge::sender):
65799         (WebCore::URLAuthenticationChallenge::nsURLAuthenticationChallenge):
65800         * platform/network/URLCredential.cpp: Added.
65801         (WebCore::URLCredential::URLCredential):
65802         (WebCore::URLCredential::user):
65803         (WebCore::URLCredential::password):
65804         (WebCore::URLCredential::hasPassword):
65805         (WebCore::URLCredential::persistence):
65806         (WebCore::operator==):
65807         * platform/network/URLCredential.h: Added.
65808         (WebCore::):
65809         (WebCore::operator!=):
65810         * platform/network/URLProtectionSpace.cpp: Added.
65811         (WebCore::URLProtectionSpace::URLProtectionSpace):
65812         (WebCore::URLProtectionSpace::host):
65813         (WebCore::URLProtectionSpace::port):
65814         (WebCore::URLProtectionSpace::serverType):
65815         (WebCore::URLProtectionSpace::realm):
65816         (WebCore::URLProtectionSpace::authenticationScheme):
65817         (WebCore::operator==):
65818         * platform/network/URLProtectionSpace.h: Added.
65819         (WebCore::):
65820         (WebCore::operator!=):
65821         * platform/network/mac/AuthenticationMac.h: Added.
65822         * platform/network/mac/AuthenticationMac.mm: Added.
65823         (WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
65824         (WebCore::mac):
65825         (WebCore::core):
65826         * platform/network/mac/ResourceHandleMac.mm:
65827         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
65828         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
65829         (-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
65830         (-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
65831         (-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
65832         * platform/network/mac/ResourceResponseMac.mm:
65833         (WebCore::operator==):
65835 2007-01-11  Geoffrey Garen  <ggaren@apple.com>
65837         Reviewed by Anders Carlsson.
65838         
65839         Even more cleanup in preparation for fixing <rdar://problem/4608404> 
65840         WebScriptObject's _executionContext lack of ownership policy causes 
65841         crashes (e.g., in Dashcode)
65842         
65843         Layout tests pass.
65844         
65845         Renames:
65846             findRootObjectForNativeHandleFunction => createRootObject
65847             FindRootObjectForNativeHandleFunctionPtr => createRootObjectFunction
65848             rootForView => createRootObject
65849             getInstanceForView => getPluginInstanceForWidget
65851         * page/mac/FrameMac.mm:
65852         (WebCore::FrameMac::getAppletInstanceForWidget): Put the NSView * in a void*
65853         variable named "nativeHandle" to be more explicit about the fact that JavaScript's
65854         "nativeHandle" is just an NSView *.
65856         (WebCore::getPluginInstanceForWidget): This function now does the NSView *
65857         fetching that its callers used to do.
65858         (WebCore::FrameMac::getEmbedInstanceForWidget): Updated for rename.
65859         (WebCore::FrameMac::getObjectInstanceForWidget): ditto
65861         * page/mac/WebCoreFrameBridge.mm: Killed the WebCoreBridgeInternal category,
65862         which was really more of a shmategory.
65863         (createRootObject): Removed rootObjectForView, folding it into its only
65864         caller, the similarly named rootForView. Renamed the pair to "createRootObject"
65865         because that's what they do.
65867         (-[WebCoreFrameBridge init]): Updated for renames
65869 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
65871         Reviewed by Darin.
65873         Fix crash on platforms that don't use the new loader yet.
65874         
65875         * loader/DocLoader.cpp:
65876         (WebCore::DocLoader::requestResource):
65878 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65880         Reviewed by Adam.
65882         - fix http://bugs.webkit.org/show_bug.cgi?id=11449
65883           Type-to-select in unopened popups doesn't work with Hebrew
65885         Test: fast/forms/select-type-ahead-non-latin.html
65887         * html/HTMLSelectElement.cpp:
65888         (WebCore::HTMLSelectElement::defaultEventHandler): Changed locale-specific
65889         isprint() condition to a Unicode isPrintableChar().
65891 2007-01-09  Justin Garcia  <justin.garcia@apple.com>
65893         Reviewed by geoff
65894         
65895         <rdar://problem/4889140>
65896         GMail Editor: List creation fails in new message
65898         * editing/InsertListCommand.cpp:
65899         (WebCore::InsertListCommand::doApply): Inserting the list
65900         into an empty paragraph not held open by a br or a '\n', 
65901         will invalidate start and end.  Insert a placeholder and 
65902         then recompute start and end.
65904 2007-01-11  Lars Knoll <lars@trolltech.com>
65906         Rubberstamped by Anders
65908         This one is not needed any longer neither.
65910         * ChangeLog:
65911         * WebCore.pro:
65912         * loader/qt/NavigationActionQt.cpp: Removed.
65914 2007-01-11  Lars Knoll <lars@trolltech.com>
65916         Reviewed by Anders
65918         Remove now unused file
65920         * WebCore.pro:
65921         * loader/qt/LoaderFunctionsQt.cpp: Removed.
65923 2007-01-11  David Kilzer  <ddkilzer@webkit.org>
65925         Reviewed by NOBODY (build fix).
65927         * loader/mac/FrameLoaderMac.mm:  Removed import of LoaderNSURLRequestExtras.h.
65928         * loader/mac/SubresourceLoaderMac.mm:  Ditto.
65930 2007-01-11  George Staikos  <staikos@kde.org>
65932         Fix compile.
65934         * page/qt/FrameQtClient.cpp:
65936 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
65938         Fix build.
65939         
65940         * dom/XMLTokenizer.cpp:
65941         * loader/CachedCSSStyleSheet.cpp:
65942         * loader/CachedImage.cpp:
65943         * loader/DocLoader.cpp:
65944         * loader/loader.cpp:
65945         * xml/XSLTProcessor.cpp:
65946         * xml/xmlhttprequest.cpp:
65948 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
65950         Reviewed by Adam.
65952         Loader cleanup, get rid of unused code.
65953         
65954         * WebCore.xcodeproj/project.pbxproj:
65955         * loader/CachedResource.h:
65956         * loader/DocLoader.cpp:
65957         (WebCore::DocLoader::requestResource):
65958         (WebCore::DocLoader::checkCacheObjectStatus):
65959         * loader/DocLoader.h:
65960         * loader/LoaderFunctions.h: Removed.
65961         * loader/mac/CachedResourceMac.mm: Removed.
65962         * loader/mac/LoaderFunctionsMac.mm: Removed.
65963         * loader/mac/LoaderNSURLRequestExtras.h: Removed.
65964         * loader/mac/LoaderNSURLRequestExtras.m: Removed.
65965         * loader/mac/SubresourceLoaderMac.mm:
65966         * page/mac/WebCoreFrameBridge.mm:
65967         * platform/network/ResourceHandle.cpp:
65969 2007-01-11  Beth Dakin  <bdakin@apple.com>
65971         Reviewed by Adam.
65973         Fix for http://bugs.webkit.org/show_bug.cgi?id=12135 REGRESSION: 
65974         <input> and <textarea> not focused on right click (4908884 in 
65975         Radar)
65977         * page/EventHandler.cpp:
65978         (WebCore::EventHandler::sendContextMenuEvent): Since WebcCore now 
65979         handles the context menu event, we want to ask if we *have* 
65980         swallowed the event instead of if we *haven't* when deciding to 
65981         perform a selection. In the past, WebKit handled the event, so 
65982         swallowEvent was false in the case where we want to pop up a menu. 
65984 2007-01-11  Darin Adler  <darin@apple.com>
65986         Reviewed by Anders.
65988         - fix http://bugs.webkit.org/show_bug.cgi?id=12189
65989           REGRESSION(r18614-18640): Crash in WebCore::SharedBuffer::hasPlatformData()
65991         * loader/mac/LoaderFunctionsMac.mm: (WebCore::CheckCacheObjectStatus):
65992         Added null check.
65994 2007-01-11  Darin Adler  <darin@apple.com>
65996         * platform/CharacterNames.h: Oops! horizontalEllipsis != zeroWidthSpace!
65998 2007-01-11  Lars Knoll <lars@trolltech.com>
66000         Reviewed by Darin.
66002         Start using the loader in the Qt port.
66004         * loader/FrameLoader.cpp:
66005         (WebCore::FrameLoader::clear):
66006         (WebCore::FrameLoader::URL):
66007         (WebCore::FrameLoader::createEmptyDocument):
66008         * loader/qt/FrameLoaderQt.cpp:
66009         (WebCore::FrameLoader::setTitle):
66010         (WebCore::FrameLoader::originalRequestURL):
66011         (WebCore::FrameLoader::referrer):
66012         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
66013         * page/qt/FrameQtClient.cpp:
66014         (WebCore::FrameQtClient::openURL):
66016 2007-01-11  Darin Adler  <darin@apple.com>
66018         Reviewed by Hyatt.
66020         - removed a couple Mac bridging classes; put the code in WebKit instead
66022         * WebCore.exp: Updated for new WebKit uses.
66024         * WebCore.xcodeproj/project.pbxproj: Removed files.
66025         * bridge/mac/WebCoreEncodings.h: Removed.
66026         * bridge/mac/WebCoreEncodings.mm: Removed.
66027         * bridge/mac/WebMimeTypeRegistryBridge.h: Removed.
66028         * bridge/mac/WebMimeTypeRegistryBridge.mm: Removed.
66029         * platform/mac/WebNSAttributedStringExtras.h: Removed.
66030         * platform/mac/WebNSAttributedStringExtras.mm: Removed.
66032         * platform/mac/PasteboardMac.mm:
66033         (WebCore::stripAttachmentCharacters): Added. Moved code from
66034         WebNSAttributedStringExtras.mm, and fixed a garbage collection problem
66035         (a global with a plain old retain rather than HardRetain).
66036         (WebCore::Pasteboard::writeSelection): Updated to use stripAttachmentCharacters.
66038         - removed some DeprecatedCString use
66040         * loader/FrameLoader.cpp: Changed to use String more to eliminate use of
66041         DeprecatedCString here in the mailto form support. But maybe we can remove
66042         this entirely. Do we really care about mailto forms any more?
66044         * platform/Pasteboard.h: Removed unneeded DeprecatedCString declaration.
66046         * platform/PlatformString.h: Added replace that takes two strings.
66047         * platform/StringImpl.h: Ditto.
66048         * platform/StringImpl.cpp: (WebCore::StringImpl::replace): Ditto.
66050         * platform/TextStream.h: Remove DeprecatedCString case.
66051         * platform/TextStream.cpp: Ditto.
66053         - made a few more files use CharacterNames.h
66055         * platform/CharacterNames.h: Added some more character names and
66056         sorted alphabetically.
66058         * bridge/mac/WebCoreStringTruncator.mm:
66059         (centerTruncateToBuffer): Use character name from CharacterNames.h.
66060         (rightTruncateToBuffer): Ditto.
66061         (truncateString): Ditto.
66062         * platform/mac/FontMac.mm: (WebCore::addDirectionalOverride): Ditto.
66063         * rendering/RenderFlexibleBox.cpp:
66064         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
66065         * rendering/bidi.cpp:
66066         (WebCore::RenderBlock::checkLinesForTextOverflow): Ditto.
66068 2007-01-11  David Hyatt  <hyatt@apple.com>
66070         Fix two bugs in positionForCoordinates.  (Make it work when you have a margin in between your border and
66071         your first child block.)
66073         Rewrite column rebalancing to have two modes: constrained and unconstrained.  In unconstrained mode,
66074         the system will dynamically rebalance as it loses space to breaks and compute a final intrinsic height
66075         for the overall block.  In constrained mode, columns flow into the fixed height block, and extra columns
66076         spill out horizontally in the appropriate direction (RTL/LTR).
66078         Make columns work properly with both LTR and RTL overflow blocks.
66080         Initial column test suite coming soon now that the basic layout is right.
66082         Reviewed by darin
66084         * rendering/RenderBlock.cpp:
66085         (WebCore:::RenderFlow):
66086         (WebCore::RenderBlock::layoutBlock):
66087         (WebCore::RenderBlock::paintColumns):
66088         (WebCore::RenderBlock::lowestPosition):
66089         (WebCore::RenderBlock::rightmostPosition):
66090         (WebCore::RenderBlock::leftmostPosition):
66091         (WebCore::RenderBlock::hitTestColumns):
66092         (WebCore::RenderBlock::positionForCoordinates):
66093         (WebCore::RenderBlock::availableWidth):
66094         (WebCore::RenderBlock::calcColumnWidth):
66095         (WebCore::RenderBlock::layoutColumns):
66096         (WebCore::RenderBlock::adjustPointToColumnContents):
66097         * rendering/RenderBlock.h:
66098         (WebCore::RenderBlock::hasColumns):
66100 2007-01-10  Rob Buis  <buis@kde.org>
66102         Reviewed by Eric.
66104         http://bugs.webkit.org/show_bug.cgi?id=12201
66105         Fix image dragging issues with http://www.carto.net/papers/svg/gui/scrollbar/index.svg
66107         Fix calculation of absolute transform so that viewport x,y
66108         translation is always done, also when viewBox is set.     
66110         * rendering/RenderSVGContainer.cpp:
66111         (WebCore::RenderSVGContainer::paint):
66112         (WebCore::RenderSVGContainer::viewportTransform):
66113         (WebCore::RenderSVGContainer::absoluteTransform):
66115 2007-01-10  David Hyatt  <hyatt@apple.com>
66117         Rework positionForCoordinates to be more efficient and to handle multi-column content.  This entailed
66118         adding a new field to HitTestResult called localPoint that cached the mouse coordinate in the coordinate
66119         space of the renderer.
66121         positionForCoordinates now takes local coordinates and so no longer needs to waste time recomputing
66122         absolute positions over and over again.
66124         Reviewed by darin
66126         * bridge/mac/WebCoreAXObject.mm:
66127         (-[WebCoreAXObject value]):
66128         (-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
66129         (-[WebCoreAXObject doAXTextMarkerForPosition:]):
66130         * dom/Document.cpp:
66131         (WebCore::Document::prepareMouseEvent):
66132         * editing/SelectionController.cpp:
66133         (WebCore::SelectionController::contains):
66134         * editing/visible_units.cpp:
66135         (WebCore::previousLinePosition):
66136         (WebCore::nextLinePosition):
66137         * page/EventHandler.cpp:
66138         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
66139         (WebCore::EventHandler::handleMousePressEventDoubleClick):
66140         (WebCore::EventHandler::handleMousePressEventTripleClick):
66141         (WebCore::EventHandler::handleMousePressEventSingleClick):
66142         (WebCore::EventHandler::handleMouseMoveEvent):
66143         (WebCore::EventHandler::handleMouseReleaseEvent):
66144         (WebCore::EventHandler::sendContextMenuEvent):
66145         * page/EventHandler.h:
66146         * page/MouseEventWithHitTestResults.cpp:
66147         (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
66148         * page/MouseEventWithHitTestResults.h:
66149         (WebCore::MouseEventWithHitTestResults::localPoint):
66150         * page/mac/WebCoreFrameBridge.mm:
66151         (-[WebCoreFrameBridge _visiblePositionForPoint:]):
66152         * rendering/EllipsisBox.cpp:
66153         (WebCore::EllipsisBox::nodeAtPoint):
66154         * rendering/HitTestResult.h:
66155         (WebCore::HitTestResult::localPoint):
66156         (WebCore::HitTestResult::setLocalPoint):
66157         * rendering/InlineFlowBox.cpp:
66158         (WebCore::InlineFlowBox::nodeAtPoint):
66159         * rendering/InlineTextBox.cpp:
66160         (WebCore::InlineTextBox::nodeAtPoint):
66161         * rendering/RenderBlock.cpp:
66162         (WebCore::RenderBlock::nodeAtPoint):
66163         (WebCore::RenderBlock::hitTestContents):
66164         (WebCore::RenderBlock::positionForCoordinates):
66165         * rendering/RenderBox.cpp:
66166         (WebCore::RenderBox::nodeAtPoint):
66167         * rendering/RenderContainer.cpp:
66168         (WebCore::RenderContainer::positionForCoordinates):
66169         * rendering/RenderFlow.cpp:
66170         (WebCore::RenderFlow::hitTestLines):
66171         * rendering/RenderInline.cpp:
66172         (WebCore::RenderInline::positionForCoordinates):
66173         * rendering/RenderLayer.cpp:
66174         (WebCore::RenderLayer::autoscroll):
66175         (WebCore::RenderLayer::hitTestLayer):
66176         * rendering/RenderObject.cpp:
66177         (WebCore::RenderObject::updateHitTestResult):
66178         * rendering/RenderObject.h:
66179         * rendering/RenderPath.cpp:
66180         (WebCore::RenderPath::nodeAtPoint):
66181         * rendering/RenderReplaced.cpp:
66182         (WebCore::RenderReplaced::positionForCoordinates):
66183         * rendering/RenderTableRow.cpp:
66184         (WebCore::RenderTableRow::nodeAtPoint):
66185         * rendering/RenderTableSection.cpp:
66186         (WebCore::RenderTableSection::nodeAtPoint):
66187         * rendering/RenderText.cpp:
66188         (WebCore::RenderText::positionForCoordinates):
66189         * rendering/RootInlineBox.cpp:
66190         (WebCore::RootInlineBox::nodeAtPoint):
66191         (WebCore::RootInlineBox::closestLeafChildForXPos):
66192         * rendering/RootInlineBox.h:
66194 2007-01-11  George Staikos  <staikos@kde.org>
66196         Reviewed by Maciej.
66198         Fix Qt Build.
66200         * loader/qt/DocumentLoaderQt.cpp:
66201         (WebCore::DocumentLoader::getResponseModifiedHeader):
66203 2007-01-10  Pam Greene  <pam@chromium.org>
66205         Reviewed by Darin.
66207         Fixes for http://bugs.webkit.org/show_bug.cgi?id=11841
66209         Set image size to fit alt text when image or input-image element
66210         has no src attribute, so that those images show their alt text instead
66211         of showing nothing at all.
66213         * html/HTMLImageElement.cpp:
66214         (WebCore::HTMLImageElement::attach):
66215         * html/HTMLInputElement.cpp:
66216         (WebCore::HTMLInputElement::attach):
66217         * rendering/RenderImage.cpp:
66218         (WebCore::RenderImage::setImageSizeForAltText):
66219         (WebCore::RenderImage::imageChanged):
66220         * rendering/RenderImage.h:
66222 2007-01-11  Mark Rowe  <mrowe@apple.com>
66224         Build fix.
66226         * rendering/RenderView.cpp:
66227         (WebCore::RenderView::printing):
66229 2007-01-10  Mitz Pettel  <mitz@webkit.org>
66231         Reviewed by Darin.
66233         - fix http://bugs.webkit.org/show_bug.cgi?id=9284
66234           Quirksmode (CSS1): Removing inline border styles is impossible
66236         Test: fast/css/remove-shorthand.html
66238         * css/CSSMutableStyleDeclaration.cpp:
66239         (WebCore::PropertyLonghand::PropertyLonghand): Added this structure
66240         containing a pointer to an array if properties and the array's length.
66241         (WebCore::PropertyLonghand::properties):
66242         (WebCore::PropertyLonghand::length):
66243         (WebCore::initShorthandMap): Initialize the mapping from shorthand
66244         properties to their dependent properties.
66245         (WebCore::CSSMutableStyleDeclaration::removeProperty): Changed to check
66246         if the property being removed is a shorthand, and if so, to remove all
66247         of its dependent properties.
66248         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet): Added a
66249         'notifyChanged' boolean parameter which controls whether this method
66250         calls setChanged() if it actually removes any property.
66251         * css/CSSMutableStyleDeclaration.h:
66253 2007-01-10  Steve Falkenburg  <sfalken@apple.com>
66255         Reviewed by Kevin.
66257         Removed unnecessary printing state
66259         * page/FrameView.cpp:
66260         (WebCore::FrameView::layout):
66261         * page/mac/WebCoreFrameBridge.mm:
66262         (-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]):
66263         (-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
66264         (-[WebCoreFrameBridge drawRect:]):
66265         (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
66266         (-[WebCoreFrameBridge adjustPageHeightNew:top:bottom:limit:]):
66267         * rendering/RenderLayer.cpp:
66268         (WebCore::RenderLayer::updateLayerPositions):
66269         * rendering/RenderObject.cpp:
66270         (WebCore::RenderObject::repaint):
66271         (WebCore::RenderObject::repaintRectangle):
66272         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
66273         * rendering/RenderView.cpp:
66274         (WebCore::RenderView::RenderView):
66275         (WebCore::RenderView::calcHeight):
66276         (WebCore::RenderView::calcWidth):
66277         (WebCore::RenderView::layout):
66278         (WebCore::RenderView::paint):
66279         (WebCore::RenderView::repaintViewRectangle):
66280         (WebCore::RenderView::computeAbsoluteRepaintRect):
66281         (WebCore::RenderView::printing):
66282         (WebCore::RenderView::viewRect):
66283         (WebCore::RenderView::docHeight):
66284         (WebCore::RenderView::docWidth):
66285         * rendering/RenderView.h:
66286         * rendering/RenderWidget.cpp:
66287         (WebCore::RenderWidget::updateWidgetPosition):
66288         * rendering/bidi.cpp:
66289         (WebCore::RenderBlock::layoutInlineChildren):
66291 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
66293         Reviewed by Maciej.
66295         Get the Refresh header directly from the ResourceResponse.
66296         
66297         * loader/DocumentLoader.h:
66298         * loader/FrameLoader.cpp:
66299         (WebCore::FrameLoader::commitProvisionalLoad):
66300         * loader/mac/DocumentLoaderMac.mm:
66301         (WebCore::DocumentLoader::getResponseModifiedHeader):
66303 2007-01-10  Beth Dakin  <bdakin@apple.com>
66305         Reviewed by John.
66307         Fix for <rdar://problem/4914258> REGRESSION: Search in Google now 
66308         operates on the current WebView instead of invoking Safari's 
66309         service
66311         * page/ContextMenuClient.h: New call to the client to search in 
66312         google.
66313         * page/ContextMenuController.cpp:
66314         (WebCore::ContextMenuController::contextMenuItemSelected): Call 
66315         into the client instead of forming a new url string and loading it.
66316         * platform/graphics/svg/SVGImageEmptyClients.h:
66317         (WebCore::SVGEmptyContextMenuClient::searchWithGoogle): New call.
66319 2007-01-10  Adam Roben  <aroben@apple.com>
66321         Rubberstamped by Darin.
66323         * page/ContextMenuController.cpp:
66324         (WebCore::ContextMenuController::contextMenuItemSelected): Pass 0
66325         instead of an empty Event to FrameLoader::load and
66326         FrameLoader::urlSelected.
66328 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
66330         * loader/ResourceLoader.cpp:
66331         (WebCore::ResourceLoader::~ResourceLoader):
66332         Disable assertion (I forgot to do this even though I added the comment!)
66334 2007-01-10  Ross Burton  <ross@burtonini.com>
66336         Reviewed and landed by Anders.
66338         Fix case in vcproj file (the GTK+ port uses the vcproj file).
66340         * WebCore.vcproj/WebCore/WebCore.vcproj:
66342 2007-01-10  Lars Knoll  <lars@trolltech.com>
66344         Make the Qt build compile again after 
66345         the ResourceLoader was made platform
66346         independent. 
66348         * WebCore.pro:
66349         * loader/FrameLoader.cpp:
66350         (WebCore::FrameLoader::didFirstLayout):
66351         * loader/qt/FrameLoaderQt.cpp:
66352         * loader/qt/MainResourceLoaderQt.cpp: Removed.
66353         * loader/qt/ResourceLoaderQt.cpp: Removed.
66354         * page/qt/FrameQtClient.cpp:
66355         (WebCore::FrameQtClient::openURL):
66356         * platform/network/qt/ResourceHandleQt.cpp:
66357         (WebCore::ResourceHandle::setDefersLoading):
66359 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
66361         Rubber-stamped by Maciej.
66362         
66363         Move most of ResourceLoader and MainResourceLoader into the platform-independent files.
66364         
66365         * WebCore.xcodeproj/project.pbxproj:
66366         * loader/FrameLoader.cpp:
66367         (WebCore::FrameLoader::didFinishLoad):
66368         * loader/MainResourceLoader.cpp:
66369         (WebCore::MainResourceLoader::MainResourceLoader):
66370         (WebCore::MainResourceLoader::~MainResourceLoader):
66371         (WebCore::MainResourceLoader::create):
66372         (WebCore::MainResourceLoader::receivedError):
66373         (WebCore::MainResourceLoader::didCancel):
66374         (WebCore::MainResourceLoader::interruptionForPolicyChangeError):
66375         (WebCore::MainResourceLoader::stopLoadingForPolicyChange):
66376         (WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
66377         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
66378         (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
66379         (WebCore::MainResourceLoader::addData):
66380         (WebCore::MainResourceLoader::willSendRequest):
66381         (WebCore::shouldLoadAsEmptyDocument):
66382         (WebCore::MainResourceLoader::continueAfterContentPolicy):
66383         (WebCore::MainResourceLoader::callContinueAfterContentPolicy):
66384         (WebCore::MainResourceLoader::didReceiveResponse):
66385         (WebCore::MainResourceLoader::didReceiveData):
66386         (WebCore::MainResourceLoader::didFinishLoading):
66387         (WebCore::MainResourceLoader::didFail):
66388         (WebCore::MainResourceLoader::loadNow):
66389         (WebCore::MainResourceLoader::load):
66390         (WebCore::MainResourceLoader::setDefersLoading):
66391         * loader/MainResourceLoader.h:
66392         * loader/ResourceLoader.cpp:
66393         (WebCore::ResourceLoader::ResourceLoader):
66394         (WebCore::ResourceLoader::~ResourceLoader):
66395         (WebCore::ResourceLoader::releaseResources):
66396         (WebCore::ResourceLoader::load):
66397         (WebCore::ResourceLoader::setDefersLoading):
66398         (WebCore::ResourceLoader::frameLoader):
66399         (WebCore::ResourceLoader::addData):
66400         (WebCore::ResourceLoader::clearResourceData):
66401         (WebCore::ResourceLoader::willSendRequest):
66402         (WebCore::ResourceLoader::didReceiveResponse):
66403         (WebCore::ResourceLoader::didReceiveData):
66404         (WebCore::ResourceLoader::willStopBufferingData):
66405         (WebCore::ResourceLoader::didFinishLoading):
66406         (WebCore::ResourceLoader::didFinishLoadingOnePart):
66407         (WebCore::ResourceLoader::didFail):
66408         (WebCore::ResourceLoader::didCancel):
66409         (WebCore::ResourceLoader::cancel):
66410         (WebCore::ResourceLoader::response):
66411         (WebCore::ResourceLoader::cancelledError):
66412         * loader/ResourceLoader.h:
66413         (WebCore::ResourceLoader::willStopBufferingData):
66414         (WebCore::ResourceLoader::setRequest):
66415         * loader/mac/FrameLoaderMac.mm:
66416         * loader/mac/MainResourceLoaderMac.mm: Removed.
66417         * loader/mac/ResourceLoaderMac.mm:
66419 2007-01-10  Lars Knoll <lars@trolltech.com>
66421         Move files to the correct location,
66422         and remove a few unused methods from 
66423         LoaderFunctionsQt.cpp
66425         * WebCore.pro:
66426         * loader/qt/LoaderFunctionsQt.cpp: Added.
66427         (WebCore::CheckCacheObjectStatus):
66428         * page/qt/FrameQt.cpp: Added.
66429         (WebCore::doScroll):
66430         (WebCore::FrameQt::FrameQt):
66431         (WebCore::FrameQt::~FrameQt):
66432         (WebCore::FrameQt::passMouseDownEventToWidget):
66433         (WebCore::FrameQt::isLoadTypeReload):
66434         (WebCore::FrameQt::markedTextRange):
66435         (WebCore::FrameQt::mimeTypeForFileName):
66436         (WebCore::FrameQt::unfocusWindow):
66437         (WebCore::FrameQt::focusWindow):
66438         (WebCore::FrameQt::getEmbedInstanceForWidget):
66439         (WebCore::FrameQt::getObjectInstanceForWidget):
66440         (WebCore::FrameQt::getAppletInstanceForWidget):
66441         (WebCore::FrameQt::issueCutCommand):
66442         (WebCore::FrameQt::issueCopyCommand):
66443         (WebCore::FrameQt::issuePasteCommand):
66444         (WebCore::FrameQt::issuePasteAndMatchStyleCommand):
66445         (WebCore::FrameQt::issueTransposeCommand):
66446         (WebCore::FrameQt::respondToChangedSelection):
66447         (WebCore::FrameQt::shouldChangeSelection):
66448         (WebCore::FrameQt::print):
66449         (WebCore::FrameQt::shouldInterruptJavaScript):
66450         (WebCore::FrameQt::keyEvent):
66451         (WebCore::FrameQt::setFrameGeometry):
66452         (WebCore::FrameQt::client):
66453         (WebCore::FrameQt::createNewWindow):
66454         (WebCore::FrameQt::goBackOrForward):
66455         (WebCore::FrameQt::historyURL):
66456         (WebCore::FrameQt::runJavaScriptAlert):
66457         (WebCore::FrameQt::runJavaScriptConfirm):
66458         (WebCore::FrameQt::runJavaScriptPrompt):
66459         (WebCore::FrameQt::bindingRootObject):
66460         (WebCore::FrameQt::addPluginRootObject):
66461         * page/qt/FrameQt.h: Added.
66462         (WebCore::QtFrame):
66463         * page/qt/FrameQtClient.cpp: Added.
66464         (WebCore::FrameQtClient::FrameQtClient):
66465         (WebCore::FrameQtClient::~FrameQtClient):
66466         (WebCore::FrameQtClient::setFrame):
66467         (WebCore::FrameQtClient::openURL):
66468         (WebCore::FrameQtClient::submitForm):
66469         (WebCore::FrameQtClient::didReceiveResponse):
66470         (WebCore::FrameQtClient::didFinishLoading):
66471         (WebCore::FrameQtClient::didFail):
66472         (WebCore::FrameQtClient::didReceiveData):
66473         (WebCore::FrameQtClient::traverseNextFrameStayWithin):
66474         (WebCore::numRequests):
66475         (WebCore::FrameQtClient::numPendingOrLoadingRequests):
66476         * page/qt/FrameQtClient.h: Added.
66477         * platform/qt/FrameQt.cpp: Removed.
66478         * platform/qt/FrameQt.h: Removed.
66479         * platform/qt/FrameQtClient.cpp: Removed.
66480         * platform/qt/FrameQtClient.h: Removed.
66481         * platform/qt/LoaderFunctionsQt.cpp: Removed.
66483 2007-01-10  Adam Roben  <aroben@apple.com>
66485         Reviewed by Geoff.
66487         Fix: <rdar://problem/4917054> ContextMenuController leaks Events
66489         No layout tests possible.
66491         * page/ContextMenuController.cpp:
66492         (WebCore::ContextMenuController::contextMenuItemSelected): Use RefPtr
66493         to manage the lifetime of Shared objects.
66495 2007-01-10  Rob Buis  <buis@kde.org>
66497         Reviewed by Sam.
66499         http://bugs.webkit.org/show_bug.cgi?id=12196
66500         SVGPatternElement should not be locatable
66502         Replace SVGStyledLocatableElement derivation with
66503         SVGStyledElement.
66505         * ksvg2/svg/SVGPatternElement.cpp:
66506         (WebCore::SVGPatternElement::SVGPatternElement):
66507         * ksvg2/svg/SVGPatternElement.h:
66509 2007-01-10  Nikolas Zimmermann  <zimmermann@kde.org>
66511         Build fix, not reviewed.
66513         * rendering/RenderSVGText.cpp: Use correct method name.
66514         (WebCore::RenderSVGText::relativeBBox):
66516 2007-01-10  Nikolas Zimmermann  <zimmermann@kde.org>
66518         Reviewed by Eric.
66520         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10262 (SVG fails to redraw top 20 pixels)
66521         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10263 (SVG seems to repaint way too many times during load)
66522         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10404 (Invalidation issues with text skew)
66523         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10407 (bad SVG text invalidation issues on mouseover/mouseout)
66524         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10806 (failing manual-tests/svg-repaint-group.svg)
66525         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10913 (SVG charts from plotkit fail to render unless you scroll them offscreen)
66526         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10964 (inclusion of svg into svg leave a ghost invisible rectangle)
66527         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11680 (DojoKit SVG test chart fails to render (clipping issue?))
66528         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11883 (SVG Text has updating/repainting issues)
66529         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11907 (RenderSVGContainer does not mark itself for repaint after setting viewBox, slice or align) 
66530         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11913 (Invalidation issues in SVG javascript-based animation example)
66531         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11979 (SVG text does not respect font-size scaling in bbox calculation)
66532         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11984 (SVG <text> does not calculate the correct absoluteRepaintRect)
66533         Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=10745 (SVG layout needs to move out of DOM and into rendering tree during layout() call)
66535         Fixes text redrawing issues seen in svg/carto.net (when actually playing with those files, manually)
66536         Fixes svg/carto.net/window.svg (moving "Navigation Window" caused artefacts)
66537         Fixes svg/W3C-SVG-1.1/types-basicDOM-01-b.svg (bbox calculations had one pixel offset)
66539         Large SVG dynamic update rework/optimization. Also fixes SVG printing.
66541         Rename updateCanvasItem() to rebuildRenderer(), as this is what it really does.
66543         Do NOT call rebuildRenderer() in notifyAttributeChange() anymore,
66544         but override notifyAttributeChange() in SVGPathElement/SVGCircleElement/etc..
66545         (as only primitives using RenderPath as rendering object need this logic!)
66547         This should clarify what really happens, as discussed with Eric.
66549         Remove the invocations of notifyAttributeChange() in SVGLength. It's already
66550         handled by the JS bindings, and we do double updating work. Fixed.
66552         Because SVG dynamic updates have been flaky in the past, there was a hack introduced
66553         in RenderPath causing the updateCanvasItem() function to be called _on every layout_ (!!!).
66554         Finally this hack is gone. Offer RenderSVGContainer::absoluteRects() function to be able
66555         to use WebInspector for <g> elements (very handy!).
66557         Remove the unneeded "m_updateVectorial" bool from SVGStyledElement.
66558         Remove computeAbsoluteRepaintRect() from RenderSVGContainer/RenderSVGImage/RenderSVGText,
66559         as dicussed with David (we only need to reimplement getAbsoluteRepaintRect there).
66561         Make RenderSVGText::absoluteRects just use the getAbsoluteRepaintRect() function, instead of
66562         code duplication. Remove unneeded RenderSVGImage::layout() function (RenderImage does the same).
66564         Add new function SVGStyledElement::renderStyleForElement, which centralizes the manual style
66565         resolving needed for gradient stops.
66567         * ksvg2/svg/SVGCircleElement.cpp:
66568         (WebCore::SVGCircleElement::notifyAttributeChange):
66569         (WebCore::SVGCircleElement::hasRelativeValues):
66570         * ksvg2/svg/SVGCircleElement.h:
66571         * ksvg2/svg/SVGEllipseElement.cpp:
66572         (WebCore::SVGEllipseElement::notifyAttributeChange):
66573         (WebCore::SVGEllipseElement::hasRelativeValues):
66574         * ksvg2/svg/SVGEllipseElement.h:
66575         * ksvg2/svg/SVGImageElement.cpp:
66576         (WebCore::SVGImageElement::notifyAttributeChange):
66577         * ksvg2/svg/SVGImageElement.h:
66578         * ksvg2/svg/SVGLength.cpp:
66579         (WebCore::SVGLength::setValue):
66580         (WebCore::SVGLength::setValueInSpecifiedUnits):
66581         * ksvg2/svg/SVGLength.h:
66582         (WebCore::SVGLength::isRelative):
66583         * ksvg2/svg/SVGLineElement.cpp:
66584         (WebCore::SVGLineElement::notifyAttributeChange):
66585         (WebCore::SVGLineElement::hasRelativeValues):
66586         * ksvg2/svg/SVGLineElement.h:
66587         * ksvg2/svg/SVGLocatable.cpp:
66588         (WebCore::SVGLocatable::getBBox):
66589         * ksvg2/svg/SVGPathElement.cpp:
66590         (WebCore::SVGPathElement::notifyAttributeChange):
66591         * ksvg2/svg/SVGPathElement.h:
66592         * ksvg2/svg/SVGPolyElement.cpp:
66593         (WebCore::SVGPolyElement::notifyAttributeChange):
66594         * ksvg2/svg/SVGPolyElement.h:
66595         (WebCore::SVGPolyElement::rendererIsNeeded):
66596         * ksvg2/svg/SVGRectElement.cpp:
66597         (WebCore::SVGRectElement::notifyAttributeChange):
66598         (WebCore::SVGRectElement::hasRelativeValues):
66599         * ksvg2/svg/SVGRectElement.h:
66600         * ksvg2/svg/SVGSVGElement.cpp:
66601         (WebCore::SVGSVGElement::hasRelativeValues):
66602         * ksvg2/svg/SVGSVGElement.h:
66603         * ksvg2/svg/SVGStyledElement.cpp:
66604         (WebCore::SVGStyledElement::SVGStyledElement):
66605         (WebCore::SVGStyledElement::createRenderer):
66606         (WebCore::SVGStyledElement::notifyAttributeChange):
66607         (WebCore::SVGStyledElement::rebuildRenderer):
66608         * ksvg2/svg/SVGStyledElement.h:
66609         (WebCore::SVGStyledElement::hasRelativeValues):
66610         * rendering/RenderPath.cpp:
66611         (WebCore::RenderPath::setLocalTransform):
66612         (WebCore::RenderPath::fillContains):
66613         (WebCore::RenderPath::relativeBBox):
66614         (WebCore::RenderPath::layout):
66615         (WebCore::RenderPath::getAbsoluteRepaintRect):
66616         (WebCore::RenderPath::paint):
66617         (WebCore::RenderPath::nodeAtPoint):
66618         (WebCore::drawMarkerWithData):
66619         (WebCore::updateMarkerDataForElement):
66620         (WebCore::drawStartAndMidMarkers):
66621         (WebCore::RenderPath::drawMarkersIfNeeded):
66622         (WebCore::RenderPath::hasRelativeValues):
66623         * rendering/RenderPath.h:
66624         * rendering/RenderSVGContainer.cpp:
66625         (WebCore::RenderSVGContainer::layout):
66626         (WebCore::RenderSVGContainer::paint):
66627         (WebCore::RenderSVGContainer::calcViewport):
66628         (WebCore::RenderSVGContainer::setViewBox):
66629         (WebCore::RenderSVGContainer::setAlign):
66630         (WebCore::RenderSVGContainer::viewportTransform):
66631         (WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
66632         (WebCore::RenderSVGContainer::absoluteRects):
66633         (WebCore::RenderSVGContainer::fillContains):
66634         (WebCore::RenderSVGContainer::strokeContains):
66635         (WebCore::RenderSVGContainer::relativeBBox):
66636         (WebCore::RenderSVGContainer::setSlice):
66637         * rendering/RenderSVGContainer.h:
66638         * rendering/RenderSVGImage.cpp:
66639         (WebCore::RenderSVGImage::RenderSVGImage):
66640         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
66641         (WebCore::RenderSVGImage::relativeBBox):
66642         (WebCore::RenderSVGImage::imageChanged):
66643         (WebCore::RenderSVGImage::getAbsoluteRepaintRect):
66644         (WebCore::RenderSVGImage::absoluteRects):
66645         * rendering/RenderSVGImage.h:
66646         * rendering/RenderSVGText.cpp:
66647         (WebCore::RenderSVGText::getAbsoluteRepaintRect):
66648         (WebCore::RenderSVGText::layout):
66649         (WebCore::RenderSVGText::createInlineBox):
66650         (WebCore::RenderSVGText::absoluteRects):
66651         (WebCore::RenderSVGText::relativeBBox):
66652         * rendering/RenderSVGText.h:
66653         * rendering/SVGInlineFlowBox.cpp:
66654         (WebCore::placePositionedBoxesHorizontally):
66656 2007-01-10  David Hyatt  <hyatt@apple.com>
66658         Make the selectionRect() method of RenderText better by reusing computeAbsoluteRepaintRect.  This enables
66659         the method to be multi-column aware and also to understand when the selection is clipped out by overflow.
66661         Reviewed by bdash
66663         * rendering/RenderText.cpp:
66664         (WebCore::RenderText::selectionRect):
66666 2007-01-10  David Hyatt  <hyatt@apple.com>
66668         Make the absolutePosition method multi-column aware.  Note that there is now a real problem with the
66669         absoluteRects method, since an object can split across multiple columns and break into multiple rects.
66670         absolutePosition just returns the top-left corner of the element's box in the first column in which it
66671         appears.
66673         Reviewed by bdash
66675         * rendering/RenderBlock.cpp:
66676         (WebCore::RenderBlock::adjustRectForColumns):
66677         * rendering/RenderBlock.h:
66678         * rendering/RenderBox.cpp:
66679         (WebCore::RenderBox::absolutePosition):
66680         (WebCore::RenderBox::computeAbsoluteRepaintRect):
66681         * rendering/RenderFlow.cpp:
66682         (WebCore::RenderFlow::getAbsoluteRepaintRect):
66684 2007-01-09  David Hyatt  <hyatt@apple.com>
66686         Avoid crashing when repainting multiple columns... make sure to use the current vector's size and
66687         not the newly-computed column count.
66689         * rendering/RenderBlock.cpp:
66690         (WebCore::RenderBlock::layoutColumns):
66691         (WebCore::RenderBlock::adjustRepaintRectForColumns):
66693 2007-01-09  David Hyatt  <hyatt@apple.com>
66695         Break up painting and hit testing of children into helper methods and add multi-column versions for both.
66696         
66697         Make incremental repainting able to invalidate the right spot in multiple column layouts so that e.g., link
66698         hover works.
66700         Turn off selection gap filling in columns for now until it can be made to work correctly.
66702         Improve the column balancing heuristic by adding in the block's lineHeight/2 to each column initially to
66703         account for column break adjustments that shrink the columns slightly.  Avoid clipping of the last column's
66704         contents by ensuring it gets all the remaining available height.
66706         Reviewed by mitz
66708         * rendering/RenderBlock.cpp:
66709         (WebCore::RenderBlock::paintColumns):
66710         (WebCore::RenderBlock::paintContents):
66711         (WebCore::RenderBlock::paintObject):
66712         (WebCore::RenderBlock::fillSelectionGaps):
66713         (WebCore::RenderBlock::nodeAtPoint):
66714         (WebCore::RenderBlock::hitTestColumns):
66715         (WebCore::RenderBlock::layoutColumns):
66716         (WebCore::RenderBlock::adjustRepaintRectForColumns):
66717         * rendering/RenderBlock.h:
66718         * rendering/RenderBox.cpp:
66719         (WebCore::RenderBox::computeAbsoluteRepaintRect):
66720         * rendering/RenderFlow.cpp:
66721         (WebCore::RenderFlow::getAbsoluteRepaintRect):
66723 2007-01-09  Remi Zara  <remi_zara@mac.com>
66725         Reviewed by Darin and Eric.
66727         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
66729         Don't use memset to set float to 0
66731         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
66732         (WebCore::cgGradientCallback):
66734 2007-01-09  Anders Carlsson  <acarlsson@apple.com>
66736         Reviewed by Brady.
66738         Add default constructor to SharedBuffer.
66740         * platform/SharedBuffer.cpp:
66741         (WebCore::SharedBuffer::SharedBuffer):
66742         * platform/SharedBuffer.h:
66744 2007-01-09  David Hyatt  <hyatt@apple.com>
66746         This patch gets rudimentary column layout working.  Normal flow content only gets laid out into
66747         columns properly and painted correctly initially.  What doesn't work: hit testing, incremental repainting,
66748         column rule painting, child layers.
66750         Some work needs to be done on the render tree dumper before column tests will be
66751         meaningful.
66753         Also reworked overflow and fixed a bunch of bugs with the computation of overflow.  These include an error
66754         in the height calculations caused by not adding in the horizontal scrollbar height and other errors caused
66755         by not checking overflow in lowest/rightmostPosition.  Existing tests improve their rendering to match
66756         Firefox with this change.
66758         Fixed a bug where a table cell incorrectly expanded to encompass floats inside an overflow:auto block.
66759         This should not have happened.  Covered by new test fast/overflow/table-overflow-float.html.
66761         Reviewed by mitz
66763         * page/Frame.cpp:
66764         * rendering/RenderBlock.cpp:
66765         (WebCore:::RenderFlow):
66766         (WebCore::RenderBlock::layoutBlock):
66767         (WebCore::RenderBlock::paintContents):
66768         (WebCore::RenderBlock::paintChildren):
66769         (WebCore::RenderBlock::paintObject):
66770         (WebCore::RenderBlock::lowestPosition):
66771         (WebCore::RenderBlock::rightmostPosition):
66772         (WebCore::RenderBlock::leftmostPosition):
66773         (WebCore::RenderBlock::avoidsFloats):
66774         (WebCore::RenderBlock::nodeAtPoint):
66775         (WebCore::RenderBlock::hitTestContents):
66776         (WebCore::RenderBlock::layoutColumns):
66777         * rendering/RenderBlock.h:
66778         (WebCore::RenderBlock::hasOverhangingFloats):
66779         (WebCore::RenderBlock::hasColumns):
66780         * rendering/RenderFlexibleBox.cpp:
66781         (WebCore::RenderFlexibleBox::layoutBlock):
66782         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
66783         (WebCore::RenderFlexibleBox::layoutVerticalBox):
66784         * rendering/RenderFlow.cpp:
66785         (WebCore::RenderFlow::paintLines):
66786         (WebCore::RenderFlow::lowestPosition):
66787         (WebCore::RenderFlow::rightmostPosition):
66788         (WebCore::RenderFlow::leftmostPosition):
66789         * rendering/RenderFlow.h:
66790         (WebCore::RenderFlow::hasColumns):
66791         * rendering/RenderListMarker.cpp:
66792         (WebCore::RenderListMarker::paint):
66793         * rendering/RenderObject.h:
66794         (WebCore::RenderObject::expandsToEncloseOverflow):
66795         * rendering/RenderTableCell.h:
66796         (WebCore::RenderTableCell::expandsToEncloseOverflow):
66797         * rendering/RenderView.cpp:
66798         (WebCore::RenderView::paint):
66800 2007-01-09  Darin Adler  <darin@apple.com>
66802         - update all 2007 Apple copyrights for the new company name
66804         * css/cssstyleselector.cpp:
66805         * html/HTMLLIElement.cpp:
66806         * platform/CharacterNames.h:
66807         * platform/TextBreakIterator.h:
66808         * platform/TextBreakIteratorICU.cpp:
66809         * platform/graphics/ImageBuffer.h:
66810         * rendering/CounterNode.cpp:
66811         * rendering/CounterNode.h:
66812         * rendering/RenderBox.h:
66813         * rendering/RenderContainer.cpp:
66814         * rendering/RenderCounter.cpp:
66815         * rendering/RenderCounter.h:
66816         * rendering/RenderImage.h:
66817         * rendering/RenderListItem.h:
66818         * rendering/RenderListMarker.h:
66819         * rendering/RenderObject.cpp:
66820         * rendering/RenderObject.h:
66821         * rendering/RenderStyle.cpp:
66822         * rendering/RenderStyle.h:
66823         * rendering/RenderTable.cpp:
66824         * rendering/RenderTableCell.cpp:
66825         * rendering/RenderTableCell.h:
66826         * rendering/RenderText.cpp:
66827         * rendering/RenderText.h:
66828         * rendering/RenderTreeAsText.cpp:
66829         * rendering/SVGRenderTreeAsText.cpp:
66830         * rendering/break_lines.cpp:
66832 2007-01-09  Justin Garcia  <justin.garcia@apple.com>
66834         Reviewed by john
66836         <rdar://problem/4840662>
66837         REGRESSION: Mail crash when dragging text into a link
66838         
66839         moveParagraphs fails to move content into a display:block 
66840         anchor because of code in positionAvoidingSpecialElementBoundary,
66841         and so it infinitely recurs.
66842         
66843         * editing/htmlediting.cpp:
66844         (WebCore::positionAvoidingSpecialElementBoundary): Don't avoid anchors
66845         that have display:block so that content is inserted in the expected
66846         paragraph.  This fixes the bug and weird behavior when typing before/after
66847         anchors with display:block.
66849 2007-01-09  Rob Buis  <buis@kde.org>
66851         Reviewed by Darin.
66853         http://bugs.webkit.org/show_bug.cgi?id=12145
66854         Color parsing is too relaxed in strict mode
66855         http://bugs.webkit.org/show_bug.cgi?id=12166
66856         REGRESSION (r18480): "336633" is not parsed as a color
66858         Fix a regression by using String::format return value.
66859         Also make strict mode more strict for cases where hexcolors
66860         lack a #.
66862         * css/cssparser.cpp:
66863         (WebCore::CSSParser::parseColor):
66864         (WebCore::CSSParser::parseColorFromValue):
66865         * css/cssparser.h:
66867 2007-01-09  Darin Adler  <darin@apple.com>
66869         Reviewed by Maciej.
66871         - fixed regression where redirects did not have user-agent any more
66873         Showed up as a failure in one of the http tests, so no new test needed.
66875         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::willSendRequest):
66876         Don't use a copy of the ResourceRequest; pass the original so it can be modified.
66878 2007-01-09  Mitz Pettel  <mitz@webkit.org>
66880         Reviewed by Darin.
66882         - fix http://bugs.webkit.org/show_bug.cgi?id=11078
66883           Forms Don't Submit (ASP Pages)
66885         Test: fast/dom/collection-namedItem-via-item.html
66887         * bindings/js/kjs_html.cpp:
66888         (KJS::JSHTMLCollectionProtoFunc::callAsFunction): Changed item() to fall back
66889         to namedItem() if its argument does not convert to a number.
66891 2007-01-09  Darin Adler  <darin@apple.com>
66893         Reviewed by Maciej.
66895         - fix http://bugs.webkit.org/show_bug.cgi?id=12174
66896           improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
66898         - got rid of namespace prefixes from most uses of WTF::Unicode
66900         - updated for removal of WTF::Unicode::memcmp
66901         - updated for renaming of WTF::Unicode::strcasecmp to umemcasecmp.
66903         - unified constants for special Unicode characters in a new
66904           CharacterNames.h header
66906         * WebCore.xcodeproj/project.pbxproj:
66907         * css/cssparser.cpp:
66908         (WebCore::ParseString::lower):
66909         * dom/Document.cpp:
66910         (WebCore::isValidNameStart):
66911         (WebCore::isValidNamePart):
66912         * dom/Position.cpp:
66913         (WebCore::Position::leadingWhitespacePosition):
66914         (WebCore::Position::trailingWhitespacePosition):
66915         * editing/CompositeEditCommand.cpp:
66916         (WebCore::isWhitespace):
66917         * editing/HTMLInterchange.cpp:
66918         * editing/TextIterator.cpp:
66919         (WebCore::CircularSearchBuffer::CircularSearchBuffer):
66920         (WebCore::CircularSearchBuffer::append):
66921         * editing/htmlediting.cpp:
66922         (WebCore::stringWithRebalancedWhitespace):
66923         (WebCore::nonBreakingSpaceString):
66924         * editing/htmlediting.h:
66925         * html/HTMLFontElement.cpp:
66926         (WebCore::parseFontSizeNumber):
66927         * html/HTMLParser.cpp:
66928         (WebCore::HTMLParser::handleError):
66929         * html/HTMLSelectElement.cpp:
66930         (WebCore::stripLeadingWhiteSpace):
66931         * platform/Font.cpp:
66932         (WebCore::WidthIterator::advance):
66933         (WebCore::WidthIterator::normalizeVoicingMarks):
66934         * platform/GlyphMap.cpp:
66935         (WebCore::GlyphMap::locatePage):
66936         * platform/MimeTypeRegistry.h:
66937         * platform/StringHash.h:
66938         * platform/StringImpl.cpp:
66939         (WebCore::isSpace):
66940         (WebCore::StringImpl::append):
66941         (WebCore::StringImpl::insert):
66942         (WebCore::StringImpl::truncate):
66943         (WebCore::StringImpl::remove):
66944         (WebCore::parseLength):
66945         (WebCore::StringImpl::isLower):
66946         (WebCore::StringImpl::lower):
66947         (WebCore::StringImpl::upper):
66948         (WebCore::StringImpl::secure):
66949         (WebCore::StringImpl::foldCase):
66950         (WebCore::StringImpl::capitalize):t
66951         (WebCore::StringImpl::toInt):
66952         (WebCore::equalIgnoringCase):
66953         (WebCore::StringImpl::find):
66954         * platform/TextBoundaries.h:
66955         * platform/TextCodec.h:
66956         * platform/TextCodecLatin1.cpp:
66957         * platform/TextEncoding.h:
66958         * platform/TextEncodingRegistry.h:
66959         * platform/mac/PasteboardMac.mm:
66960         (WebCore::Pasteboard::writeSelection):
66961         * platform/mac/TextCodecMac.cpp:
66962         (WebCore::TextCodecMac::decode):
66963         * rendering/RenderBlock.cpp:
66964         (WebCore::RenderBlock::updateFirstLetter):
66965         * rendering/RenderListMarker.cpp:
66966         (WebCore::listMarkerText):
66967         (WebCore::RenderListMarker::paint):
66968         * rendering/RenderText.cpp:
66969         (WebCore::RenderText::widthFromCache):
66970         (WebCore::isSpaceAccordingToStyle):
66971         (WebCore::RenderText::setInternalString):
66972         * rendering/RenderTreeAsText.cpp:
66973         (WebCore::quoteAndEscapeNonPrintables):
66974         (WebCore::operator<<):
66975         * rendering/bidi.cpp:
66976         (WebCore::BidiState::BidiState):
66977         (WebCore::BidiContext::BidiContext):
66978         (WebCore::bidiNext):
66979         (WebCore::bidiFirst):
66980         (WebCore::BidiIterator::direction):
66981         (WebCore::appendRun):
66982         (WebCore::embed):
66983         (WebCore::RenderBlock::bidiReorderLine):
66984         (WebCore::RenderBlock::layoutInlineChildren):
66985         (WebCore::skipNonBreakingSpace):
66986         (WebCore::RenderBlock::findNextLineBreak):
66987         * rendering/break_lines.cpp:
66988         (WebCore::nextBreakablePosition):
66989         * rendering/break_lines.h:
66990         * xml/XPathParser.cpp:
66991         (WebCore::XPath::charCat):
66993 2007-01-09  Matt Perry  <mpcomplete@chromium.org>
66995         Reviewed by Darin.
66997         - fix http://bugs.webkit.org/show_bug.cgi?id=12170
66998           RenderView holds dangling reference to RenderObjects as selection markers
67000         This fixes the crash seen on Windows -- the underlying problem
67001         may still exist.
67003         * rendering/RenderText.h:
67004         (WebCore::RenderText::selectionState):
67005         Change the m_selectionState enum-bitfield to an unsigned-bitfield,
67006         because enums on Windows are signed, which caused it to become
67007         negative (whereas the valid values are all positive).
67009 2007-01-09  Darin Adler  <darin@apple.com>
67011         Reviewed by Hyatt.
67013         - http://bugs.webkit.org/show_bug.cgi?id=12175
67014           port break_lines.cpp to be platform independent
67016         * platform/TextBreakIterator.h: Added lineBreakIterator.
67017         Removed ICU-specific stuff from the header.
67019         * platform/TextBreakIteratorICU.cpp:
67020         (WebCore::setUpIterator): Added helper to be shared by the three different
67021         creation functions.
67022         (WebCore::characterBreakIterator): Changed to use setUpIterator.
67023         (WebCore::wordBreakIterator): Ditto.
67024         (WebCore::lineBreakIterator): Added.
67026         * platform/qt/TextBreakIteratorQt.cpp:
67027         (WebCore::lineBreakIterator): Added a stub.
67029         * rendering/break_lines.cpp:
67030         (WebCore::isBreakableSpace): Added.
67031         (WebCore::shouldBreakAfter): Added.
67032         (WebCore::needsAdvancedBreakAnalysis): Added.
67033         (WebCore::nextBreakablePosition): Changed to use TextBreakIterator on platforms
67034         other than Mac.
67036 2007-01-09  Maciej Stachowiak  <mjs@apple.com>
67038         Reviewed by Darin.
67040         - move WebDataProtocol load handling from ResourceLoader to MainResourceLoader
67041         
67042         (it's only ever used for main resources)
67044         * loader/ResourceLoader.h:
67045         (WebCore::ResourceLoader::setRequest):
67046         * loader/mac/MainResourceLoaderMac.mm:
67047         (WebCore::MainResourceLoader::willSendRequest):
67048         (WebCore::MainResourceLoader::continueAfterContentPolicy):
67049         * loader/mac/ResourceLoaderMac.mm:
67050         (WebCore::ResourceLoader::willSendRequest):
67051         (WebCore::ResourceLoader::didReceiveResponse):
67053 2007-01-09  Rob Buis  <buis@kde.org>
67055         Reviewed by Eric.
67057         http://bugs.webkit.org/show_bug.cgi?id=12129
67058         repaint issue after setting viewBox attribute with ECMAScript
67060         Make sure RenderSVGContainer updates after setting viewBox from js.
67062         * ksvg2/svg/SVGSVGElement.cpp:
67063         (WebCore::SVGSVGElement::parseMappedAttribute):
67064         * rendering/RenderSVGContainer.cpp:
67065         (WebCore::RenderSVGContainer::setViewBox):
67067 2007-01-09  Lars Knoll <lars@trolltech.com>
67069         Make the Qt build compile... again!
67071         * WebCore.pro:
67072         * loader/qt/FrameLoaderQt.cpp:
67073         * platform/graphics/qt/GraphicsContextQt.cpp:
67074         * platform/graphics/qt/ImageBufferQt.cpp:
67075         (WebCore::ImageBuffer::create):
67076         * platform/qt/WidgetQt.cpp:
67077         (WebCore::Widget::focusPolicy):
67079 2007-01-09  David Hyatt  <hyatt@apple.com>
67081         Fix for background: inherit bug where background-color wasn't getting properly overridden.  This was a
67082         regression from Safari 1.3 to 2.0.
67084         Reviewed by bdash
67086         fast/backgrounds/background-color-inherit-bug.html
67088         * css/cssstyleselector.cpp:
67089         (WebCore::CSSStyleSelector::applyProperty):
67091 2007-01-08  Brady Eidson <beidson@apple.com>
67093         Reviewed by Brian Dash
67095         <rdar://problem/4895178> 
67096         WebCore::BackForwardList vector should be backed by a HashSet to remove
67097         the potential expense in frequently calling BackForwardList::containsItem()
67099         * history/BackForwardList.cpp:
67100         (WebCore::BackForwardList::addItem): Maintain HashSet as well as Vector
67101         (WebCore::BackForwardList::setCapacity): Ditto
67102         (WebCore::BackForwardList::close): Ditto
67103         (WebCore::BackForwardList::removeItem): Ditto
67104         (WebCore::BackForwardList::containsItem): Make a hash lookup instead of iterate 
67105         through the Vector
67106         * history/BackForwardList.h:
67108 2007-01-08  David Hyatt  <hyatt@apple.com>
67110         Fix a regression where layout is triggering on all recalcStyles, due to a bad comparison
67111         in the multicol assignment operator.
67113         * rendering/RenderStyle.cpp:
67114         (WebCore::StyleMultiColData::operator==):
67116 2007-01-08  Darin Adler  <darin@apple.com>
67118         - rolled out Beth's RenderFlow::destroy change, which broke 5 editing tests
67120         * rendering/InlineBox.cpp: (WebCore::InlineBox::root):
67121         * rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
67122         Used svn merge to roll the change out.
67124 2007-01-09  Mark Rowe  <mrowe@apple.com>
67126         Reviewed by Tim H.
67128         Build fix for 64-bit platforms.
67130         * platform/graphics/svg/SVGPaintServerGradient.h:
67131         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
67132         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
67134 2007-01-08  Anders Carlsson  <acarlsson@apple.com>
67136         Reviewed by Brady.
67138         Move some history related functions off the bridge and into FrameLoader directly.
67140         * loader/FrameLoader.cpp:
67141         (WebCore::FrameLoader::canGoBackOrForward):
67142         (WebCore::FrameLoader::getHistoryLength):
67143         (WebCore::FrameLoader::historyURL):
67144         * loader/mac/FrameLoaderMac.mm:
67145         * page/mac/WebCoreFrameBridge.h:
67147 2007-01-08  Sam Weinig  <sam@webkit.org>
67149         Reviewed by Mark.
67151         Adds outline-color to list of computable styles.
67153         * css/CSSComputedStyleDeclaration.cpp:
67154         (WebCore::):
67156 2007-01-08  Beth Dakin  <bdakin@apple.com>
67158         Reviewed by Hyatt.
67160         Fix for a bug that Adam, Hyatt, and I noticed when debugging 
67161         another problem.
67163         * rendering/InlineBox.cpp:
67164         (WebCore::InlineBox::root): Added assertion. If we are casting to a 
67165         root, we should make sure we are root.
67166         * rendering/RenderFlow.cpp:
67167         (WebCore::RenderFlow::destroy): It is not enough to remove the 
67168         child boxes for anonymous blocks. We need to be more thorough when 
67169         cleaning these up. Adam's test case illustrates the problem well.
67171 2007-01-08  John Sullivan  <sullivan@apple.com>
67173         Tweak to previous checkin
67175         * page/ContextMenuController.cpp:
67176         (WebCore::ContextMenuController::contextMenuItemSelected):
67177         Adam suggested I should nil-check frame->page()
67179 2007-01-08  John Sullivan  <sullivan@apple.com>
67181         Reviewed by Brady and Beth
67182         
67183         - fixed <rdar://problem/4912541> GMAIL: With selected text in a rich text message, choosing 
67184         "Search in Google" displays search results in the message body field
67186         * page/ContextMenuController.cpp:
67187         (WebCore::ContextMenuController::contextMenuItemSelected):
67188         Visit google URL in main frame rather than in current frame
67190 2007-01-08  David Hyatt  <hyatt@apple.com>
67192         Fix computed style errors for color properties that had invalid colors.
67193         They should return the value of the 'color' property when their colors
67194         are not valid.
67196         Fixed the computed style value for border-top-color (a typo was causing it to
67197         use border-left-color instead).
67199         Implement outline-color computed style.
67201         Reviewed by harrison
67203         * css/CSSComputedStyleDeclaration.cpp:
67204         (WebCore::currentColorOrValidColor):
67205         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67207 2007-01-08  Remi Zara  <remi_zara@mac.com>
67209         Reviewed by Darin and Eric.
67211         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
67212         Handle correctly cases where no stops are defined, cases where a
67213         stop offset value is less than previous stops offset value, and cases
67214         where a stop offset value is greater than 1.0.
67215         
67216         * platform/graphics/svg/SVGPaintServerGradient.cpp:
67217         (WebCore::SVGPaintServerGradient::setGradientStops): Don't sort stops
67218         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
67219         (WebCore::cgGradientCallback): When there are no stops, use a transparent
67220         fill
67221         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
67222         a stop offset must always be considered at greater or equal to all
67223         preceding stop offsets, but no more than 1.0
67225 2007-01-08  Timothy Hatcher  <timothy@apple.com>
67227         Reviewed by Geoff.
67229         <rdar://problem/4865325> please re-add auto font activation support in WebKit
67231         * platform/mac/WebFontCache.mm:
67232         (+[WebFontCache fontWithFamily:traits:size:]):
67234 2007-01-08  Darin Adler  <darin@apple.com>
67236         Reviewed by Adam.
67238         - http://bugs.webkit.org/show_bug.cgi?id=12143
67239           remove Widget code unneeded now that form elements do not use Widget
67241         * bindings/objc/DOMHTML.mm: (-[DOMHTMLSelectElement _activateItemAtIndex:]):
67242         Removed useless implementation that would only work with NSView-based
67243         <select> elements, and added a FIXME about the fact that this function
67244         doesn't do anything any more. I think it's used by Safari forms auto-fill.
67246         * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject rendererForView:]):
67247         Removed code that depends on elementForView:, since that always returns
67248         nil now.
67250         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::~HTMLFormElement):
67251         Use a formDestroyed() function rather than clearing m_form directly so that
67252         this class doesn't have to be a friend of HTMLGenericFormElement.
67254         * html/HTMLGenericFormElement.h: Removed now-unneeded friend declaration
67255         for HTMLFormElement. Moved definition of supportsFocus into the .cpp file.
67256         Added a public formDestroyed function for use by HTMLFormElement.
67257         * html/HTMLGenericFormElement.cpp:
67258         (WebCore::HTMLGenericFormElement::attach): Removed widget-specific code.
67259         (WebCore::HTMLGenericFormElement::isKeyboardFocusable): Ditto.
67260         (WebCore::HTMLGenericFormElement::isMouseFocusable): Ditto.
67261         (WebCore::HTMLGenericFormElement::supportsFocus): Added this here; it was
67262         in the header file before, for no good reason.
67264         * page/EventHandler.h: Removed unused Mac-specific
67265         currentEventIsMouseDownInWidget.
67266         * page/mac/EventHandlerMac.mm: Ditto.
67268         * page/Frame.cpp: (WebCore::Frame::frameForWidget): Changed to use
67269         RenderWidget to find the frame rather than the WigetClient element()
67270         function.
67272         * page/mac/FrameMac.h: Removed unused bridgeForWidget.
67273         * page/mac/FrameMac.mm: Ditto.
67275         * page/mac/WebCoreFrameBridge.h: Removed elementForView.
67276         * page/mac/WebCoreFrameBridge.mm: Ditto. While the scroll bar still did
67277         implement WebCoreWidgetHolder, it does not correspond to a DOM element,
67278         so this method was always returning nil.
67280         * platform/Widget.h: Moved unused types and functions that are still
67281         in the platform-specific implementations into a "to be deleted" section:
67282         FocusPolicy, NoFocus, TabFocus, ClickFocus, StrongFocus, WheelFocus,
67283         lockDrawingFocus, font, focusPolicy, hasFocus, clearFocus, setFont,
67284         disableFlushDrawing, enableFlushDrawing, unlockDrawingFocus.
67285         Removed unused functions that are not in platform-specific implementations:
67286         sizeHint, baselinePosition, checksDescendantsForFocus.
67287         * platform/Widget.cpp: Removed functions.
67289         * platform/WidgetClient.h: Emptied out the class. Soon we can delete it.
67291         * platform/mac/PlatformScrollBarMac.mm: (-[WebCoreScrollBar mouseDown:]):
67292         Got rid of unneeded includes, removed use of the WebCoreWidgetHolder
67293         protocol and the one method in it, and changed the calls to beforeMouseDown
67294         and afterMouseDown to pass the widget pointer in.
67296         * platform/mac/WebCoreWidgetHolder.h: Emptied out the file -- to be deleted
67297         later.
67299         * platform/mac/WidgetMac.mm:
67300         (WebCore::Widget::~Widget): Removed code to manage deferredFirstResponder.
67301         (WebCore::Widget::hasFocus): Removed body of function and replaced with
67302         an assertion that it's never called. Later we'll remove it.
67303         (WebCore::Widget::setFocus): Tweaked a bit to work given changes to the
67304         FrameMac class. Also added a FIXME. Given how this works, it does not
67305         belong in the platform layer.
67306         (WebCore::Widget::clearFocus): Removed body of function and replaced with
67307         an assertion that it's never called. Later we'll remove it.
67308         (WebCore::Widget::focusPolicy): Ditto.
67309         (WebCore::Widget::font): Ditto.
67310         (WebCore::Widget::setFont): Ditto.
67311         (WebCore::Widget::lockDrawingFocus): Ditto.
67312         (WebCore::Widget::unlockDrawingFocus): Ditto.
67313         (WebCore::Widget::disableFlushDrawing): Ditto.
67314         (WebCore::Widget::enableFlushDrawing): Ditto.
67315         (WebCore::Widget::paint): Removed obsolete comment.
67316         (WebCore::Widget::sendConsumedMouseUp): Removed body of function and replaced with
67317         an assertion that it's never called. Later we'll remove it.
67318         (WebCore::Widget::setIsSelected): Tweaked a bit to work given changes to the
67319         FrameMac class. Also added a FIXME. Given how this works, it does not
67320         belong in the platform layer.
67321         (WebCore::Widget::beforeMouseDown): Changed to take an explicit Widget parameter.
67322         (WebCore::Widget::afterMouseDown): Ditto.
67324         * rendering/RenderApplet.cpp:
67325         (WebCore::RenderApplet::intrinsicWidth): Changed to not call sizeHint() any more.
67326         I didn't change the values returned by the function, but they make no sense and
67327         this should probably be fixed later.
67328         (WebCore::RenderApplet::intrinsicHeight): Ditto.
67330         * rendering/RenderWidget.h: Removed unneeded WidgetClient.h include. Changed
67331         RenderWidget to no longer inherit from WidgetClient. Added a find function to find
67332         a RenderWidget given a Widget. Removed all the virtual functions that override
67333         WidgetClient hooks.
67334         * rendering/RenderWidget.cpp: Removed all the WidgetClient functions.
67335         (WebCore::widgetRendererMap): Added. Map that gives the RenderWidget for each
67336         Widget that is owned by a RenderWidget.
67337         (WebCore::RenderWidget::destroy): Removed the setClient call and added a call to
67338         remove the widget from the widgetRendererMap.
67339         (WebCore::RenderWidget::setWidget): Ditto.
67340         (WebCore::RenderWidget::setStyle): Removed the call to Widget::setFont.
67341         (WebCore::RenderWidget::find): Added. Returns the RenderWidget for a Widget, if any.
67343         - other changes
67345         * dom/Node.cpp:
67346         (WebCore::Node::dump): Removed unnecessary use of DeprecatedString.
67347         (WebCore::appendAttributeDesc): Ditto.
67348         (WebCore::Node::showNode): Ditto.
67349         (WebCore::Node::formatForDebugger): Ditto.
67351         * loader/CachedImage.cpp: (WebCore::CachedImage::createImage): Cleaned up
67352         conditional compilation so adding more MIME types here doesn't make the
67353         function more and more difficult to read.
67355         * page/Frame.h: Removed unneeded includes and declarations.
67356         Tweaked formatting.
67357         * page/Page.h: Removed unneeded declarations.
67358         * platform/ScrollView.h: Removed unneeded includes.
67360         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::renderName): Tweaked formatting.
67362 2007-01-08  Mitz Pettel  <mitz@webkit.org>
67364         Reviewed by Darin.
67366         - fix http://bugs.webkit.org/show_bug.cgi?id=12162
67367           The inheritableProperties array is duplicated
67369         No test possible (no change to functionality).
67371         * css/CSSComputedStyleDeclaration.cpp:
67372         (WebCore::CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom): Added.
67373         Removes the inheritable properties that CSSComputedStyleDeclaration knows how to compute
67374         from the given mutable declaration.
67375         * css/CSSComputedStyleDeclaration.h:
67376         * css/CSSMutableStyleDeclaration.cpp: Removed one copy of the inheritableProperties array.
67377         * css/CSSMutableStyleDeclaration.h:
67378         * editing/ReplaceSelectionCommand.cpp:
67379         (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Changed to call
67380         CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom.
67382 2007-01-08  Alexey Proskuryakov  <ap@webkit.org>
67384         Reviewed by Darin.
67386         http://bugs.webkit.org/show_bug.cgi?id=12099
67387         XMLHttpRequest shouldn't honor a charset specified via setRequestHeader
67389         Test: http/tests/xmlhttprequest/request-encoding.html
67391         * xml/xmlhttprequest.cpp:
67392         (WebCore::XMLHttpRequest::send): Don't try to get the charset from Content-Type. Keep checking 
67393         for unknown charsets, because that will be needed again when we start using document.xmlEncoding.
67395 2007-01-08  Alexey Proskuryakov  <ap@webkit.org>
67397         Reviewed by Darin.
67399         http://bugs.webkit.org/show_bug.cgi?id=7640
67400         Menu items are displayed as "undefined"
67402         * bindings/js/kjs_dom.cpp:
67403         (KJS::DOMNodeProtoFunc::callAsFunction):
67404         * bindings/js/kjs_domnode.h:
67405         (KJS::DOMNode::):
67406         Removed Node::item. No idea why it was there in the first place.
67408         * bindings/js/kjs_html.cpp:
67409         (KJS::HTMLElementFunction::callAsFunction):
67410         * bindings/js/kjs_html.h:
67411         (KJS::JSHTMLElement::):
67412         Added HTMLSelectElement::item. It is not in DOM2 IDL, but the spec seems to mentions it anyway:
67413         "The contained options can be directly accessed through the select element as a collection."
67415         * html/HTMLSelectElement.cpp:
67416         (WebCore::HTMLSelectElement::namedItem):
67417         (WebCore::HTMLSelectElement::item):
67418         * html/HTMLSelectElement.h:
67419         * html/HTMLSelectElement.idl:
67420         Added this method to DOM and IDL, too. Made namedItem() non-virtual.
67422 2007-01-08  Beth Dakin  <bdakin@apple.com>
67424         Reviewed by Maciej.
67426         Fix for <rdar://problem/4912254> REGRESSION: After copying text to 
67427         the clipboard, the paste contextual remains dimmed when it should
67428         be active
67430         No layout test for context menu problems.
67432         * platform/ContextMenu.cpp:
67433         (WebCore::ContextMenu::checkOrEnableIfNeeded): Remove check to see 
67434         if the content is richly editable; it only has to be regular 
67435         editable and the call to canPaste() takes care of that.
67437 2007-01-08  Sam Weinig  <sam@webkit.org>
67439         Reviewed by Mitz.
67441         Attempt to fix build for buildbots.
67443         * rendering/RenderBlock.cpp:
67444         (WebCore::RenderBlock::columnGap):
67445         (WebCore::RenderBlock::calcColumnWidth):
67447 2007-01-08  Darin Adler  <darin@apple.com>
67449         Reviewed by Maciej.
67451         - fix http://bugs.webkit.org/show_bug.cgi?id=3232
67452           CSS2: Web Kit does not support all list style types
67454         Test case showed problems in cjk-ideographic and hebrew
67455         Test: fast/lists/w3-list-styles.html
67457         * rendering/RenderListMarker.cpp:
67458         (WebCore::toCJKIdeographic): Fix the algorithm so it doesn't include leading zeroes.
67459         I had misread the part that says you start with the decimal form of the number.
67460         Fix an assertion that was too stringent. Fix the code to collapse consecutive zeroes
67461         so that it doesn't get confused by intervening "noChar" characters.
67462         (WebCore::RenderListMarker::paint): Reverse the text before painting if the first character's
67463         direction is right to left.
67465 2007-01-08  Darin Adler  <darin@apple.com>
67467         Reviewed by Beth.
67469         - http://bugs.webkit.org/show_bug.cgi?id=12142
67470           render tree dump for test results should include the value of list markers
67472         * rendering/RenderTreeAsText.cpp:
67473         (WebCore::getTagName): Changed to use String instead of DeprecatedString.
67474         (WebCore::quoteAndEscapeNonPrintables): Ditto. Also moved up so it can be used
67475         in the operator below.
67476         (WebCore::operator<<): Added clause for RenderListMarker that dumps the value
67477         of the list marker's text.
67478         (WebCore::nodePosition): Changed to use String instead of DeprecatedString.
67479         * rendering/SVGRenderTreeAsText.cpp:
67480         (WebCore::TextStreamSeparator::TextStreamSeparator): Changed to use String
67481         instead of DeprecatedString.
67482         (WebCore::getTagName): Ditto.
67483         (WebCore::write): Ditto.
67485 2007-01-08  Sam Weinig  <sam@webkit.org>
67487         Reviewed by ap and the rubber stamp of Maciej.
67489         Patch for http://bugs.webkit.org/show_bug.cgi?id=12164
67490         Cleanup Tokenizers
67492         - Moves Tokenizer class into its own file.
67493         - Move XMLTokenizer declaration from XMLTokenizer.cpp to XMLTokenizer.h
67494         - Fixup #includes.
67496         * WebCore.xcodeproj/project.pbxproj:
67497         * dom/Document.cpp:
67498         (WebCore::Document::createTokenizer):
67499         * dom/Tokenizer.h: Added.
67500         (WebCore::Tokenizer::Tokenizer):
67501         (WebCore::Tokenizer::~Tokenizer):
67502         (WebCore::Tokenizer::stopParsing):
67503         (WebCore::Tokenizer::processingData):
67504         (WebCore::Tokenizer::executingScript):
67505         (WebCore::Tokenizer::wantsRawData):
67506         (WebCore::Tokenizer::writeRawData):
67507         (WebCore::Tokenizer::inViewSourceMode):
67508         (WebCore::Tokenizer::setInViewSourceMode):
67509         (WebCore::Tokenizer::wellFormed):
67510         (WebCore::Tokenizer::lineNumber):
67511         (WebCore::Tokenizer::columnNumber):
67512         * dom/XMLTokenizer.cpp:
67513         * dom/XMLTokenizer.h:
67514         (WebCore::XMLTokenizer::):
67515         (WebCore::XMLTokenizer::setIsXHTMLDocument):
67516         (WebCore::XMLTokenizer::isXHTMLDocument):
67517         (WebCore::XMLTokenizer::wellFormed):
67518         * html/HTMLElement.cpp:
67519         * html/HTMLTokenizer.h:
67520         (WebCore::Token::reset):
67521         (WebCore::HTMLTokenizer::checkBuffer):
67522         (WebCore::HTMLTokenizer::checkScriptBuffer):
67523         (WebCore::HTMLTokenizer::State::State):
67524         (WebCore::HTMLTokenizer::State::setBit):
67525         * xml/XSLTProcessor.cpp:
67527 2007-01-08  Sam Weinig  <sam@webkit.org>
67529         Reviewed by Tim H.
67531         Adds -webkit-box-shadow to list of computable styles.
67533         * css/CSSComputedStyleDeclaration.cpp:
67534         (WebCore::):
67536 2007-01-08  Rob Buis  <buis@kde.org>
67538         Reviewed by bdash.
67540         Initialize the member vars, fixes testcases
67541         pointer-events-path.svg and pointer-events-text.svg
67542         on the PPC build.
67544         * ksvg2/misc/PointerEventsHitRules.cpp:
67545         (WebCore::PointerEventsHitRules::PointerEventsHitRules):
67547 2007-01-08  David Hyatt  <hyatt@apple.com>
67549         This patch computes the correct column width and column count.  It ensures that content lays out constrained
67550         to the column width in one long strip.  It does not yet balance the long strip into multiple columns.
67552         Reviewed by Mark
67554         * rendering/RenderBlock.cpp:
67555         (WebCore:::RenderFlow):
67556         (WebCore::RenderBlock::layoutBlock):
67557         (WebCore::RenderBlock::rightOffset):
67558         (WebCore::RenderBlock::availableWidth):
67559         (WebCore::RenderBlock::columnGap):
67560         (WebCore::RenderBlock::calcColumnWidth):
67561         * rendering/RenderBlock.h:
67562         * rendering/RenderStyle.h:
67563         (WebCore::RenderStyle::setColumnWidth):
67565 2007-01-08  David Hyatt  <hyatt@apple.com>
67567         Fix column-count so that it supports auto just like column-width does.
67569         Add a new function, availableWidth(), that will be used to return the width available to content placed inside
67570         a block.  For now it still returns contentWidth(), so no behavioral change has occurred yet.
67572         Subclass calcWidth() in RenderBlock, but don't change anything yet.  This is where RenderBlock will calc the
67573         correct column width.
67575         Reviewed by mark
67577         * css/CSSComputedStyleDeclaration.cpp:
67578         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67579         * css/cssstyleselector.cpp:
67580         (WebCore::CSSStyleSelector::applyProperty):
67581         * rendering/RenderBlock.cpp:
67582         (WebCore::RenderBlock::leftRelOffset):
67583         (WebCore::RenderBlock::rightRelOffset):
67584         (WebCore::RenderBlock::getClearDelta):
67585         (WebCore::RenderBlock::availableWidth):
67586         (WebCore::RenderBlock::calcWidth):
67587         * rendering/RenderBlock.h:
67588         * rendering/RenderBox.cpp:
67589         (WebCore::RenderBox::containingBlockWidth):
67590         * rendering/RenderObject.cpp:
67591         (WebCore::RenderObject::containingBlockWidth):
67592         (WebCore::RenderObject::paddingTop):
67593         (WebCore::RenderObject::paddingBottom):
67594         (WebCore::RenderObject::paddingLeft):
67595         (WebCore::RenderObject::paddingRight):
67596         * rendering/RenderObject.h:
67597         (WebCore::RenderObject::availableWidth):
67598         * rendering/RenderStyle.cpp:
67599         (WebCore::StyleMultiColData::StyleMultiColData):
67600         (WebCore::StyleMultiColData::operator==):
67601         * rendering/RenderStyle.h:
67602         (WebCore::RenderStyle::hasAutoColumnCount):
67603         (WebCore::RenderStyle::setColumnCount):
67604         (WebCore::RenderStyle::setHasAutoColumnCount):
67605         * rendering/RenderTable.cpp:
67606         (WebCore::RenderTable::calcWidth):
67608 2007-01-08  David Hyatt  <hyatt@apple.com>
67610         Fix z-index:inherit so that it works properly when inheriting from z-index:auto.
67612         Reviewed by eric
67614         fast/layers/zindex-inherit.html
67616         * css/cssstyleselector.cpp:
67617         (WebCore::CSSStyleSelector::applyProperty):
67619 2007-01-08  David Hyatt  <hyatt@apple.com>
67621         Add support for all of the CSS3 multi-column properties in preparation for implementing the
67622         feature.
67624         Reviewed by eric
67626         * css/CSSComputedStyleDeclaration.cpp:
67627         (WebCore::):
67628         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67629         * css/CSSMutableStyleDeclaration.cpp:
67630         (WebCore::):
67631         * css/CSSPropertyNames.in:
67632         * css/cssparser.cpp:
67633         (WebCore::CSSParser::parseValue):
67634         * css/cssstyleselector.cpp:
67635         (WebCore::CSSStyleSelector::applyProperty):
67636         * rendering/RenderStyle.cpp:
67637         (WebCore::StyleMultiColData::StyleMultiColData):
67638         (WebCore::StyleMultiColData::operator==):
67639         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
67640         (WebCore::StyleRareNonInheritedData::operator==):
67641         (WebCore::RenderStyle::RenderStyle):
67642         (WebCore::RenderStyle::diff):
67643         * rendering/RenderStyle.h:
67644         (WebCore::StyleMultiColData::operator!=):
67645         (WebCore::StyleMultiColData::ruleWidth):
67646         (WebCore::RenderStyle::columnWidth):
67647         (WebCore::RenderStyle::hasAutoColumnWidth):
67648         (WebCore::RenderStyle::columnCount):
67649         (WebCore::RenderStyle::columnGap):
67650         (WebCore::RenderStyle::hasAutoColumnGap):
67651         (WebCore::RenderStyle::columnRuleColor):
67652         (WebCore::RenderStyle::columnRuleStyle):
67653         (WebCore::RenderStyle::columnRuleWidth):
67654         (WebCore::RenderStyle::columnBreakBefore):
67655         (WebCore::RenderStyle::columnBreakInside):
67656         (WebCore::RenderStyle::columnBreakAfter):
67657         (WebCore::RenderStyle::setColumnWidth):
67658         (WebCore::RenderStyle::setHasAutoColumnWidth):
67659         (WebCore::RenderStyle::setColumnCount):
67660         (WebCore::RenderStyle::setColumnGap):
67661         (WebCore::RenderStyle::setHasAutoColumnGap):
67662         (WebCore::RenderStyle::setColumnRuleColor):
67663         (WebCore::RenderStyle::setColumnRuleStyle):
67664         (WebCore::RenderStyle::setColumnRuleWidth):
67665         (WebCore::RenderStyle::resetColumnRule):
67666         (WebCore::RenderStyle::setColumnBreakBefore):
67667         (WebCore::RenderStyle::setColumnBreakInside):
67668         (WebCore::RenderStyle::setColumnBreakAfter):
67669         (WebCore::RenderStyle::initialColumnCount):
67670         (WebCore::RenderStyle::initialColumnWidth):
67672 2007-01-07  Rob Buis  <buis@kde.org>
67674         Reviewed by Eric.
67676         http://bugs.webkit.org/show_bug.cgi?id=10587
67677         pointer-events is not implemented for RenderSVGImage or RenderSVGText
67679         Implement pointer-events for raster images and svg text.
67681         * WebCore.xcodeproj/project.pbxproj:
67682         * ksvg2/misc/PointerEventsHitRules.cpp: Added.
67683         (WebCore::PointerEventsHitRules::PointerEventsHitRules):
67684         * ksvg2/misc/PointerEventsHitRules.h: Added.
67685         (WebCore::PointerEventsHitRules::):
67686         * rendering/RenderPath.cpp:
67687         (WebCore::RenderPath::nodeAtPoint):
67688         * rendering/RenderPath.h:
67689         * rendering/RenderSVGImage.cpp:
67690         (WebCore::RenderSVGImage::nodeAtPoint):
67691         * rendering/RenderSVGImage.h:
67692         * rendering/RenderSVGText.cpp:
67693         (WebCore::RenderSVGText::nodeAtPoint):
67694         * rendering/RenderSVGText.h:
67696 2007-01-07  David Hyatt  <hyatt@apple.com>
67698         Fix a regression where border-radius was not clipping the background when border was set to none.
67699         Fix multi-line inline flow painting to properly apply border-radius to the background only at the
67700         beginning of the first line and end of the last line.
67702         Reviewed by eric
67704         * rendering/InlineFlowBox.cpp:
67705         (WebCore::InlineFlowBox::paintBackground):
67706         * rendering/RenderBox.cpp:
67707         (WebCore::RenderBox::paintBackground):
67708         (WebCore::RenderBox::paintBackgroundExtended):
67709         * rendering/RenderBox.h:
67710         * rendering/RenderObject.h:
67711         (WebCore::RenderObject::paintBackgroundExtended):
67713 2007-01-07  David Hyatt  <hyatt@apple.com>
67715         Add support for the CSS3 box-shadow property.
67717         Reviewed by olliej
67719         fast/box-shadow/ contains the tests for this feature.
67721         * platform/graphics/GraphicsContext.cpp:
67722         (WebCore::GraphicsContext::clipOutRoundedRect):
67723         * platform/graphics/GraphicsContext.h:
67724         * platform/graphics/cg/GraphicsContextCG.cpp:
67725         (WebCore::GraphicsContext::fillRoundedRect):
67726         (WebCore::GraphicsContext::clipOut):
67727         (WebCore::GraphicsContext::clipOutEllipseInRect):
67728         * platform/graphics/qt/GraphicsContextQt.cpp:
67729         (WebCore::GraphicsContext::fillRoundedRect):
67730         (WebCore::GraphicsContext::clipOut):
67731         (WebCore::GraphicsContext::clipOutEllipseInRect):
67732         * rendering/InlineFlowBox.cpp:
67733         (WebCore::InlineFlowBox::paint):
67734         (WebCore::InlineFlowBox::paintBoxShadow):
67735         (WebCore::InlineFlowBox::paintBoxDecorations):
67736         (WebCore::shouldDrawTextDecoration):
67737         (WebCore::InlineFlowBox::paintTextDecorations):
67738         * rendering/InlineFlowBox.h:
67739         * rendering/InlineRunBox.h:
67740         (WebCore::InlineRunBox::paintBoxDecorations):
67741         (WebCore::InlineRunBox::paintTextDecorations):
67742         * rendering/RenderBlock.cpp:
67743         (WebCore::RenderBlock::paintObject):
67744         * rendering/RenderBox.cpp:
67745         (WebCore::RenderBox::setStyle):
67746         (WebCore::RenderBox::paintBoxDecorations):
67747         (WebCore::RenderBox::paintBackgroundExtended):
67748         * rendering/RenderFieldset.cpp:
67749         (WebCore::RenderFieldset::paintBoxDecorations):
67750         * rendering/RenderHTMLCanvas.cpp:
67751         (WebCore::RenderHTMLCanvas::paint):
67752         * rendering/RenderImage.cpp:
67753         (WebCore::RenderImage::paint):
67754         * rendering/RenderImage.h:
67755         * rendering/RenderListMarker.cpp:
67756         (WebCore::RenderListMarker::paint):
67757         * rendering/RenderObject.cpp:
67758         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
67759         (WebCore::RenderObject::paintBoxShadow):
67760         (WebCore::RenderObject::dump):
67761         (WebCore::RenderObject::setStyle):
67762         * rendering/RenderObject.h:
67763         (WebCore::RenderObject::hasBoxDecorations):
67764         (WebCore::RenderObject::setHasBoxDecorations):
67765         * rendering/RenderSVGContainer.cpp:
67766         (WebCore::RenderSVGContainer::paint):
67767         * rendering/RenderTable.cpp:
67768         (WebCore::RenderTable::paint):
67769         (WebCore::RenderTable::paintBoxDecorations):
67770         * rendering/RenderTableCell.cpp:
67771         (WebCore::RenderTableCell::RenderTableCell):
67772         (WebCore::RenderTableCell::setStyle):
67773         (WebCore::RenderTableCell::paintBoxDecorations):
67774         * rendering/RenderWidget.cpp:
67775         (WebCore::RenderWidget::paint):
67777 2007-01-07  Rob Buis  <buis@kde.org>
67779         Reviewed by weinig.
67781         http://bugs.webkit.org/show_bug.cgi?id=10362
67782         SVG needs to support SVGError events and some form of "error state"
67784         Report SVG warnings and errors on (JS) console.
67785         Expose line and column number getters in Tokenizer in
67786         order to display them with the error message.
67788         * dom/XMLTokenizer.cpp:
67789         * dom/XMLTokenizer.h:
67790         (WebCore::Tokenizer::lineNumber):
67791         (WebCore::Tokenizer::columnNumber):
67792         * html/HTMLTokenizer.h:
67793         (WebCore::HTMLTokenizer::lineNumber):
67794         (WebCore::HTMLTokenizer::columnNumber):
67795         * ksvg2/misc/SVGDocumentExtensions.cpp:
67796         (WebCore::SVGDocumentExtensions::reportWarning):
67797         (WebCore::SVGDocumentExtensions::reportError):
67798         * ksvg2/misc/SVGDocumentExtensions.h:
67799         * ksvg2/svg/SVGCircleElement.cpp:
67800         (WebCore::SVGCircleElement::parseMappedAttribute):
67801         * ksvg2/svg/SVGElement.h:
67802         * ksvg2/svg/SVGEllipseElement.cpp:
67803         (WebCore::SVGEllipseElement::parseMappedAttribute):
67804         * ksvg2/svg/SVGFitToViewBox.cpp:
67805         (WebCore::SVGFitToViewBox::parseViewBox):
67806         * ksvg2/svg/SVGFitToViewBox.h:
67807         * ksvg2/svg/SVGImageElement.cpp:
67808         (WebCore::SVGImageElement::parseMappedAttribute):
67809         * ksvg2/svg/SVGParserUtilities.cpp:
67810         (WebCore::SVGPolyParser::parsePoints):
67811         * ksvg2/svg/SVGParserUtilities.h:
67812         * ksvg2/svg/SVGPathElement.cpp:
67813         (WebCore::SVGPathElement::parseMappedAttribute):
67814         * ksvg2/svg/SVGPatternElement.cpp:
67815         (WebCore::SVGPatternElement::parseMappedAttribute):
67816         * ksvg2/svg/SVGPolyElement.cpp:
67817         (WebCore::SVGPolyElement::parseMappedAttribute):
67818         * ksvg2/svg/SVGRadialGradientElement.cpp:
67819         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
67820         * ksvg2/svg/SVGRectElement.cpp:
67821         (WebCore::SVGRectElement::parseMappedAttribute):
67822         * ksvg2/svg/SVGSVGElement.cpp:
67823         (WebCore::SVGSVGElement::parseMappedAttribute):
67824         * ksvg2/svg/SVGTextContentElement.cpp:
67825         (WebCore::SVGTextContentElement::parseMappedAttribute):
67826         * ksvg2/svg/SVGUseElement.cpp:
67827         (WebCore::SVGUseElement::parseMappedAttribute):
67829 2007-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
67831         Reviewed by Sam.
67833         Cleanup code & fix InlineBox positioning when text-anchor is used.
67835         * rendering/RenderSVGText.cpp: Cleanup code.
67836         (WebCore::RenderSVGText::nodeAtPoint):
67837         (WebCore::RenderSVGText::absoluteRects):
67838         (WebCore::RenderSVGText::paint):
67839         * rendering/RenderText.cpp: Remove unused function posOfChar()
67840         * rendering/RenderText.h: Ditto.
67841         * rendering/SVGInlineFlowBox.cpp:
67842         (WebCore::translateBox):
67843         (WebCore::placePositionedBoxesHorizontally):
67845 2007-01-06  George Staikos  <staikos@kde.org>
67847         Reviewed by Brady.
67849         Make the Qt build work.... again.
67851         * WebCore.pro:
67852         * loader/FrameLoader.cpp:
67853         (WebCore::FrameLoader::requestFromDelegate):
67854         * loader/qt/DocumentLoaderQt.cpp:
67855         * loader/qt/FrameLoaderQt.cpp:
67856         * loader/qt/MainResourceLoaderQt.cpp: Added.
67857         (WebCore::MainResourceLoader::create):
67858         * loader/qt/ResourceLoaderQt.cpp:
67859         (WebCore::ResourceLoader::load):
67860         (WebCore::ResourceLoader::cancel):
67861         (WebCore::ResourceLoader::releaseResources):
67862         (WebCore::ResourceLoader::addData):
67863         * platform/network/qt/ResourceHandleQt.cpp:
67864         (WebCore::ResourceHandle::supportsBufferedData):
67865         (WebCore::ResourceHandle::bufferedData):
67866         (WebCore::ResourceHandle::loadResourceSynchronously):
67867         * platform/qt/LoaderFunctionsQt.cpp:
67868         * platform/qt/TemporaryLinkStubs.cpp: implemented some functions
67869         (WebCore::screenDepth):
67870         (WebCore::screenDepthPerComponent):
67871         (WebCore::screenIsMonochrome):
67872         (WebCore::screenRect):
67873         (WebCore::screenAvailableRect):
67875 2007-01-07  Mitz Pettel  <mitz@webkit.org>
67877         Reviewed by Mark Rowe.
67879         - fix http://bugs.webkit.org/show_bug.cgi?id=11133
67881         Test: fast/forms/listbox-clip.html
67883         * platform/mac/PlatformScrollBarMac.mm:
67884         (-[WebCoreScrollBar initWithPlatformScrollbar:]): Get the correct scrollbar
67885         width/height based on control size.
67886         * rendering/RenderListBox.cpp:
67887         Renamed optionsSpacingLeft to optionsSpacingHorizontal since it is applied
67888         on both sides.
67889         (WebCore::RenderListBox::calcMinMaxWidth): Account for optionsSpacingHorizontal.
67890         Not including the spacing before went unnoticed since the scrollbar was lying
67891         about its width by exactly the same amount.
67892         (WebCore::RenderListBox::paintObject): Clip out the scrollbar.
67893         (WebCore::RenderListBox::paintItemForeground): Changed for the rename.
67895 2007-01-07  Mitz Pettel  <mitz@webkit.org>
67897         Reviewed by Hyatt.
67899         - fix http://bugs.webkit.org/show_bug.cgi?id=11935
67900           REGRESSION: Changing the overflow style dynamically does not force repaint
67902         Test: fast/repaint/erase-overflow.html
67904         * rendering/RenderBox.cpp:
67905         (WebCore::RenderBox::setStyle): Added a repaint before changing hasOverflowClip
67906         to true, to ensure that the current overflow is erased.
67908 2007-01-07  Graham Dennis  <graham.dennis@gmail.com>
67910         Reviewed by Darin.
67912         Patch for http://bugs.webkit.org/show_bug.cgi?id=12106
67913         Changed URL from WebResourceLoadDelegate's webView:resource:willSendRequest:... is ignored
67915         * loader/mac/SubresourceLoaderMac.mm:
67916         (WebCore::SubresourceLoader::willSendRequest): Use m_originalURL instead of request().url()
67917         as m_request is not set until the end of ResourceLoader::willSendRequest. Also, ensure that
67918         the request is updated if the frame's client changes it, and that the SubresourceLoader's client
67919         gets the new request and not the old one. 
67921 2007-01-07  Alexey Proskuryakov  <ap@webkit.org>
67923         Reviewed by Darin.
67925         http://bugs.webkit.org/show_bug.cgi?id=10313
67926         xsl:import doesn't work in stylesheets loaded via XMLHttpRequest
67928         This is a partial fix that makes a couple more steps towards fixing the problem.
67930         Test: fast/xsl/transform-xhr-doc.xhtml
67932         * xml/XSLTProcessor.cpp:
67933         (WebCore::xsltStylesheetPointer): Pass an URL for the stylesheet. I'm not sure why this constructor even needs it, 
67934         given that it has a Node, but this is a small modifications that makes XSLImportRule try to load from a correct URL.
67935         (WebCore::XSLTProcessor::transformToString): Fix the crash for real this time.
67937 2007-01-06  Rob Buis  <buis@kde.org>
67939         Reviewed by Darin.
67941         http://bugs.webkit.org/show_bug.cgi?id=12125
67942         overflow attribute of the symbol element not respected
67944         Copy the attribute map to the cloned node so the overflow on
67945         the symbol is respected.
67947         * ksvg2/svg/SVGUseElement.cpp:
67948         (WebCore::SVGUseElement::closeRenderer):
67950 2007-01-06  Eric Seidel  <eric@webkit.org>
67952         Reviewed and significantly tweaked by Darin.
67954         - fix http://bugs.webkit.org/show_bug.cgi?id=12103
67955           LEAK: Fix the leaking ImageBuffer buffers on TOT
67957         * ksvg2/svg/SVGMaskElement.h:
67958         * ksvg2/svg/SVGMaskElement.cpp:
67959         (WebCore::SVGMaskElement::drawMaskerContent):
67960         Changed to return auto_ptr since it returns a newly-created ImageBuffer.
67962         * ksvg2/svg/SVGPatternElement.cpp:
67963         (WebCore::SVGPatternElement::buildPattern):
67964         Changed to use auto_ptr since ImageBuffer::create now returns one.
67966         * platform/graphics/GraphicsContext.h: Removed the include of ImageBuffer.h,
67967         which was never needed, and the declaration of createImageBuffer, which is
67968         now a class member function of ImageBuffer.
67970         * platform/graphics/ImageBuffer.h: Replaced the constructor with a create
67971         function. Added a comment about the need to move renderSubtreeToImage
67972         elsewhere. Added an m_data member to store the data so it can be deleted
67973         when the object is done, made the m_size member non-platform-specific.
67974         Added a private constructor for use to create the CG version.
67976         * platform/graphics/cg/GraphicsContextCG.cpp: Removed
67977         GraphicsContext::createImageBuffer.
67979         * platform/graphics/cg/ImageBufferCG.cpp:
67980         (WebCore::ImageBuffer::create): Added. Replaces the old
67981         GraphicsContext::createImageBuffer function.
67982         (WebCore::ImageBuffer::ImageBuffer): Added m_data and m_context.
67983         (WebCore::ImageBuffer::~ImageBuffer): Added a fastFree of the data and got
67984         rid of the unneeded null check before calling CGImageRelease.
67986         * platform/graphics/svg/SVGPaintServerGradient.h: Removed the include of
67987         ImageBuffer.h and declared the ImageBuffer class instead.
67989         * platform/graphics/svg/SVGPaintServerPattern.h: Removed the include of
67990         ImageBuffer.h and declared the ImageBuffer class instead, and changed setTile
67991         to take an auto_ptr since it takes ownership of the ImageBuffer.
67992         * platform/graphics/svg/SVGPaintServerPattern.cpp:
67993         (WebCore::SVGPaintServerPattern::setTile): Ditto.
67995         * platform/graphics/svg/SVGResourceMasker.h: Removed the include of
67996         ImageBuffer.h and declared the ImageBuffer class instead, and changed setMask
67997         to take an auto_ptr since it takes ownership of the ImageBuffer.
67998         * platform/graphics/svg/SVGResourceMasker.cpp:
67999         (WebCore::SVGResourceMasker::setMask): Ditto.
68001         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
68002         (WebCore::SVGPaintServerGradient::setup): Updated to use auto_ptr.
68004         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Updated includes.
68006         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
68007         (WebCore::SVGResourceMasker::applyMask): Updated to use auto_ptr.
68009         - other changes
68011         * ksvg2/svg/SVGAnimateTransformElement.cpp:
68012         (WebCore::SVGAnimateTransformElement::handleStartCondition):
68013         Remove unused variables.
68015 2007-01-06  Mitz Pettel  <mitz@webkit.org>
68017         Reviewed by Maciej.
68019         - fix http://bugs.webkit.org/show_bug.cgi?id=12136
68020           REGRESSION: Counters-related leaks
68022         * rendering/RenderCounter.cpp:
68023         (WebCore::destroyCounterNodeChildren): Delete the child counter nodes.
68025 2007-01-05  Adele Peterson  <adele@apple.com>
68027         Release build fix.
68029         * rendering/RenderListItem.cpp: (WebCore::RenderListItem::explicitValueChanged): Initialize listRenderer.
68031 2007-01-05  Darin Adler  <darin@apple.com>
68033         Reviewed by Hyatt.
68035         - eliminated use of DeprecatedString for list item markers
68036         - eliminated use of DeprecatedValueList for border style collapsing
68037         - made many members private instead of protected or public
68039         - reworked counter implementation to fix most of the CSS 2.1 counter tests;
68040             made CounterNode be a simple non-polymorphic class, moved most counter-
68041             specific code out of RenderObject into RenderCounter, changed the data
68042             structure in RenderStyle to be more speed-efficient but less space-
68043             efficient for nodes with counter styles
68044         - fixed http://bugs.webkit.org/show_bug.cgi?id=11557
68046         Tests: css2.1
68048         - fixed a bug where counter text did not have text transform or text security
68049           applied to it
68051         Test: fast/css/counters/counter-text-security.html
68052         Test: fast/css/counters/counter-text-transform.html
68054         - improved handling of CSS content property values with data of the wrong
68055           type; this probably needs a bit more refinement
68057         Test: fast/css-generated-content/reset-content-to-initial-expected.txt
68059         - fixed a bug where removing the value attribute from an HTMLLIElement would
68060           set the list item's value to 0 instead of restoring it to normal
68062         Test: fast/lists/li-values.html
68064         - fixed a bug where changing the text security style from one style to another
68065           would not change the displayed text
68067         Test: fast/css/text-security.html
68069         - fixed some problems handling long sequences of counter-related styles;
68070           still needs more work and some super-large test cases to check if
68071           recursive algorithms for these that will overflow stack remain
68073         - added support for list styles decimal-leading-zero, hiragana, hirigana-iroha,
68074           katakana, katakana-iroha, cjk-ideographic, armenian, and georgian
68076         Test: fast/lists/decimal-leading-zero.html
68078         - minor tweaks and bug fixes for other list styles, including range checking
68080         * WebCore.exp: Updated for RenderListItem change.
68082         * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject value]): Updated to use
68083         String instead of DeprecatedString.
68085         * css/CSSComputedStyleDeclaration.cpp:
68086         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed
68087         implementation for counter styles for now. We should probably restore it
68088         later, but we need to make sure the returned list is separate from the
68089         original list in the DOM -- modifying the list should not change the element
68090         it was computed from.
68092         * css/Counter.h: Removed unneeded empty constructor and destructor.
68094         * css/cssstyleselector.cpp:
68095         (WebCore::applyCounterList): Added. Stores counter directives in hash tables
68096         that should allow us to efficiently implement dynamic counter changes. Full
68097         support will have to wait for a future check-in.
68098         (WebCore::CSSStyleSelector::applyProperty): Changed counter properties to
68099         call applyCounterList. Reformatted the code to parse the content property for
68100         changes to RenderStyle and to handle the case where some the items in the
68101         content list don't generate any content.
68103         * editing/visible_units.cpp:
68104         * rendering/RenderBox.cpp:
68105         * rendering/RenderFlexibleBox.cpp:
68106         * rendering/RenderFlow.cpp:
68107         * rendering/RenderSlider.cpp:
68108         Added includes needed because of header changes.
68110         * html/HTMLLIElement.H: Removed unneeded m_isValued.
68111         * html/HTMLLIElement.cpp:
68112         (WebCore::HTMLLIElement::parseMappedAttribute): To match test results seen
68113         in WinIE, ignore values that are 0 or negative, and use new functions in
68114         RenderListItem to communicate the lack of a valid value.
68115         (WebCore::HTMLLIElement::attach): More of the same.
68117         * rendering/CounterNode.h: Made CounterNode be a non-polymorphic class,
68118         removing all the subclasses. Merged in CounterResetNode. Removed
68119         m_total from CounterResetNode, because it isn't needed for any of
68120         the styles (decimal-leading-zero always uses two digits). Removed
68121         m_hasSeparator and m_willNeedLayout since they aren't needed any more.
68122         Renamed m_count to m_countInParent for clarify, and named the list
68123         links the same as their associated functions. Removed many functions
68124         as well.
68125         * rendering/CounterNode.cpp:
68126         (WebCore::CounterNode::CounterNode): Added new fields.
68127         (WebCore::CounterNode::computeCountInParent): Added. Used by recount.
68128         (WebCore::CounterNode::recount): Simplified by removing unused parameter and the
68129         "get next" idiom. Changed to be iterative instead of recursive so we can handle
68130         arbitrarily long lists.
68131         (WebCore::CounterNode::insertAfter): Moved here from CounterResetNode. Updated
68132         for field name changes. Corrected rule for when to recount.
68133         (WebCore::CounterNode::removeChild): Moved here from CounterResetNode. Changed
68134         to only work on nodes without children. Corrected rule for when to recount.
68135         (WebCore::nextInPreOrderAfterChildren): Added. For debugging only.
68136         (WebCore::nextInPreOrder): Ditto.
68137         (WebCore::showTreeAndMark): Ditto.
68138         (showTree): Ditto.
68140         * rendering/CounterListItem.h:
68141         * rendering/CounterResetNode.h:
68142         * rendering/CounterResetNode.cpp:
68143         Marked ready to remove. I'll do the remove in a separate patch, since I have
68144         to update a lot of different make files when I do.
68146         * rendering/ListMarkerBox.cpp: (WebCore::ListMarkerBox::isText): Changed for the
68147         change to RenderListMarker.
68149         * rendering/RenderBlock.cpp:
68150         (WebCore::RenderBlock::addChildToFlow): Changed to use functions instead of
68151         direct field access so the fields can be private and we don't need to be friends.
68152         (WebCore::RenderBlock::getBaselineOfFirstLineBox): Ditto.
68153         (WebCore::RenderBlock::getBaselineOfLastLineBox): Ditto.
68154         * rendering/RenderBlock.h:
68155         (WebCore::RenderBlock::initMaxMarginValues): Ditto.
68156         (WebCore::RenderBlock::firstRootBox): Ditto.
68157         (WebCore::RenderBlock::lastRootBox): Ditto.
68158         * rendering/RenderBox.h:
68159         (WebCore::RenderBox::setWidth): Ditto.
68160         (WebCore::RenderBox::setHeight): Ditto.
68161         * rendering/RenderButton.cpp:
68162         (WebCore::RenderButton::addChild): Ditto.
68163         * rendering/bidi.cpp:
68164         (WebCore::RenderBlock::determineStartPosition): Ditto.
68166         * rendering/RenderContainer.h: Renamed m_first and m_last to m_firstChild
68167         and m_lastChild. Made them private instead of proected. Removed the
68168         setFirstChild and setLastChild functions.
68169         * rendering/RenderContainer.cpp:
68170         (WebCore::RenderContainer::RenderContainer): Updated for field name change.
68171         Changed all calls to get at fields directly instead of using functions.
68172         (WebCore::RenderContainer::destroyLeftoverChildren): Ditto.
68173         (WebCore::updateListMarkerNumbers): Updated for RenderListItem change.
68174         (WebCore::RenderContainer::addChild): Changed to get at fields directly
68175         instead of using functions. Also used release() since RenderText::setText
68176         now takes PassRefPtr.
68177         (WebCore::RenderContainer::removeChildNode): Changed to get at fields directly
68178         instead of using functions.
68179         (WebCore::RenderContainer::updatePseudoChildForObject): Create the anonymous
68180         box only if at least one of of the items in the content list actually
68181         generates content. Since a RenderCounter is a RenderText, don't bother making
68182         a new style for it -- it just shares the style with its parent. Changed code
68183         to use RenderImage::setCachedImage() instead of of setContentObject().
68184         Added a call to setIsAnonymousImage() here, which was the only special thing
68185         that setContentObject() used to do. Pass a reference to the counter to the
68186         RenderCounter rather than a pointer. Pass document() as the node instead of
68187         passing the element to RenderCounter, which makes it anonymous automatically,
68188         and removed the setIsAnonymous call.
68189         (WebCore::RenderContainer::appendChildNode): Chagned to get at fields directly
68190         instead of using functions.
68191         (WebCore::RenderContainer::insertChildNode): Ditto.
68192         (WebCore::RenderContainer::layout): Ditto.
68193         (WebCore::RenderContainer::removeLeftoverAnonymousBoxes): Ditto.
68194         (WebCore::RenderContainer::positionForCoordinates): Ditto.
68195         (WebCore::RenderContainer::addLineBoxRects): Ditto.
68197         * rendering/RenderCounter.h: Removed unneeded layout override, never called on a
68198         text node. Added override of originalString. Replaced CounterData* with a copy of
68199         the CounterContent -- it's two atomic strings and an integer so it's efficient
68200         enough to store all three in the render object, and this eliminates the lifetime
68201         problems we could have if we used a pointer.
68202         * rendering/RenderCounter.cpp: Removed duplicate copy of list marker code.
68203         (WebCore::counterMaps): Moved these maps here from RenderObject.
68204         (WebCore::previousSiblingOrParent): Added.
68205         (WebCore::lastDescendant): Added.
68206         (WebCore::previousInPreOrder): Added.
68207         (WebCore::planCounter): Added.
68208         (WebCore::findPlaceForCounter): Added.
68209         (WebCore::counter): New name of function that was named RenderObject::findCounter.
68210         Also uses a new algorithm that passes all the CSS 2.1 tests.
68211         (WebCore::RenderCounter::RenderCounter): Changed to take a Document* instead of a
68212         Node*, since at the moment counters are always anonymous.
68213         (WebCore::RenderCounter::originalString): Added. This overrides the originalString
68214         in the RenderText base class so that any text transforms will use the counter's
68215         value. This code was previously in calcMinMaxWidth.
68216         (WebCore::RenderCounter::calcMinMaxWidth): Changed to call setInternalString and
68217         pass originalString -- this uses the counter's value from the counter tree.
68218         (WebCore::destroyCounterNodeChildren): Added.
68219         (WebCore::RenderCounter::destroyCounterNodes): Added. Called as needed from
68220         RenderObject::destroy for objects that have counter nodes.
68222         * rendering/RenderFlow.h: Made m_continuation private instead of protected.
68224         * rendering/RenderImage.h: Removed unneeded includes, and unnecessary element()
68225         function that casts to HTMLElement*. Made image() protected, and made the two
68226         calcAspectRatio functions private. Removed setContentObject(). Renamed the
68227         errorOccured() function to isErrorImage() and made it private.
68228         * rendering/RenderImage.cpp:
68229         (WebCore::RenderImage::RenderImage): Removed initialization of removed
68230         m_selectionState field.
68231         (WebCore::RenderImage::setCachedImage): Rearrange code so it won't try to
68232         call isErrorImage() on a null image.
68233         (WebCore::RenderImage::paint): Updated for name change.
68235         * rendering/RenderListBox.h: Removed unneeded forward declarations.
68237         * rendering/RenderListItem.h:
68238         Renamed markerStringValue() to markerText() and made it return a String instead of
68239         a DeprecatedString. Renamed m_prededfVal to m_explicitValue. Added booleans named
68240         m_hasExplicitValue and m_isValueUpToDate and marked m_value mutable so it can be
68241         computed in const member functions.
68242         (WebCore::RenderListItem::value): Changed to update value on demand at the time
68243         you ask for it.
68244         (WebCore::RenderListItem::hasExplicitValue): Added. Use instead of magic -1 value
68245         to indicate that the item does or does not have an explicit value.
68246         (WebCore::RenderListItem::explicitValue): Added.
68247         (WebCore::RenderListItem::setExplicitValue): Added.
68248         (WebCore::RenderListItem::clearExplicitValue): Added.
68249         * rendering/RenderListItem.cpp:
68250         (WebCore::RenderListItem::RenderListItem): Updated to not use magic -1 values.
68251         (WebCore::RenderListItem::setStyle): Removed call to RenderListMarker::setListItem
68252         since it's not needed any more, and instead pass the list item to the constructor.
68253         (WebCore::previousListItem): Made parameter const.
68254         (WebCore::RenderListItem::calcValue): Restructed the function a bit.
68255         (WebCore::RenderListItem::updateValueNow): Added. Calls calcValue.
68256         (WebCore::RenderListItem::updateValue): Added. New name for resetValue(). Unlike
68257         the old version, this no longer calculates the value until it's asked-for later.
68258         (WebCore::RenderListItem::markerText): Changed to return String rather than a
68259         DeprecatedString and to return a null string rather than empty string when there
68260         is no marker.
68262         * rendering/RenderListMarker.h: Added listMarkerText function -- common code shared
68263         with anyone who needs to convert a value into text given a list style.
68264         Changed constructor to take a RenderListItem and figure out the document from that.
68265         Added isImage() and isText() functions and removed listImage() function. Changed the
68266         type of the text() function from DeprecatedString to String. Removed the listItem()
68267         and seListeItem() functions. Made the getRelativeMarkerRect() function private.
68268         Renamed m_item to m_text and chagned it from DeprecatedString to String. Renamed
68269         m_listImage to m_image.
68270         * rendering/RenderListMarker.cpp:
68271         (WebCore::toRoman): Added range checking to fix buffer overrun for large or negative
68272         numbers. Rewrote to use a local UChar array and String rather than prepending to a
68273         DeprecatedString.
68274         (WebCore::toAlphabetic): Replaces toLetterString, and is more flexible since it takes
68275         an alphabet array. Changed to match CSS 3 specification by using decimal numbering for
68276         0 and negative numbers. Rewrote to use a local UChar array and String rather than
68277         prepending to a DeprecatedString.
68278         (WebCore::toHebrewUnder1000): Added. Helper function for Hebrew numbers so we can
68279         handle numbers up to a million.
68280         (WebCore::toHebrew): Changed to use toHebrewUnder1000, added a special case for
68281         zero, negative, and too-large numbers.
68282         (WebCore::toArmenianUnder10000): Added. Used by toArmenian.
68283         (WebCore::toArmenian): Added.
68284         (WebCore::toGeorgian): Added.
68285         (WebCore::toCJKIdeographic): Added.
68286         (WebCore::listMarkerText): Added. Moved the code here from calcMinMaxWidth, but added
68287         support for text for the styles disc, circle, square, decimal-leading-zero, hiragana,
68288         hirigana-iroha, katakana, katakana-iroha, cjk-ideographic, armenian, and georgian.
68289         Also changed some of the styles to share the new toAlphabetic function.
68290         (WebCore::RenderListMarker::RenderListMarker): Updated for name changes and list
68291         item parameter.
68292         (WebCore::RenderListMarker::~RenderListMarker): Updated for name changes.
68293         (WebCore::RenderListMarker::setStyle): Updated for name changes.
68294         (WebCore::RenderListMarker::isImage): Added. Useful helper that unifies the check
68295         for no image and the error image.
68296         (WebCore::RenderListMarker::paint): Updated for name changes to to use isImage()
68297         and rearranged the code a bit.
68298         (WebCore::RenderListMarker::imageChanged): Updated for name change
68299         (WebCore::RenderListMarker::calcMinMaxWidth): Updated for name change, fixed a bug
68300         where we'd leave the old text around if we were using an image-based marker. Also
68301         changed the code to use isImage() instead of checking m_listImage.
68302         (WebCore::RenderListMarker::calcWidth): Changed to use isImage().
68303         (WebCore::RenderListMarker::lineHeight): Changed to use isImage().
68304         (WebCore::RenderListMarker::baselinePosition): Changed to use isImage().
68305         (WebCore::RenderListMarker::getRelativeMarkerRect): Changed to use isImage(),
68306         restructured the code a little.
68308         * rendering/RenderObject.h: Removed now-uneeded includes. Removed collectBorders()
68309         and isFormElement(). Made remove() function and m_hasCounterNodeMap public so
68310         we could remove friend declarations for RenderListItem and RenderView.
68311         Moved findCounter() to become a private function inside RenderCounter.cpp.
68312         * rendering/RenderObject.cpp:
68313         (WebCore::RenderObject::createObject): Fix bug where a contentData() with
68314         CONTENT_NONE is treated as image content -- only look at the content property
68315         if it has exactly one entry which is a CONTENT_OBJECT.
68316         (WebCore::RenderObject::selectionStartEnd): Add const.
68317         (WebCore::RenderObject::destroy): Moved counter-specific code to
68318         RenderCounter::destroyCounterNodes.
68319         (WebCore::RenderObject::recalcMinMaxWidths): Changed code to set m_recalcMinMax
68320         near the top of the function -- the old code would potentially reset it after it
68321         was set by the calcMinMaxWidths functions, and possibly skip a future needed
68322         recalc. That came up in counter test cases. Removed unneeded boolean check right
68323         after an assertion.
68325         * rendering/RenderPart.h: Marked two virtual functions virtual for clarity.
68327         * rendering/RenderReplaced.h: Made shouldPaint be protected, and made
68328         m_intrinsicWidth, m_intrinsicHeight, and m_selectionState be private.
68329         Also marked isSelected() const.
68330         * rendering/RenderReplaced.cpp: Added newly-needed include.
68331         (WebCore::RenderReplaced::RenderReplaced): Use constructor syntax.
68332         (WebCore::RenderReplaced::isSelected): Made const and changed to call the
68333         selectionStartEnd function in the straightforward way.
68335         * rendering/RenderSVGText.cpp:
68336         (WebCore::RenderSVGText::absoluteRects): Use functions instead of direct field
68337         access so the fields can be private.
68338         (WebCore::RenderSVGText::relativeBBox): Ditto.
68340         * rendering/RenderStyle.h: Tweaked formatting. Changed names of CSS3 holders
68341         to say "rare" instead, since it's not all CSS 3. Renamed CounterData to
68342         CounterContent, since it's used inside ContentData. Changed names of fields in
68343         ContentData to have m prefix. Moved content and counter fields into the rare
68344         non-inherited data object. Removed unneeded assignment operator from a class
68345         that already inherits from Shared which makes it start out noncopyable.
68346         * rendering/RenderStyle.cpp: Name changes, plus:
68347         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
68348         Updated for added fields (content, counter-reset, counter-increment).
68349         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData): Ditto.
68350         (WebCore::StyleRareNonInheritedData::operator==): Reformatted and sorted so it's
68351         easy to see if any fields are missing.
68352         (WebCore::operator!=): Added. Compares two CounterContent objects.
68353         (WebCore::RenderStyle::arenaDelete): Removed code to handle content, which is
68354         now in the rareNonInheritedData structure.
68355         (WebCore::RenderStyle::RenderStyle): Ditto.
68356         (WebCore::RenderStyle::inheritFrom): Ditto.
68357         (WebCore::RenderStyle::operator==): Ditto.
68358         (WebCore::RenderStyle::inheritedNotEqual):
68359         (WebCore::RenderStyle::diff):
68360         (WebCore::RenderStyle::contentDataEquivalent): Added case for counter,
68361         which previously would be ignored when determining if content is equivalent.
68362         (WebCore::RenderStyle::clearContent): Added.
68363         (WebCore::RenderStyle::setContent): Updated for change in content location.
68364         (WebCore::ContentData::clear): Changed algorithm so that it's not recursive
68365         and thus can handle a very long list of ContentData.
68366         (WebCore::operator==): Added. Compares two CounterDirective objects.
68367         (WebCore::RenderStyle::counterDirectives): Added.
68368         (WebCore::RenderStyle::accessCounterDirectives): Added.
68370         * rendering/RenderTable.h: Made m_currentBorder const to better reflect the
68371         paint algorithm.
68372         * rendering/RenderTable.cpp: (WebCore::RenderTable::paint): Changed to use
68373         Vector instead of DeprecatedValueList for the border styles, and to sort
68374         rather than inserting in sorted order as we go. Put the code to loop through
68375         the nodes and collect border styles here instead of in a RenderObject virtual
68376         function. Also set m_currentBorder to 0 after the loop for greater clarity.
68378         * rendering/RenderTableCell.h: Added a typedef for a vector of border values.
68379         Removed the virtual collectBorders and replaced with the non-virtual named
68380         collectBorderStyles. Also added a static member function named sortBorderStyles.
68381         * rendering/RenderTableCell.cpp:
68382         (WebCore::CollapsedBorders::CollapsedBorders): Removed unneeded constructor
68383         parameter.
68384         (WebCore::addBorderStyle): Changed to use a vector instead of a
68385         DeprecatedValueList. Wrote out a loop since Vector doesn't have a contains
68386         member function. Removed the code to insert the border at a sorted location;
68387         instead we have a separate call to sort the border styles
68388         (WebCore::RenderTableCell::collectBorderStyles): Renamed, and changed the
68389         parameter type.
68390         (WebCore::compareBorderStylesForQSort): Added.
68391         (WebCore::RenderTableCell::sortBorderStyles): Added.
68393         * rendering/RenderText.h: Changed StringImpl parameters in setText functions
68394         to be PassRefPtr; added a new setInternalString function. Made a bunch of the
68395         member functions private and made all the data members private instead of
68396         protected.
68397         * rendering/RenderText.cpp:
68398         (WebCore::RenderText::setStyle): Restructure a bit for clarity. Fix case where
68399         the old style has a different security than the new style. Use release() since
68400         RenderText::setText now takes PassRefPtr. Always call cacheWidths here.
68401         (WebCore::RenderText::setTextWithOffset): Changed to take the string as a
68402         PassRefPtr instead of a raw pointer.
68403         (WebCore::isInlineFlowOrEmptyText): Added.
68404         (WebCore::RenderText::setInternalString): Refactored core of setText into a
68405         separate protected member function that can be used RenderCounter. Changed
68406         the text security square character to match what's used in list markers.
68407         Changed the text transform switch statement so that gcc will warn us if we add
68408         a new value and don't add a case for it.
68409         (WebCore::RenderText::setText): Refactored most of the function into
68410         setInternalString. Removed the call to cacheWidths -- that's now done in the
68411         setStyle function only.
68413         * rendering/RenderView.h:
68414         * rendering/RenderView.cpp: (WebCore::RenderView::selectionStartEnd): Now const.
68416         * rendering/RenderWidget.cpp: Added newly-needed include.
68417         (WebCore::RenderWidget::setSelectionState): Don't bother setting m_selectionState
68418         here since RenderReplaced::setSelectionState already does that.
68420 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68422         Rubber stamped by Adam.
68423         
68424         Move even more code to .cpp files.
68426         * WebCore.xcodeproj/project.pbxproj:
68427         * loader/FrameLoader.cpp:
68428         (WebCore::FrameLoader::createWindow):
68429         (WebCore::FrameLoader::load):
68430         (WebCore::FrameLoader::canLoad):
68431         (WebCore::FrameLoader::initialRequest):
68432         (WebCore::FrameLoader::receivedData):
68433         (WebCore::FrameLoader::setRequest):
68434         (WebCore::FrameLoader::setResponse):
68435         (WebCore::FrameLoader::willUseArchive):
68436         (WebCore::FrameLoader::handleUnimplementablePolicy):
68437         (WebCore::FrameLoader::cannotShowMIMEType):
68438         (WebCore::FrameLoader::interruptionForPolicyChangeError):
68439         (WebCore::FrameLoader::checkNavigationPolicy):
68440         (WebCore::FrameLoader::checkContentPolicy):
68441         (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
68442         (WebCore::FrameLoader::reloadAllowingStaleData):
68443         (WebCore::FrameLoader::reload):
68444         (WebCore::FrameLoader::finishedLoading):
68445         (WebCore::FrameLoader::continueAfterWillSubmitForm):
68446         (WebCore::FrameLoader::submitForm):
68447         (WebCore::FrameLoader::post):
68448         (WebCore::FrameLoader::isReloading):
68449         (WebCore::FrameLoader::loadEmptyDocumentSynchronously):
68450         (WebCore::FrameLoader::loadResourceSynchronously):
68451         (WebCore::FrameLoader::startLoadingMainResource):
68452         (WebCore::FrameLoader::startLoading):
68453         (WebCore::FrameLoader::cancelMainResourceLoad):
68454         (WebCore::FrameLoader::identifierForInitialRequest):
68455         (WebCore::FrameLoader::willSendRequest):
68456         (WebCore::FrameLoader::didReceiveResponse):
68457         (WebCore::FrameLoader::didReceiveData):
68458         (WebCore::FrameLoader::didFailToLoad):
68459         (WebCore::FrameLoader::originalRequest):
68460         (WebCore::FrameLoader::receivedMainResourceError):
68461         (WebCore::FrameLoader::callContinueFragmentScrollAfterNavigationPolicy):
68462         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
68463         (WebCore::FrameLoader::opened):
68464         (WebCore::FrameLoader::dataURLBaseFromRequest):
68465         (WebCore::FrameLoader::checkNewWindowPolicy):
68466         (WebCore::FrameLoader::continueAfterNewWindowPolicy):
68467         (WebCore::FrameLoader::continueAfterNavigationPolicy):
68468         (WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy):
68469         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
68470         (WebCore::FrameLoader::callContinueLoadAfterNewWindowPolicy):
68471         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
68472         (WebCore::FrameLoader::sendRemainingDelegateMessages):
68473         (WebCore::FrameLoader::requestFromDelegate):
68474         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
68475         (WebCore::FrameLoader::applyUserAgent):
68476         (WebCore::PolicyCheck::PolicyCheck):
68477         (WebCore::PolicyCheck::clear):
68478         (WebCore::PolicyCheck::set):
68479         (WebCore::PolicyCheck::call):
68480         (WebCore::PolicyCheck::clearRequest):
68481         * loader/FrameLoader.h:
68482         * loader/FrameLoaderClient.h:
68483         * loader/MainResourceLoader.h:
68484         * loader/ResourceLoader.h:
68485         (WebCore::ResourceLoader::setIdentifier):
68486         (WebCore::ResourceLoader::identifier):
68487         * loader/mac/FrameLoaderMac.mm:
68488         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
68489         (WebCore::FrameLoader::referrer):
68490         (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
68491         (WebCore::FrameLoader::didCancelAuthenticationChallenge):
68492         (WebCore::FrameLoader::didChangeTitle):
68493         * platform/graphics/svg/SVGImageEmptyClients.h:
68494         (WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
68496 2007-01-05  Mitz Pettel  <mitz@webkit.org>
68498         Reviewed by Hyatt.
68500         - fix http://bugs.webkit.org/show_bug.cgi?id=12079
68501           Nested tables don't repaint properly when a certain row is added
68503         Tests: fast/repaint/table-section-repaint.html
68504                fast/repaint/table-section-overflow.html
68506         Fixed repainting when table sections move during layout.
68508         Made table cells' overflows propagate to table sections and gave tables
68509         overflows.
68511         * rendering/RenderTable.cpp:
68512         (WebCore::RenderTable::layout): Added computation of horizontal and vertical overflows
68513         based on the caption's and the table sections' overflows.
68514         Added checks for table sections that change position during layout. When that happens,
68515         we assume all sections below the first section that moved also moved, and repaint
68516         everything downwards from there.
68517         Added calls to repaintDuringLayoutIfMoved() for the caption.
68518         Changed the way table sections are iterated over and added a FIXME to change it again
68519         once bug 12124 is fixed.
68520         (WebCore::RenderTable::paint): Changed to paint overflow.
68521         (WebCore::RenderTable::outerBorderBottom):
68522         * rendering/RenderTableSection.cpp:
68523         (WebCore::RenderTableSection::RenderTableSection):
68524         (WebCore::RenderTableSection::layoutRows): Added code to compute the section's overflow
68525         and a flag saying whether any cells in this section overflow.
68526         (WebCore::RenderTableSection::paint): Changed to paint overflow. If any cell
68527         in the section has overflow, then all cells are given a chance to paint. This is needed
68528         because there can be internal overflow, and external overflow can be coming from any
68529         cell inside.
68530         * rendering/RenderTableSection.h:
68531         (WebCore::RenderTableSection::overflowWidth):
68532         (WebCore::RenderTableSection::overflowLeft):
68534 2007-01-05  Beth Dakin  <bdakin@apple.com>
68536         Reviewed by Adam.
68538         Fix for <rdar://problem/4863434> Wrong contextual menu appears for 
68539         textarea and input elements at http://www.apple.com/feedback/
68540         ical.html
68542         No test cases added since context menus are not in DRT.
68544         * page/ContextMenuController.cpp: 
68545         (WebCore::ContextMenuController::handleContextMenuEvent): Call 
68546         EventHandler's hitTestResultAtPoint() instead of just hit testing 
68547         the layer.
68549 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68551         Rubber-stamped by Adam.
68552         
68553         Move a bunch of platform independent code over to DocumentLoader.cpp
68555         * WebCore.xcodeproj/project.pbxproj:
68556         * loader/DocumentLoader.cpp:
68557         (WebCore::canonicalizedTitle):
68558         (WebCore::DocumentLoader::DocumentLoader):
68559         (WebCore::DocumentLoader::frameLoader):
68560         (WebCore::DocumentLoader::~DocumentLoader):
68561         (WebCore::DocumentLoader::setMainResourceData):
68562         (WebCore::DocumentLoader::mainResourceData):
68563         (WebCore::DocumentLoader::originalRequest):
68564         (WebCore::DocumentLoader::originalRequestCopy):
68565         (WebCore::DocumentLoader::request):
68566         (WebCore::DocumentLoader::initialRequest):
68567         (WebCore::DocumentLoader::actualRequest):
68568         (WebCore::DocumentLoader::URL):
68569         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
68570         (WebCore::DocumentLoader::setRequest):
68571         (WebCore::DocumentLoader::setMainDocumentError):
68572         (WebCore::DocumentLoader::clearErrors):
68573         (WebCore::DocumentLoader::mainReceivedError):
68574         (WebCore::DocumentLoader::stopLoading):
68575         (WebCore::DocumentLoader::setupForReplace):
68576         (WebCore::DocumentLoader::commitIfReady):
68577         (WebCore::DocumentLoader::finishedLoading):
68578         (WebCore::DocumentLoader::setCommitted):
68579         (WebCore::DocumentLoader::isCommitted):
68580         (WebCore::DocumentLoader::setLoading):
68581         (WebCore::DocumentLoader::isLoading):
68582         (WebCore::DocumentLoader::commitLoad):
68583         (WebCore::DocumentLoader::doesProgressiveLoad):
68584         (WebCore::DocumentLoader::receivedData):
68585         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
68586         (WebCore::DocumentLoader::updateLoading):
68587         (WebCore::DocumentLoader::setFrame):
68588         (WebCore::DocumentLoader::attachToFrame):
68589         (WebCore::DocumentLoader::detachFromFrame):
68590         (WebCore::DocumentLoader::prepareForLoadStart):
68591         (WebCore::DocumentLoader::setIsClientRedirect):
68592         (WebCore::DocumentLoader::isClientRedirect):
68593         (WebCore::DocumentLoader::setPrimaryLoadComplete):
68594         (WebCore::DocumentLoader::isLoadingInAPISense):
68595         (WebCore::DocumentLoader::addResponse):
68596         (WebCore::DocumentLoader::stopRecordingResponses):
68597         (WebCore::DocumentLoader::title):
68598         (WebCore::DocumentLoader::setLastCheckedRequest):
68599         (WebCore::DocumentLoader::lastCheckedRequest):
68600         (WebCore::DocumentLoader::triggeringAction):
68601         (WebCore::DocumentLoader::setTriggeringAction):
68602         (WebCore::DocumentLoader::responses):
68603         (WebCore::DocumentLoader::setOverrideEncoding):
68604         (WebCore::DocumentLoader::overrideEncoding):
68605         (WebCore::DocumentLoader::setTitle):
68606         (WebCore::DocumentLoader::urlForHistory):
68607         * loader/DocumentLoader.h:
68608         * loader/FrameLoader.cpp:
68609         (WebCore::FrameLoader::load):
68610         (WebCore::FrameLoader::committedLoad):
68611         (WebCore::FrameLoader::setMainDocumentError):
68612         (WebCore::FrameLoader::mainReceivedCompleteError):
68613         (WebCore::FrameLoader::mainReceivedError):
68614         (WebCore::FrameLoader::cancelledError):
68615         (WebCore::FrameLoader::fileDoesNotExistError):
68616         (WebCore::FrameLoader::mainResourceData):
68617         * loader/FrameLoader.h:
68618         * loader/FrameLoaderClient.h:
68619         * loader/mac/DocumentLoaderMac.mm:
68620         (WebCore::DocumentLoader::unreachableURL):
68621         * loader/mac/FrameLoaderMac.mm:
68623 2007-01-05  Brady Eidson  <beidson@apple.com>
68625         Reviewed by Eric Seidel
68627         http://bugs.webkit.org/show_bug.cgi?id=12117
68628         Fixes null deref when opening links from a gmail account
68630         * loader/FrameLoader.cpp:
68631         (WebCore::FrameLoader::updateHistoryForStandardLoad): Null check m_currentHistoryItem
68632         (WebCore::FrameLoader::updateHistoryForClientRedirect): Ditto
68634 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68636         Move some now cross platform functions over to ResourceLoader.cpp in an attempt to fix the non Mac builds.
68637         
68638         * loader/CachedResource.h:
68639         (WebCore::CachedResource::setAllData):
68640         * loader/ResourceLoader.cpp:
68641         (WebCore::ResourceLoader::resourceData):
68642         * loader/ResourceLoader.h:
68643         * loader/SubresourceLoader.cpp:
68644         (WebCore::SubresourceLoader::didFinishLoading):
68645         * loader/mac/LoaderFunctionsMac.mm:
68646         * loader/mac/ResourceLoaderMac.mm:
68647         * platform/SharedBuffer.cpp:
68648         (WebCore::SharedBuffer::platformDataSize):
68649         * platform/network/ResourceHandle.h:
68651 2007-01-05  David Hyatt  <hyatt@apple.com>
68653         Back out fix for 12114.  I missed rule #5 in the float positioning part of the CSS2.1 spec.  Keep all
68654         the code cleanup though.
68656         Reviewed by mitz
68658         * rendering/RenderBlock.cpp:
68659         (WebCore::RenderBlock::positionNewFloats):
68661 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68663         Reviewed by Maciej.
68665         Add a shared buffer class which is backed by either a vector or an NSData object. This object can also
68666         be held in a custom NSData subclass. Use this in the loader wherever NSData was used.
68667         
68668         * WebCore.exp:
68669         * WebCore.xcodeproj/project.pbxproj:
68670         * loader/CachedResource.h:
68671         (WebCore::CachedResource::allData):
68672         * loader/DocumentLoader.h:
68673         * loader/FrameLoader.h:
68674         * loader/ResourceLoader.h:
68675         * loader/SubresourceLoaderClient.h:
68676         (WebCore::SubresourceLoaderClient::didFail):
68677         * loader/loader.cpp:
68678         (WebCore::Loader::didFinishLoading):
68679         * loader/loader.h:
68680         * loader/mac/DocumentLoaderMac.mm:
68681         (WebCore::DocumentLoader::setMainResourceData):
68682         (WebCore::DocumentLoader::mainResourceData):
68683         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
68684         * loader/mac/FrameLoaderMac.mm:
68685         (WebCore::FrameLoader::mainResourceData):
68686         * loader/mac/ImageDocumentMac.mm:
68687         (WebCore::finishImageLoad):
68688         * loader/mac/LoaderFunctionsMac.mm:
68689         (WebCore::CheckCacheObjectStatus):
68690         (WebCore::CachedResource::setAllData):
68691         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
68692         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
68693         * loader/mac/ResourceLoaderMac.mm:
68694         (WebCore::ResourceLoader::addData):
68695         (WebCore::ResourceLoader::resourceData):
68696         (WebCore::ResourceLoader::clearResourceData):
68697         (WebCore::ResourceLoader::didReceiveData):
68698         (WebCore::ResourceLoader::willStopBufferingData):
68699         * loader/mac/SubresourceLoaderMac.mm:
68700         (WebCore::SubresourceLoader::didReceiveResponse):
68701         (WebCore::SubresourceLoader::didFinishLoading):
68702         * page/mac/WebCoreFrameBridge.mm:
68703         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
68704         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
68705         * platform/KURL.h:
68706         * platform/SharedBuffer.cpp: Added.
68707         (WebCore::SharedBuffer::SharedBuffer):
68708         (WebCore::SharedBuffer::size):
68709         (WebCore::SharedBuffer::data):
68710         (WebCore::SharedBuffer::append):
68711         (WebCore::SharedBuffer::clear):
68712         (WebCore::SharedBuffer::clearPlatformData):
68713         (WebCore::SharedBuffer::maybeTransferPlatformData):
68714         (WebCore::SharedBuffer::hasPlatformData):
68715         (WebCore::SharedBuffer::platformData):
68716         * platform/SharedBuffer.h: Added.
68717         * platform/mac/SharedBufferMac.mm: Added.
68718         (-[SharedBufferData dealloc]):
68719         (-[SharedBufferData finalize]):
68720         (-[SharedBufferData initWithSharedBuffer:]):
68721         (-[SharedBufferData length]):
68722         (-[SharedBufferData bytes]):
68723         (WebCore::SharedBuffer::wrapNSData):
68724         (WebCore::SharedBuffer::SharedBuffer):
68725         (WebCore::SharedBuffer::createNSData):
68726         (WebCore::SharedBuffer::hasPlatformData):
68727         (WebCore::SharedBuffer::platformData):
68728         (WebCore::SharedBuffer::platformDataSize):
68729         (WebCore::SharedBuffer::maybeTransferPlatformData):
68730         (WebCore::SharedBuffer::clearPlatformData):
68731         * platform/network/ResourceHandle.h:
68732         * platform/network/ResourceHandleClient.h:
68733         * platform/network/mac/ResourceHandleMac.mm:
68734         (WebCore::ResourceHandle::bufferedData):
68736 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68738         Reviewed by Adam.
68740         http://bugs.webkit.org/show_bug.cgi?id=12120
68741         REGRESSION(r18605): Safari snippet editor no longer works
68742         
68743         * loader/mac/ResourceLoaderMac.mm:
68744         (WebCore::ResourceLoader::willSendRequest):
68745         Put back the code change in r18607.
68746         
68747         * platform/mac/KURLMac.mm:
68748         (WebCore::KURL::KURL):
68749         Convert nil NSURLs to null KURLs.
68751 2007-01-04  Alexey Proskuryakov  <ap@webkit.org>
68753         Reviewed by Geoff.
68755         http://bugs.webkit.org/show_bug.cgi?id=7296
68756         Disable JavaScript exceptions when dynamically changing CSS properties.
68758         * bindings/js/kjs_css.cpp:
68759         (KJS::DOMCSSStyleDeclaration::put): Removed the Dashboard quirk logic.
68761         * css/CSSMutableStyleDeclaration.cpp:
68762         (WebCore::CSSMutableStyleDeclaration::setProperty): Don't raise an exception if parsing fails.
68764 2007-01-05  Antti Koivisto  <koivisto@iki.fi>
68766         Reviewed by hyatt.
68767         
68768         http://bugs.webkit.org/show_bug.cgi?id=12109
68769         
68770         Fix layer visibility in some cases with nested layers.
68772         * rendering/RenderLayer.cpp:
68773         (WebCore::RenderLayer::updateVisibilityStatus):
68775 2007-01-05  Lars Knoll <lars@trolltech.com>
68777         Make it compile with gcc 4.1
68779         * rendering/RenderTableSection.h:
68781 2007-01-04  Adam Roben  <aroben@apple.com>
68783         Reviewed by Geoff, cheered by others.
68785         Dead code elimination.
68787         All layout tests pass.
68789         * page/EventHandler.h:
68790         * page/mac/EventHandlerMac.mm:
68791         * page/mac/WebCoreFrameBridge.h:
68792         * page/mac/WebCoreFrameBridge.mm:
68794 2007-01-04  Adam Roben  <aroben@apple.com>
68796         Reviewed by Geoff.
68798         Fix: <rdar://4800335> REGRESSION: shift-tabbing from location field
68799         goes to first field rather than last (businessweek.com)
68801         Fix: <rdar://4800373> REGRESSION: tabbing from last control focuses
68802         nothing visible (busniessweek.com)
68804         Handle tabbing into/out of subframes in WebCore instead of letting
68805         AppKit do the dirty work. This change also fixes a number of bugs and
68806         changes some behavior to match other browsers:
68807           - No frames receive a focus event when the page is first loaded.
68808           - When a frame is clicked or focused with the keyboard, it receives
68809             a focus event and all other frames receive a blur event.
68810           - tabindex values are clamped to the range of a signed short, rather
68811             than overflowing within an unsigned short.
68812           - tabindex is respected on frame owner elements, even though HTML4
68813             says it shouldn't be.
68814           - Subframes will be focused when tabbing if they don't contain any
68815             focusable elements within them (it would be nice to only focus the
68816             frame if it has scrollbars).
68818         Renamed SelectionDirection to FocusDirection and put it in its own file.
68820         * page/FocusDirection.h: Added.
68821         (WebCore::):
68822         * page/mac/WebCoreFrameBridge.mm: Updated for renames.
68823         (-[WebCoreFrameBridge nextKeyView]):
68824         (-[WebCoreFrameBridge previousKeyView]):
68825         (-[WebCoreFrameBridge nextKeyViewInsideWebFrameViews]):
68826         (-[WebCoreFrameBridge previousKeyViewInsideWebFrameViews]):
68828         Moved advanceFocus from EventHandler to FocusController and added
68829         support for moving into/out of subframes..
68831         * page/EventHandler.cpp: Moved advanceFocus to FocusController.
68832         * page/EventHandler.h: Ditto.
68833         * page/FocusController.cpp:
68834         (WebCore::deepFocusableNode): Static helper function to find focusable
68835         nodes nested within frames.
68836         (WebCore::FocusController::advanceFocus): Moved from EventHandler and
68837         rewritten to handle subframes.
68838         * page/FocusController.h: Added advanceFocus declaration.
68839         * dom/EventTargetNode.cpp:
68840         (WebCore::EventTargetNode::defaultEventHandler): Updated for the move
68841         of advanceFocus to FocusController.
68842         * html/HTMLFrameOwnerElement.h:
68843         (WebCore::HTMLFrameOwnerElement::isFrameOwnerElement): New method.
68844         (WebCore::HTMLFrameOwnerElement::isKeyboardFocusable): New virtual
68845         implementation used to trick Document::nextFocusableNode so that we
68846         can focus frames.
68848         Rewrote/renamed
68849         Document::nextFocusableNode/Document::previousFocusableNode.
68851         * dom/Document.cpp:
68852         (WebCore::nextNodeWithExactTabIndex): New static helper
68853         function.
68854         (WebCore::previousNodeWithExactTabIndex): Ditto.
68855         (WebCore::nextNodeWithGreaterTabIndex): Ditto.
68856         (WebCore::previousNodeWithLowerTabIndex): Ditto.
68857         (WebCore::Document::nextFocusableNode): Renamed from nextFocusedNode,
68858         and rewritten with much simpler logic.
68859         (WebCore::Document::previousFocusableNode): Ditto.
68860         * dom/Document.h: Updated declarations for renames.
68861         * page/mac/EventHandlerMac.mm: Updated for rename of SelectionDirection
68862         to FocusDirection.
68863         (WebCore::EventHandler::nextKeyViewInFrame): Updated for renames.
68864         (WebCore::EventHandler::nextKeyViewInFrameHierarchy): Ditto.
68865         (WebCore::EventHandler::nextKeyView): Ditto.
68866         (WebCore::EventHandler::focusDocumentView): Added call to
68867         setFocusedFrame when focusing the document view.
68868         (WebCore::EventHandler::passMouseDownEventToWidget): Removed LOG_ERROR
68869         when a nil NSView is returned from AppKit, as this is a fairly common
68870         occurrence when a RenderWidget has a border.
68871         (WebCore::EventHandler::passWheelEventToWidget): Added a nil-check of
68872         the hit-tested NSView.
68874         Changed storage of tabIndex to a signed short, and added clamping of
68875         tabindex attribute values to match Firefox's behavior.
68877         * dom/Node.h: Use a signed short to store m_tabIndex.
68878         (WebCore::Node::isFrameOwnerElement): New method.
68879         (WebCore::Node::tabIndex): Updated for signedness.
68880         (WebCore::Node::setTabIndex): Ditto.
68881         * html/HTMLAnchorElement.cpp: Remove implementation of tabIndex() so
68882         that Node::tabIndex() will be called instead and return the clamped
68883         value (which matches Firefox's behavior).
68884         * html/HTMLAnchorElement.h: Ditto.
68885         * html/HTMLAreaElement.cpp: Ditto.
68886         * html/HTMLAreaElement.h: Ditto.
68887         * html/HTMLGenericFormElement.cpp: Ditto.
68888         * html/HTMLGenericFormElement.h: Ditto.
68889         * html/HTMLObjectElement.cpp: Ditto.
68890         * html/HTMLObjectElement.h: Ditto.
68891         * html/HTMLElement.cpp:
68892         (WebCore::HTMLElement::parseMappedAttribute): Clamp tabIndex to the
68893         range of a signed short to match Firefox.
68895         Added two new Chrome methods for transferring focus out of the
68896         WebView.
68898         * page/Chrome.cpp:
68899         (WebCore::Chrome::canTakeFocus):
68900         (WebCore::Chrome::takeFocus):
68901         * page/Chrome.h:
68902         * page/ChromeClient.h:
68903         * platform/graphics/svg/SVGImageEmptyClients.h: Fixed typo "CromeClient" -> "ChromeClient".
68904         (WebCore::SVGEmptyChromeClient::~SVGEmptyChromeClient):
68905         (WebCore::SVGEmptyChromeClient::canTakeFocus):
68906         (WebCore::SVGEmptyChromeClient::takeFocus):
68907         * platform/graphics/svg/SVGImage.cpp:
68908         (WebCore::SVGImage::setData): Fixed typo.
68910         Miscellaneous:
68912         * WebCore.exp: Updated/sorted symbols.
68913         * WebCore.xcodeproj/project.pbxproj: Made FocusController.h Private so
68914         WebKit can access it.
68916 2007-01-04  Brady Eidson  <beidson@apple.com>
68918         Reverted Anders' change to fix the world
68920         * loader/mac/ResourceLoaderMac.mm:
68921         (WebCore::ResourceLoader::willSendRequest):
68922         (WebCore::ResourceLoader::didReceiveResponse):
68924 2007-01-04  Mitz Pettel  <mitz@webkit.org>
68926         Reviewed by Sam Weinig.
68928         - http://bugs.webkit.org/show_bug.cgi?id=12078
68929           Clean up RenderTable*
68931         - Coding style cleanup.
68932         - Canceled AutoTableLayout and FixedTableLayout being friend classes of
68933           RenderTable. Instead, added public accessors to RenderTable for what
68934           the table layout classes need and changed TableLayout::calcMinMaxWidth()
68935           to take references to the caller's min and max widths.
68936         - Made RenderTableSection's grid protected and moved code that accessed it
68937           from RenderTable into RenderTableSection.
68939         No test possible (no change to functionality).
68941         * rendering/AutoTableLayout.cpp:
68942         (WebCore::AutoTableLayout::calcMinMaxWidth):
68943         (WebCore::AutoTableLayout::layout):
68944         * rendering/AutoTableLayout.h:
68945         * rendering/FixedTableLayout.cpp:
68946         (WebCore::FixedTableLayout::calcWidthArray):
68947         (WebCore::FixedTableLayout::calcMinMaxWidth):
68948         (WebCore::FixedTableLayout::layout):
68949         * rendering/FixedTableLayout.h:
68950         * rendering/RenderTable.cpp:
68951         (WebCore::RenderTable::RenderTable):
68952         (WebCore::RenderTable::~RenderTable):
68953         (WebCore::RenderTable::setStyle):
68954         (WebCore::RenderTable::addChild):
68955         (WebCore::RenderTable::calcWidth):
68956         (WebCore::RenderTable::layout):
68957         (WebCore::RenderTable::setCellWidths):
68958         (WebCore::RenderTable::paint):
68959         (WebCore::RenderTable::paintBoxDecorations):
68960         (WebCore::RenderTable::calcMinMaxWidth):
68961         (WebCore::RenderTable::splitColumn): Factored out the section work
68962         to RenderTableSection::splitColumn().
68963         (WebCore::RenderTable::appendColumn): Factored out the section work
68964         to RenderTableSection::appendColumn().
68965         (WebCore::RenderTable::colElement):
68966         (WebCore::RenderTable::recalcSections):
68967         (WebCore::RenderTable::removeChildNode):
68968         (WebCore::RenderTable::calcBorderLeft):
68969         (WebCore::RenderTable::calcBorderRight):
68970         (WebCore::RenderTable::outerBorderTop):
68971         (WebCore::RenderTable::outerBorderBottom):
68972         (WebCore::RenderTable::outerBorderLeft):
68973         (WebCore::RenderTable::outerBorderRight):
68974         (WebCore::RenderTable::sectionAbove):
68975         (WebCore::RenderTable::sectionBelow):
68976         (WebCore::RenderTable::cellAbove):
68977         (WebCore::RenderTable::cellBelow):
68978         (WebCore::RenderTable::cellBefore):
68979         (WebCore::RenderTable::getOverflowClipRect):
68980         (WebCore::RenderTable::dump):
68981         * rendering/RenderTable.h:
68982         (WebCore::RenderTable::getColumnPos):
68983         (WebCore::RenderTable::hBorderSpacing):
68984         (WebCore::RenderTable::vBorderSpacing):
68985         (WebCore::RenderTable::getRules):
68986         (WebCore::RenderTable::cellPadding):
68987         (WebCore::RenderTable::setCellPadding):
68988         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
68989         (WebCore::RenderTable::columns): Added this accessor.
68990         (WebCore::RenderTable::columnPositions): Added this accessor.
68991         (WebCore::RenderTable::header):
68992         (WebCore::RenderTable::footer):
68993         (WebCore::RenderTable::firstBody):
68994         (WebCore::RenderTable::numEffCols):
68995         (WebCore::RenderTable::spanOfEffCol):
68996         (WebCore::RenderTable::colToEffCol):
68997         (WebCore::RenderTable::effColToCol):
68998         (WebCore::RenderTable::bordersPaddingAndSpacing):
68999         (WebCore::RenderTable::needsSectionRecalc):
69000         (WebCore::RenderTable::setNeedsSectionRecalc): Renamed setNeedSectionRecalc()
69001         to this.
69002         (WebCore::RenderTable::hasSections):
69003         (WebCore::RenderTable::recalcSectionsIfNeeded):
69004         * rendering/RenderTableCell.cpp:
69005         (WebCore::RenderTableCell::RenderTableCell):
69006         (WebCore::RenderTableCell::destroy):
69007         (WebCore::RenderTableCell::updateFromElement):
69008         (WebCore::RenderTableCell::styleOrColWidth):
69009         (WebCore::RenderTableCell::computeAbsoluteRepaintRect):
69010         (WebCore::RenderTableCell::absolutePosition):
69011         (WebCore::RenderTableCell::baselinePosition):
69012         (WebCore::RenderTableCell::setStyle):
69013         (WebCore::compareBorders):
69014         (WebCore::RenderTableCell::collapsedTopBorder):
69015         (WebCore::RenderTableCell::paint):
69016         (WebCore::collapsedBorderStyle):
69017         (WebCore::CollapsedBorder::CollapsedBorder):
69018         (WebCore::CollapsedBorders::CollapsedBorders):
69019         (WebCore::CollapsedBorders::addBorder):
69020         (WebCore::CollapsedBorders::nextBorder):
69021         (WebCore::RenderTableCell::paintCollapsedBorder):
69022         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
69023         (WebCore::RenderTableCell::paintBoxDecorations):
69024         (WebCore::RenderTableCell::dump):
69025         * rendering/RenderTableCell.h:
69026         (WebCore::RenderTableCell::colSpan):
69027         (WebCore::RenderTableCell::setColSpan):
69028         (WebCore::RenderTableCell::rowSpan):
69029         (WebCore::RenderTableCell::setRowSpan):
69030         (WebCore::RenderTableCell::col):
69031         (WebCore::RenderTableCell::setCol):
69032         (WebCore::RenderTableCell::row):
69033         (WebCore::RenderTableCell::setRow):
69034         (WebCore::RenderTableCell::section):
69035         (WebCore::RenderTableCell::table):
69036         (WebCore::RenderTableCell::yPos):
69037         (WebCore::RenderTableCell::setCellTopExtra):
69038         (WebCore::RenderTableCell::setCellBottomExtra):
69039         (WebCore::RenderTableCell::borderTopExtra):
69040         (WebCore::RenderTableCell::borderBottomExtra):
69041         * rendering/RenderTableRow.cpp:
69042         (WebCore::RenderTableRow::destroy):
69043         (WebCore::RenderTableRow::setStyle):
69044         (WebCore::RenderTableRow::addChild):
69045         (WebCore::RenderTableRow::layout):
69046         (WebCore::RenderTableRow::getAbsoluteRepaintRect):
69047         (WebCore::RenderTableRow::paint):
69048         * rendering/RenderTableRow.h:
69049         (WebCore::RenderTableRow::section):
69050         (WebCore::RenderTableRow::table):
69051         (WebCore::RenderTableRow::lineHeight):
69052         * rendering/RenderTableSection.cpp:
69053         (WebCore::RenderTableSection::RenderTableSection):
69054         (WebCore::RenderTableSection::destroy):
69055         (WebCore::RenderTableSection::setStyle):
69056         (WebCore::RenderTableSection::addChild):
69057         (WebCore::RenderTableSection::ensureRows):
69058         (WebCore::RenderTableSection::addCell):
69059         (WebCore::RenderTableSection::setCellWidths):
69060         (WebCore::RenderTableSection::calcRowHeight):
69061         (WebCore::RenderTableSection::layoutRows):
69062         (WebCore::RenderTableSection::lowestPosition):
69063         (WebCore::RenderTableSection::rightmostPosition):
69064         (WebCore::RenderTableSection::leftmostPosition):
69065         (WebCore::RenderTableSection::calcOuterBorderTop):
69066         (WebCore::RenderTableSection::calcOuterBorderBottom):
69067         (WebCore::RenderTableSection::calcOuterBorderLeft):
69068         (WebCore::RenderTableSection::calcOuterBorderRight):
69069         (WebCore::RenderTableSection::paint):
69070         (WebCore::RenderTableSection::recalcCells):
69071         (WebCore::RenderTableSection::clearGrid):
69072         (WebCore::RenderTableSection::numColumns):
69073         (WebCore::RenderTableSection::appendColumn): Added. Moved code from
69074         RenderTable::appendColumn() into here.
69075         (WebCore::RenderTableSection::splitColumn): Added. Moved code from
69076         RenderTable::splitColumn() into here.
69077         (WebCore::RenderTableSection::removeChildNode):
69078         (WebCore::RenderTableSection::dump):
69079         * rendering/RenderTableSection.h:
69080         (WebCore::RenderTableSection::renderName):
69081         (WebCore::RenderTableSection::isTableSection):
69082         (WebCore::RenderTableSection::lineHeight):
69083         (WebCore::RenderTableSection::table):
69084         (WebCore::RenderTableSection::cellAt):
69085         (WebCore::RenderTableSection::numRows):
69086         (WebCore::RenderTableSection::recalcCellsIfNeeded):
69087         (WebCore::RenderTableSection::needsCellRecalc):
69088         (WebCore::RenderTableSection::setNeedsCellRecalc):
69089         (WebCore::RenderTableSection::getBaseline):
69090         * rendering/TableLayout.h:
69092 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69094         Reviewed by Adam.
69096         http://bugs.webkit.org/show_bug.cgi?id=12120
69097         REGRESSION(r18605): Safari snippet editor no longer works
69098         
69099         * loader/mac/ResourceLoaderMac.mm:
69100         (WebCore::ResourceLoader::willSendRequest):
69101         Fix logic so applewebdata: URLs no longer cause the underlying URL to be fetched .
69103 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69105         Reviewed by Adam.
69107         Move all remaining instances of NSURLRequest over to ResourceRequest (well, pretty much all).
69109         * loader/MainResourceLoader.h:
69110         * loader/ResourceLoader.h:
69111         * loader/SubresourceLoader.h:
69112         * loader/mac/FrameLoaderMac.mm:
69113         (WebCore::FrameLoader::startLoadingMainResource):
69114         * loader/mac/MainResourceLoaderMac.mm:
69115         (WebCore::MainResourceLoader::loadNow):
69116         (WebCore::MainResourceLoader::load):
69117         (WebCore::MainResourceLoader::setDefersLoading):
69118         * loader/mac/ResourceLoaderMac.mm:
69119         (WebCore::ResourceLoader::load):
69120         * loader/mac/SubresourceLoaderMac.mm:
69121         (WebCore::SubresourceLoader::load):
69122         (WebCore::SubresourceLoader::create):
69123         * platform/graphics/svg/SVGImage.cpp:
69124         (WebCore::SVGImage::setData):
69125         * platform/network/mac/ResourceRequestMac.mm:
69126         (WebCore::ResourceRequest::doUpdatePlatformRequest):
69128 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69130         Reviewed by Brady.
69132         Move more NSURLRequests over to ResourceRequests.
69133         
69134         * loader/DocumentLoader.h:
69135         * loader/FrameLoader.h:
69136         * loader/FrameLoaderClient.h:
69137         * loader/MainResourceLoader.h:
69138         * loader/ResourceLoader.h:
69139         (WebCore::ResourceLoader::request):
69140         * loader/SubresourceLoader.h:
69141         * loader/mac/FrameLoaderMac.mm:
69142         (WebCore::FrameLoader::willSendRequest):
69143         (WebCore::FrameLoader::opened):
69144         (WebCore::FrameLoader::requestFromDelegate):
69145         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
69146         (WebCore::FrameLoader::loadResourceSynchronously):
69147         * loader/mac/MainResourceLoaderMac.mm:
69148         (WebCore::MainResourceLoader::willSendRequest):
69149         (WebCore::MainResourceLoader::continueAfterContentPolicy):
69150         (WebCore::MainResourceLoader::loadNow):
69151         (WebCore::MainResourceLoader::setDefersLoading):
69152         * loader/mac/ResourceLoaderMac.mm:
69153         (WebCore::ResourceLoader::load):
69154         (WebCore::ResourceLoader::willSendRequest):
69155         (WebCore::ResourceLoader::didReceiveResponse):
69156         (WebCore::ResourceLoader::cancelledError):
69157         * loader/mac/SubresourceLoaderMac.mm:
69158         (WebCore::SubresourceLoader::willSendRequest):
69159         * platform/graphics/svg/SVGImageEmptyClients.h:
69160         (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
69161         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
69162         * platform/network/ResourceRequest.cpp:
69163         (WebCore::ResourceRequest::isNull):
69164         * platform/network/ResourceRequest.h:
69166 2007-01-04  Brady Eidson  <beidson@apple.com>
69168         Reviewed by Mark Rowe
69170         http://bugs.webkit.org/show_bug.cgi?id=12119
69171         Changing the behavior of HistoryItem::pageCache() this morning also necessitated
69172         changing the behavior of HistoryItem::hasPageCache()
69174         * history/HistoryItem.cpp:
69175         (WebCore::HistoryItem::hasPageCache): Add the same pendingRelease check pageCache() has
69177 2007-01-04  Mitz Pettel  <mitz@webkit.org>
69179         Reviewed by Sam Weinig.
69181         - fix http://bugs.webkit.org/show_bug.cgi?id=12043
69182           Another assertion failure in WebCore::RenderObject::drawBorder
69184         Test: fast/borders/border-radius-huge-assert.html
69186         * platform/graphics/cg/GraphicsContextCG.cpp:
69187         (WebCore::GraphicsContext::addRoundedRectClip): Fixed the check for border radii
69188         that do not fit in the given width or height to work with radii that sum up to
69189         more than MAX_INT.
69190         * rendering/RenderObject.cpp:
69191         (WebCore::RenderObject::paintBorder): Ditto.
69193 2007-01-04  Justin Garcia  <justin.garcia@apple.com>
69195         Reviewed by john
69197         <rdar://problem/4861080>
69198         GMail Editor: Crash when dropping content into certain list items
69199         
69200         A rendering bug (4907469) creates unwanted space at the top of a 
69201         list item when its contents are wrapped in span.  Dropping content 
69202         inside that space causes a crash because positionForCoordinates 
69203         fails there and the code that creates drag carets can't handle it.
69205         * page/mac/WebCoreFrameBridge.mm:
69206         (-[WebCoreFrameBridge _visiblePositionForPoint:]): Added the
69207         that's inside click handling for the case where 
69208         positionForCoordinates returns null.  We should also fix 
69209         positionForCoordinates but that's less important: now its only side 
69210         effect is that a no-op drop is performed instead of a snap back 
69211         when you drop the contents of one of these list items its own 
69212         unwanted space.
69214 2007-01-04  Beth Dakin  <bdakin@apple.com>
69216         Reviewed by Adam.
69218         Fix for http://bugs.webkit.org/show_bug.cgi?id=12118 REGRESSION 
69219         (Context menus): No context menu displayed when clicking outside a 
69220         short document
69222         No test case added since we do not currently have a way to automate 
69223         context menus. 
69225         * page/ContextMenuController.cpp:
69226         (WebCore::ContextMenuController::handleContextMenuEvent): If the 
69227         hit test does not find a node, use the document node.
69229 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69231         Reviewed by Adam.
69233         Convert NSURLRequest to ResourceRequest in a few places
69235         * loader/FrameLoader.h:
69236         * loader/FrameLoaderClient.h:
69237         * loader/MainResourceLoader.h:
69238         * loader/mac/FrameLoaderMac.mm:
69239         (WebCore::FrameLoader::identifierForInitialRequest):
69240         (WebCore::FrameLoader::willUseArchive):
69241         * loader/mac/MainResourceLoaderMac.mm:
69242         (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
69243         * platform/graphics/svg/SVGImageEmptyClients.h:
69244         (WebCore::SVGEmptyFrameLoaderClient::download):
69245         (WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
69247 2007-01-04  David Hyatt  <hyatt@apple.com>
69249         Bug 12114 fix, make sure left/right floats are allowed to go above
69250         other floats of opposite alignment.
69252         Reviewed by aroben
69254         fast/block/float/independent-align-positioning.html
69256         * rendering/RenderBlock.cpp:
69257         (WebCore::RenderBlock::positionNewFloats):
69259 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69261         Reviewed by Brady.
69263         http://bugs.webkit.org/show_bug.cgi?id=12116
69264         REGRESSION: ASSERTION FAILED: URL in +[WebDataProtocol _webIsDataProtocolURL:]
69265         
69266         <rdar://problem/4908910> 
69267         REGRESSION: After switching to Bookmarks view, the browser window is completely empty (no bookmarks are displayed)
69268         
69269         * platform/network/ResourceResponse.h:
69270         (WebCore::ResourceResponse::ResourceResponse):
69271         Initialize m_isNull
69273 2007-01-04  Beth Dakin  <bdakin@apple.com>
69275         Reviewed by Adam.
69277         Turn on WebCore context menus.
69279         * dom/EventTargetNode.cpp:
69280         (WebCore::EventTargetNode::defaultEventHandler): Turn on WebCore 
69281         menus.
69282         * page/ContextMenuClient.h: Name change and have the 
69283         former getCustomMenuFromDefaultItems function return the 
69284         PlatformMenuDescription since it feels funny to have the client set 
69285         the new platform description.
69286         * page/ContextMenuController.cpp:
69287         (WebCore::ContextMenuController::handleContextMenuEvent): Above 
69288         name change.
69289         (WebCore::ContextMenuController::contextMenuItemSelected): Use 
69290         local variable.
69291         * platform/ContextMenu.cpp:
69292         (WebCore::createAndAppendSpeechSubMenu): Fix silly mistake -- make 
69293         "Stop speaking" actually stop speaking.
69294         * platform/graphics/svg/SVGImageEmptyClients.h: Name change and 
69295         have the former getCustomMenuFromDefaultItems function return the 
69296         PlatformMenuDescription since it feels funny to have the client set 
69297         the new platform description.
69298        (WebCore::SVGEmptyContextMenuClient::getCustomMenuFromDefaultItems):
69300 2007-01-04  Mitz Pettel  <mitz@webkit.org>
69302         Reviewed and landed by Brady
69304         - fix http://bugs.webkit.org/show_bug.cgi?id=12087
69305           REGRESSION: Reproducible crash going back in Back/Forward history
69307         Allow a PageCache that is pending release to be resurrected by its
69308         HistoryItem instead of creating a new PageCache. This avoids the
69309         the condition of having two PageCaches for the same HistoryItem, one
69310         current and one pending release but not yet released, which was causing
69311         this and other bugs before.
69312         
69313         Replaced the vector of PageCaches pending release with a set of
69314         HistoryItems that are pending release of their PageCache.
69316         * history/HistoryItem.cpp:
69317         (WebCore::HistoryItem::HistoryItem):
69318         (WebCore::HistoryItem::setHasPageCache): Check for an existing PageCache
69319         pending release, and if found, resurrect it by canceling the release.
69320         (WebCore::HistoryItem::pageCache): Return 0 if the PageCache is pending
69321         release.
69322         (WebCore::itemsWithPendingPageCacheToRelease): Renamed pendingPageCacheToRelease
69323         to this. This method now returns a HashSet of HistoryItems that have scheduled
69324         their PageCaches for release.
69325         (WebCore::HistoryItem::releasePageCachesOrReschedule): Renamed releasePageCache
69326         to this.
69327         (WebCore::HistoryItem::releasePageCache): Added. Actually closes and releases
69328         the PageCache.
69329         (WebCore::HistoryItem::releaseAllPendingPageCaches): Rolled closeObjectsInPendingPageCaches
69330         into this method.
69331         (WebCore::HistoryItem::scheduleRelease):
69332         (WebCore::HistoryItem::cancelRelease): Added.
69333         * history/HistoryItem.h: Removed unused declaration of scheduleReleaseTimer()
69334         * history/HistoryItemTimer.cpp:
69335         (WebCore::HistoryItemTimer::HistoryItemTimer):
69336         (WebCore::HistoryItemTimer::callReleasePageCachesOrReschedule):
69337         * history/HistoryItemTimer.h:
69339 2007-01-04  David Hyatt  <hyatt@apple.com>
69341         Just make the synthetic bold offset always be 1.0.  This fixes bug
69342         9534, synthetic bold looks doubled.
69344         Reviewed by olliej
69346         * platform/mac/FontDataMac.mm:
69347         (WebCore::FontData::platformInit):
69349 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69351         Reviewed by Brady.
69353         Convert almost all occurrences of NSURLResponse to ResourceResponse.
69355         * WebCore.exp:
69356         * loader/DocumentLoader.h:
69357         * loader/FrameLoader.h:
69358         * loader/FrameLoaderClient.h:
69359         * loader/MainResourceLoader.h:
69360         * loader/NetscapePlugInStreamLoader.h:
69361         * loader/ResourceLoader.h:
69362         * loader/SubresourceLoader.h:
69363         * loader/loader.h:
69364         * loader/mac/FrameLoaderMac.mm:
69365         (WebCore::FrameLoader::willSendRequest):
69366         (WebCore::FrameLoader::didReceiveResponse):
69367         (WebCore::FrameLoader::opened):
69368         (WebCore::FrameLoader::sendRemainingDelegateMessages):
69369         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
69370         (WebCore::FrameLoader::loadResourceSynchronously):
69371         * loader/mac/LoaderFunctionsMac.mm:
69372         (WebCore::CheckCacheObjectStatus):
69373         * loader/mac/MainResourceLoaderMac.mm:
69374         (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
69375         (WebCore::MainResourceLoader::willSendRequest):
69376         (WebCore::MainResourceLoader::continueAfterContentPolicy):
69377         (WebCore::MainResourceLoader::didReceiveResponse):
69378         (WebCore::MainResourceLoader::loadNow):
69379         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
69380         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
69381         * loader/mac/ResourceLoaderMac.mm:
69382         (WebCore::ResourceLoader::willSendRequest):
69383         (WebCore::ResourceLoader::didReceiveResponse):
69384         (WebCore::ResourceLoader::response):
69385         * loader/mac/SubresourceLoaderMac.mm:
69386         (WebCore::SubresourceLoader::willSendRequest):
69387         (WebCore::SubresourceLoader::didReceiveResponse):
69388         * platform/graphics/svg/SVGImageEmptyClients.h:
69389         (WebCore::SVGEmptyFrameLoaderClient::download):
69390         (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
69391         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
69392         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
69393         (WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
69394         * platform/network/ResourceHandle.h:
69395         * platform/network/ResourceHandleClient.h:
69396         * platform/network/ResourceResponse.cpp:
69397         (WebCore::ResourceResponse::isHTTP):
69398         * platform/network/ResourceResponse.h:
69399         (WebCore::ResourceResponse::ResourceResponse):
69400         (WebCore::ResourceResponse::isNull):
69401         * platform/network/mac/ResourceResponseMac.mm:
69402         (WebCore::ResourceResponse::nsURLResponse):
69403         (WebCore::ResourceResponse::doUpdateResourceResponse):
69405 2007-01-03  Adele Peterson  <adele@apple.com>
69407         Reviewed by Darin.
69409         - Fix for <rdar://problem/4887422>
69410         http://bugs.webkit.org/show_bug.cgi?id=11848
69411         REGRESSION (SearchField): Search field on developer.apple.com not drawn with top/bottom borders (11848)
69413         Test: fast/forms/searchfield-heights.html
69415         Override the border and the height for search fields that use -webkit-appearance: searchfield.
69417         * css/html4.css: Use box-sizing: border-box for search fields.  We don't need to have the border-box quirk
69418           that we use for the other text fields for this control.
69419         * rendering/RenderThemeMac.h:
69420         * rendering/RenderThemeMac.mm:
69421         (WebCore::RenderThemeMac::searchFieldSizes): Added.
69422         (WebCore::RenderThemeMac::setSearchFieldSize): Added.
69423         (WebCore::RenderThemeMac::adjustSearchFieldStyle): Override the border and the height of the search field.
69425 2007-01-04  Lars Knoll <lars@trolltech.com>
69427         * platform/qt/TemporaryLinkStubs.cpp:
69428         (WebCore::inputElementAltText):
69429         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
69430         (WebCore::contextMenuItemTagDownloadLinkToDisk):
69431         (WebCore::contextMenuItemTagCopyLinkToClipboard):
69432         (WebCore::contextMenuItemTagOpenImageInNewWindow):
69433         (WebCore::contextMenuItemTagDownloadImageToDisk):
69434         (WebCore::contextMenuItemTagCopyImageToClipboard):
69435         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
69436         (WebCore::contextMenuItemTagCopy):
69437         (WebCore::contextMenuItemTagGoBack):
69438         (WebCore::contextMenuItemTagGoForward):
69439         (WebCore::contextMenuItemTagStop):
69440         (WebCore::contextMenuItemTagReload):
69441         (WebCore::contextMenuItemTagCut):
69442         (WebCore::contextMenuItemTagPaste):
69443         (WebCore::contextMenuItemTagNoGuessesFound):
69444         (WebCore::contextMenuItemTagIgnoreSpelling):
69445         (WebCore::contextMenuItemTagLearnSpelling):
69446         (WebCore::contextMenuItemTagSearchWeb):
69447         (WebCore::contextMenuItemTagLookUpInDictionary):
69448         (WebCore::contextMenuItemTagOpenLink):
69449         (WebCore::contextMenuItemTagIgnoreGrammar):
69450         (WebCore::contextMenuItemTagSpellingMenu):
69451         (WebCore::contextMenuItemTagShowSpellingPanel):
69452         (WebCore::contextMenuItemTagCheckSpelling):
69453         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
69454         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
69455         (WebCore::contextMenuItemTagFontMenu):
69456         (WebCore::contextMenuItemTagBold):
69457         (WebCore::contextMenuItemTagItalic):
69458         (WebCore::contextMenuItemTagUnderline):
69459         (WebCore::contextMenuItemTagOutline):
69460         (WebCore::contextMenuItemTagWritingDirectionMenu):
69461         (WebCore::contextMenuItemTagDefaultDirection):
69462         (WebCore::contextMenuItemTagLeftToRight):
69463         (WebCore::contextMenuItemTagRightToLeft):
69464             Added missing stubs.
69466 2007-01-04  Peter Kasting  <pkasting@chromium.org>
69468         Reviewed by Alexey.
69470         http://bugs.webkit.org/show_bug.cgi?id=11900:
69471         Windows build bustage
69473         * WebCore.vcproj/WebCore/WebCore.vcproj:
69474         * bridge/win/FrameWin.cpp:
69475         (WebCore::FrameWin::FrameWin):
69476         * platform/graphics/BitmapImage.h:
69477         * platform/graphics/GraphicsContext.cpp:
69478         (WebCore::GraphicsContext::setPlatformStrokeColor):
69479         * platform/graphics/Image.h:
69480         * platform/graphics/cairo/GraphicsContextCairo.cpp:
69481         (WebCore::GraphicsContext::drawRect):
69482         (WebCore::adjustLineToPixelBoundaries):
69483         (WebCore::GraphicsContext::drawLine):
69484         (WebCore::GraphicsContext::drawEllipse):
69485         (WebCore::GraphicsContext::strokeArc):
69486         (WebCore::GraphicsContext::drawConvexPolygon):
69487         * platform/graphics/cairo/ImageCairo.cpp:
69488         (WebCore::BitmapImage::checkForSolidColor):
69489         (WebCore::BitmapImage::draw):
69490         (WebCore::BitmapImage::drawTiled):
69491         * platform/graphics/win/ImageWin.cpp:
69492         (WebCore::BitmapImage::initPlatformData):
69493         (WebCore::BitmapImage::invalidatePlatformData):
69494         (WebCore::Image::loadPlatformResource):
69495         * platform/win/FontWin.cpp:
69496         (WebCore::Font::drawGlyphs):
69497         * platform/win/TemporaryLinkStubs.cpp:
69498         (WebCore::userIdleTime):
69499         (WebCore::BitmapImage::drawTiled):
69500         (WebCore::BitmapImage::getHBITMAP):
69501         (WebCore::ContextMenu::~ContextMenu):
69502         (WebCore::ContextMenu::appendItem):
69503         (WebCore::ContextMenuItem::ContextMenuItem):
69504         (WebCore::ContextMenuItem::releasePlatformDescription):
69505         (WebCore::ContextMenuItem::type):
69506         (WebCore::ContextMenuItem::setType):
69507         (WebCore::ContextMenuItem::setAction):
69508         (WebCore::ContextMenuItem::setTitle):
69509         (WebCore::ContextMenuItem::setSubMenu):
69510         (WebCore::ContextMenuItem::setChecked):
69511         (WebCore::ContextMenuItem::setEnabled):
69512         (WebCore::DocumentLoader::originalRequest):
69513         (WebCore::DocumentLoader::request):
69514         (WebCore::DocumentLoader::unreachableURL):
69515         (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
69516         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
69517         (WebCore::DocumentLoader::setCommitted):
69518         (WebCore::DocumentLoader::isLoading):
69519         (WebCore::DocumentLoader::prepareForLoadStart):
69520         (WebCore::DocumentLoader::isClientRedirect):
69521         (WebCore::DocumentLoader::title):
69522         (WebCore::DocumentLoader::urlForHistory):
69523         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
69524         (WebCore::FrameLoader::load):
69525         (WebCore::FrameLoader::referrer):
69526         (WebCore::FrameLoader::dataURLBaseFromRequest):
69527         (WebCore::FrameLoader::opened):
69528         (WebCore::FrameLoader::applyUserAgent):
69529         (WebCore::GraphicsContext::strokeRect):
69530         (WebCore::IconDatabase::iconForPageURL):
69531         (WebCore::IconDatabase::defaultIcon):
69532         (WebCore::IconDatabase::retainIconForPageURL):
69533         (WebCore::IconDatabase::releaseIconForPageURL):
69534         (WebCore::PageCache::close):
69535         (WebCore::ResourceHandle::willLoadFromCache):
69536         (WebCore::SearchPopupMenu::saveRecentSearches):
69537         (WebCore::SearchPopupMenu::loadRecentSearches):
69538         (WebCore::SearchPopupMenu::SearchPopupMenu):
69540 2007-01-04  Alexey Proskuryakov  <ap@webkit.org>
69542         Reviewed by Darin.
69544         http://bugs.webkit.org/show_bug.cgi?id=11611
69545         REGRESSION: No http referer header sent on XMLHttpRequest
69547         Test: http/tests/xmlhttprequest/referer.html
69549         * loader/FrameLoader.h: Removed FrameLoader::addExtraFieldsToRequest(NSMutableURLRequest*, bool, bool),
69550         which is no longer used.
69551         * loader/mac/FrameLoaderMac.mm: Ditto.
69552         * WebCore.exp: Do not export this method (WebKit doesn't use it).
69554         * loader/mac/SubresourceLoaderMac.mm:
69555         (WebCore::SubresourceLoader::create): Rewrote to create the request with ResourceRequest::nsURLRequest.
69557         * platform/PlatformString.h:
69558         (WebCore::operator!): Added. Previously, attempts to use operator! on a String would result 
69559         with an NSString* conversion, which never returns nil. This was causing a problem in SubresourceLoader::create().
69561 2007-01-04  Lars Knoll <lars@trolltech.com>
69564         Make the Qt build compile again.
69566         * platform/ContextMenu.cpp:
69567         (WebCore::ContextMenu::populate):
69569 2007-01-03  Mitz Pettel  <mitz@webkit.org>
69571         Reviewed by Hyatt.
69573         - fix http://bugs.webkit.org/show_bug.cgi?id=5164
69574           Non-integer percentages are incorrectly rounded down in Safari
69576         Test: fast/css/percentage-non-integer.html
69578         Added floating point constructor and accessors to Length for use with
69579         Percent lengths only. The raw value of a percent length is the integer
69580         part of a constant multiple of the original double value. The constant
69581         is percentScaleFactor, which is currently 128.
69582         
69583         Added assertions that the correct constructors and accessors are used
69584         depending on the type: the double-based percent(), setValue() and Length()
69585         for the Percent type, and the integer-based value(), setValue() and Length()
69586         for all other types.
69587         
69588         calcValue() and calcMinValue() work the same as before, regardless of the
69589         type.
69591         Added helpers for testing if the value is 0, positive, negative or undefined
69592         without having to check the type first.
69593         
69594         Added raw value accessors. These are useful for doing integer math and
69595         comparisons with scaled percent values or doing Length type-agnostic math.
69597         Changed the rest of the code to use the appropriate accessors and helpers.
69599         * css/CSSComputedStyleDeclaration.cpp:
69600         (WebCore::valueForLength):
69601         (WebCore::primitiveValueFromLength):
69602         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
69603         * css/cssstyleselector.cpp:
69604         (WebCore::convertToLength):
69605         (WebCore::CSSStyleSelector::applyProperty):
69606         (WebCore::CSSStyleSelector::mapBackgroundSize):
69607         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
69608         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
69609         * platform/StringImpl.cpp:
69610         (WebCore::parseLength):
69611         * rendering/AutoTableLayout.cpp:
69612         (WebCore::AutoTableLayout::recalcColumn):
69613         (WebCore::AutoTableLayout::fullRecalc):
69614         (WebCore::AutoTableLayout::calcMinMaxWidth):
69615         (WebCore::AutoTableLayout::calcEffectiveWidth):
69616         (WebCore::AutoTableLayout::layout):
69617         (WebCore::AutoTableLayout::calcPercentages):
69618         * rendering/FixedTableLayout.cpp:
69619         (WebCore::FixedTableLayout::calcWidthArray):
69620         (WebCore::FixedTableLayout::layout):
69621         * rendering/Length.h:
69622         (WebCore::Length::Length):
69623         (WebCore::Length::value):
69624         (WebCore::Length::rawValue):
69625         (WebCore::Length::percent):
69626         (WebCore::Length::setValue):
69627         (WebCore::Length::setRawValue):
69628         (WebCore::Length::calcValue):
69629         (WebCore::Length::calcMinValue):
69630         (WebCore::Length::isUndefined):
69631         (WebCore::Length::isZero):
69632         (WebCore::Length::isPositive):
69633         (WebCore::Length::isNegative):
69634         * rendering/RenderBR.cpp:
69635         (WebCore::RenderBR::lineHeight):
69636         * rendering/RenderBlock.cpp:
69637         (WebCore::RenderBlock::isSelfCollapsingBlock):
69638         * rendering/RenderBox.cpp:
69639         (WebCore::cacluateBackgroundSize):
69640         (WebCore::RenderBox::calcWidth):
69641         (WebCore::RenderBox::calcHeight):
69642         (WebCore::RenderBox::calcReplacedWidth):
69643         (WebCore::RenderBox::calcReplacedHeight):
69644         (WebCore::RenderBox::calcAbsoluteHorizontal):
69645         (WebCore::RenderBox::calcAbsoluteVertical):
69646         * rendering/RenderFlexibleBox.cpp:
69647         (WebCore::RenderFlexibleBox::allowedChildFlex):
69648         * rendering/RenderFlow.cpp:
69649         (WebCore::RenderFlow::lineHeight):
69650         * rendering/RenderImage.cpp:
69651         (WebCore::RenderImage::calcReplacedWidth):
69652         (WebCore::RenderImage::calcReplacedHeight):
69653         * rendering/RenderLayer.cpp:
69654         (WebCore::Marquee::direction):
69655         (WebCore::Marquee::start):
69656         * rendering/RenderObject.cpp:
69657         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
69658         (WebCore::RenderObject::lineHeight):
69659         * rendering/RenderSlider.cpp:
69660         (WebCore::RenderSlider::layout): Added FIXMEs.
69661         * rendering/RenderStyle.h:
69662         (WebCore::LengthBox::nonZero):
69663         (WebCore::RenderStyle::initialLineHeight):
69664         * rendering/RenderTable.cpp:
69665         (WebCore::RenderTable::calcWidth):
69666         * rendering/RenderTableSection.cpp:
69667         (WebCore::RenderTableSection::addCell):
69668         (WebCore::RenderTableSection::layoutRows):
69670 2007-01-03  Mitz Pettel  <mitz@webkit.org>
69672         Reviewed by Hyatt.
69674         - fix http://bugs.webkit.org/show_bug.cgi?id=11744
69675           Setting the 'content' property dynamically has no effect
69677         Test: fast/css/content-dynamic.html
69679         * dom/Node.cpp:
69680         (WebCore::Node::diff): Changed to return 'Detach' if the styles' content
69681         data are not equivalent.
69683 2007-01-03  Mitz Pettel  <mitz@webkit.org>
69685         Reviewed by Darin.
69687         - fix http://bugs.webkit.org/show_bug.cgi?id=12082
69688           REGRESSION (r18333): Crash in RenderFrameSet::layOutAxis()
69690         Test: fast/frames/negative-remaining-length-crash.html
69692         * rendering/RenderFrameSet.cpp:
69693         (WebCore::RenderFrameSet::layOutAxis): Treat negative availableLength
69694         as zero.
69696 2007-01-03  John Sullivan  <sullivan@apple.com>
69698         Written by Darin over my shoulder; reviewed by me
69700         - fixed <rdar://problem/4907437> Find doesn't work if invoked when a form field is focused
69702         * page/Frame.cpp:
69703         (WebCore::isInShadowTree):
69704         new helper function used by findString
69705         (WebCore::Frame::findString):
69706         when deciding whether to start from the selection, ignore selections that are in
69707         a shadow tree (i.e. in a form control)
69709 2007-01-03  Brady Eidson  <beidson@apple.com>
69711         Reviewed by Mark Rowe
69713         Fixes http://bugs.webkit.org/show_bug.cgi?id=12089
69715         * loader/FrameLoader.cpp:
69716         (WebCore::FrameLoader::updateHistoryForCommit): Null check the documentLoader
69718 2007-01-03  David Hyatt  <hyatt@apple.com>
69720         Relax the display type restriction a little bit for generated content inside
69721         inlines.  We still don't allow block display types like we should (since this
69722         will cause a crash), but we at least handle inline-table and inline-block now.
69724         Reviewed by beth
69726         fast/css-generated-content/inline-display-types.html
69728         * rendering/RenderContainer.cpp:
69729         (WebCore::RenderContainer::updatePseudoChildForObject):
69731 2007-01-03  Justin Garcia  <justin.garcia@apple.com>
69733         Reviewed by john
69734         
69735         <rdar://problem/4663571> Spell checking won't cross boundary of individual To-Do item
69736         
69737         No layout tests because advanceToNextMisspelling isn't yet exposed to automated tests.
69739         * editing/mac/EditorMac.mm:
69740         (WebCore::Editor::advanceToNextMisspelling): Confine spell checking to
69741         the highest editable root, instead of the lowest.  Use firstEditablePosition...
69742         to look for an editable position.
69744 2007-01-03  Beth Dakin  <bdakin@apple.com>
69746         Fixing silly mistake. 
69748         * platform/ContextMenu.cpp:
69749         (WebCore::ContextMenu::checkOrEnableIfNeeded): Called wrong string 
69750         function.
69752 2007-01-03  Brady Eidson  <beidson@apple.com>
69754         Reviewed by Anders
69756         http://bugs.webkit.org/show_bug.cgi?id=12093 - Assertion in certain SVG layout tests
69757         I can't really think of a cleaner way to fix this then to help these SVG cases avoid
69758         the ASSERT - hopefully we can clean up the svg-as-image situation as the loader stabilizes 
69759         and we find better ways to handle it...
69761         * loader/mac/DocumentLoaderMac.mm:
69762         (WebCore::DocumentLoader::urlForHistory): empty-check the url before passing it to the
69763         ASSERTing method
69765 2007-01-03  Darin Adler  <darin@apple.com>
69767         Reviewed by Adele.
69769         - removed some obsolete source files
69771         * CMakeLists.txt: Removed obsolete files.
69772         * WebCore.pro: Ditto.
69773         * WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
69774         * WebCore.xcodeproj/project.pbxproj: Ditto.
69775         * WebCoreSources.bkl: Ditto.
69777         * html/HTMLGenericFormElement.h: Removed reference to RenderFormElement.
69779         * platform/qt/ComboBoxQt.cpp: Removed.
69780         * platform/qt/LineEditQt.cpp: Removed.
69781         * platform/qt/ListBoxQt.cpp: Removed.
69782         * platform/qt/TextEditQt.cpp: Removed.
69783         * rendering/RenderFormElement.cpp: Removed.
69784         * rendering/RenderFormElement.h: Removed.
69785         * rendering/RenderLabel.cpp: Removed.
69786         * rendering/RenderLabel.h: Removed.
69788 2007-01-03  Darin Adler  <darin@apple.com>
69790         Reviewed by Hyatt.
69792         - fix bug where :after content appears backwards
69794         Test: fast/css-generated-content/after-order.html
69796         * rendering/RenderBlock.cpp:
69797         (WebCore::isAfterContent): Added.
69798         (WebCore::RenderBlock::addChildToFlow): Use isAfterContent.
69799         * rendering/RenderInline.cpp:
69800         (WebCore::isAfterContent): Added.
69801         (WebCore::RenderInline::addChildToFlow): Use isAfterContent.
69803 2007-01-03  David Hyatt  <hyatt@apple.com>
69805         Implement box-shadow parsing... getting it all into the RenderStyle.
69807         Reviewed by beth
69809         * css/CSSComputedStyleDeclaration.cpp:
69810         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
69811         * css/CSSPropertyNames.in:
69812         * css/cssparser.cpp:
69813         (WebCore::CSSParser::parseValue):
69814         * css/cssstyleselector.cpp:
69815         (WebCore::CSSStyleSelector::applyProperty):
69816         * rendering/RenderStyle.cpp:
69817         (WebCore::StyleCSS3NonInheritedData::StyleCSS3NonInheritedData):
69818         (WebCore::StyleCSS3NonInheritedData::operator==):
69819         (WebCore::StyleCSS3NonInheritedData::shadowDataEquivalent):
69820         (WebCore::RenderStyle::diff):
69821         (WebCore::RenderStyle::setBoxShadow):
69822         * rendering/RenderStyle.h:
69823         (WebCore::RenderStyle::boxShadow):
69825 2007-01-03  Beth Dakin  <bdakin@apple.com>
69827         Reviewed by John.
69829         Call into WebKit to get localized strings for all of the context 
69830         menu item titles.
69832         * page/mac/WebCoreViewFactory.h:
69833         * platform/ContextMenu.cpp:
69834         (WebCore::createAndAppendFontSubMenu):
69835         (WebCore::createAndAppendSpellingAndGrammarSubMenu):
69836         (WebCore::createAndAppendSpellingSubMenu):
69837         (WebCore::createAndAppendSpeechSubMenu):
69838         (WebCore::createAndAppendWritingDirectionSubMenu):
69839         (WebCore::ContextMenu::populate):
69840         (WebCore::ContextMenu::checkOrEnableIfNeeded):
69841         * platform/LocalizedStrings.h:
69842         * platform/mac/LocalizedStringsMac.mm:
69843         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
69844         (WebCore::contextMenuItemTagDownloadLinkToDisk):
69845         (WebCore::contextMenuItemTagCopyLinkToClipboard):
69846         (WebCore::contextMenuItemTagOpenImageInNewWindow):
69847         (WebCore::contextMenuItemTagDownloadImageToDisk):
69848         (WebCore::contextMenuItemTagCopyImageToClipboard):
69849         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
69850         (WebCore::contextMenuItemTagCopy):
69851         (WebCore::contextMenuItemTagGoBack):
69852         (WebCore::contextMenuItemTagGoForward):
69853         (WebCore::contextMenuItemTagStop):
69854         (WebCore::contextMenuItemTagReload):
69855         (WebCore::contextMenuItemTagCut):
69856         (WebCore::contextMenuItemTagPaste):
69857         (WebCore::contextMenuItemTagNoGuessesFound):
69858         (WebCore::contextMenuItemTagIgnoreSpelling):
69859         (WebCore::contextMenuItemTagLearnSpelling):
69860         (WebCore::contextMenuItemTagSearchInSpotlight):
69861         (WebCore::contextMenuItemTagSearchWeb):
69862         (WebCore::contextMenuItemTagLookUpInDictionary):
69863         (WebCore::contextMenuItemTagOpenLink):
69864         (WebCore::contextMenuItemTagIgnoreGrammar):
69865         (WebCore::contextMenuItemTagSpellingMenu):
69866         (WebCore::contextMenuItemTagShowSpellingPanel):
69867         (WebCore::contextMenuItemTagCheckSpelling):
69868         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
69869         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
69870         (WebCore::contextMenuItemTagFontMenu):
69871         (WebCore::contextMenuItemTagShowFonts):
69872         (WebCore::contextMenuItemTagBold):
69873         (WebCore::contextMenuItemTagItalic):
69874         (WebCore::contextMenuItemTagUnderline):
69875         (WebCore::contextMenuItemTagOutline):
69876         (WebCore::contextMenuItemTagStyles):
69877         (WebCore::contextMenuItemTagShowColors):
69878         (WebCore::contextMenuItemTagSpeechMenu):
69879         (WebCore::contextMenuItemTagStartSpeaking):
69880         (WebCore::contextMenuItemTagStopSpeaking):
69881         (WebCore::contextMenuItemTagWritingDirectionMenu):
69882         (WebCore::contextMenuItemTagDefaultDirection):
69883         (WebCore::contextMenuItemTagLeftToRight):
69884         (WebCore::contextMenuItemTagRightToLeft):
69886 2007-01-03  Brady Eidson  <beidson@apple.com>
69888         Reviewed by Darin and Geoff
69890         http://bugs.webkit.org/show_bug.cgi?id=12105 - Crash visiting Acid2 test page
69891         -Replace lost "free nil checking" in the WebKit->WebCore conversion of the BackForwardList
69892         -Changed ::createItem and ::createItemTree to ::createHistoryItem and ::createHistoryItemTree
69894         * loader/FrameLoader.cpp:
69895         (WebCore::FrameLoader::createHistoryItem):
69896         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
69897         (WebCore::FrameLoader::createHistoryItemTree):
69898         (WebCore::FrameLoader::updateHistoryForInternalLoad):
69899         * loader/FrameLoader.h:
69901 2007-01-03  Anders Carlsson  <acarlsson@apple.com>
69903         Reviewed by Geoff.
69904         
69905         Allow plugin elements to handle off events to their widgets.
69906         
69907         * html/HTMLPlugInElement.cpp:
69908         (WebCore::HTMLPlugInElement::defaultEventHandler):
69909         * html/HTMLPlugInElement.h:
69910         * platform/Widget.h:
69911         (WebCore::Widget::handleEvent):
69913 2007-01-03  Lars Knoll <lars@trolltech.com>
69915         Fix the Qt build
69917         * WebCore.pro:
69918         * history/qt/PageCacheQt.cpp: Added.
69919         (WebCore::PageCache::close):
69920         * loader/qt/DocumentLoaderQt.cpp:
69921         (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
69922         (WebCore::DocumentLoader::urlForHistory):
69923         * loader/qt/FrameLoaderQt.cpp:
69924         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
69925         (WebCore::FrameLoader::didFirstLayout):
69926         (WebCore::FrameLoader::load):
69927         (WebCore::FrameLoader::opened):
69928         (WebCore::FrameLoader::dataURLBaseFromRequest):
69929         (WebCore::FrameLoader::applyUserAgent):
69930         * platform/network/qt/ResourceHandleQt.cpp:
69931         (WebCore::ResourceHandle::loadsBlocked):
69932         (WebCore::ResourceHandle::willLoadFromCache):
69934 2007-01-02  Brady Eidson  <beidson@apple.com>
69936         Reviewed extensively and repeatedly by Darin
69938         <rdar://problem/4887137> - WebCore Back/Forward Cache
69940         * WebCore.exp:
69941         * WebCore.xcodeproj/project.pbxproj:
69943         * bridge/mac/WebCorePageState.h: Removed.
69944         * bridge/mac/WebCorePageState.mm: Removed.
69946         * history/BackForwardList.cpp: Added - This largely emulates the design of WebBackForwardList
69947         (WebCore::BackForwardList::BackForwardList):
69948         (WebCore::BackForwardList::~BackForwardList):
69949         (WebCore::BackForwardList::addItem):
69950         (WebCore::BackForwardList::goBack):
69951         (WebCore::BackForwardList::goForward):
69952         (WebCore::BackForwardList::goToItem):
69953         (WebCore::BackForwardList::backItem):
69954         (WebCore::BackForwardList::currentItem):
69955         (WebCore::BackForwardList::forwardItem):
69956         (WebCore::BackForwardList::backListWithLimit):
69957         (WebCore::BackForwardList::forwardListWithLimit):
69958         (WebCore::BackForwardList::capacity):
69959         (WebCore::BackForwardList::setCapacity):
69960         (WebCore::BackForwardList::setPageCacheSize):
69961         (WebCore::BackForwardList::pageCacheSize):
69962         (WebCore::BackForwardList::clearPageCache):
69963         (WebCore::BackForwardList::usesPageCache):
69964         (WebCore::BackForwardList::backListCount):
69965         (WebCore::BackForwardList::forwardListCount):
69966         (WebCore::BackForwardList::itemAtIndex):
69967         (WebCore::BackForwardList::entries):
69968         (WebCore::BackForwardList::close):
69969         (WebCore::BackForwardList::closed):
69970         (WebCore::BackForwardList::removeItem):
69971         (WebCore::BackForwardList::containsItem):
69972         (WebCore::BackForwardList::setDefaultPageCacheSize):
69973         (WebCore::BackForwardList::defaultPageCacheSize):
69974         * history/BackForwardList.h: Added.
69976         * history/HistoryItem.cpp: Added - This largely emulates the design of WebBackForwardList
69977         (WebCore::defaultNotifyHistoryItemChanged):
69978         (WebCore::HistoryItem::HistoryItem):
69979         (WebCore::HistoryItem::~HistoryItem):
69980         (WebCore::HistoryItem::copy):
69981         (WebCore::HistoryItem::setHasPageCache):
69982         (WebCore::HistoryItem::retainIconInDatabase):
69983         (WebCore::HistoryItem::urlString):
69984         (WebCore::HistoryItem::originalURLString):
69985         (WebCore::HistoryItem::title):
69986         (WebCore::HistoryItem::alternateTitle):
69987         (WebCore::HistoryItem::icon):
69988         (WebCore::HistoryItem::lastVisitedTime):
69989         (WebCore::HistoryItem::url):
69990         (WebCore::HistoryItem::originalURL):
69991         (WebCore::HistoryItem::target):
69992         (WebCore::HistoryItem::parent):
69993         (WebCore::HistoryItem::setAlternateTitle):
69994         (WebCore::HistoryItem::setURLString):
69995         (WebCore::HistoryItem::setURL):
69996         (WebCore::HistoryItem::setOriginalURLString):
69997         (WebCore::HistoryItem::setTitle):
69998         (WebCore::HistoryItem::setTarget):
69999         (WebCore::HistoryItem::setParent):
70000         (WebCore::HistoryItem::setLastVisitedTime):
70001         (WebCore::HistoryItem::visitCount):
70002         (WebCore::HistoryItem::setVisitCount):
70003         (WebCore::HistoryItem::scrollPoint):
70004         (WebCore::HistoryItem::setScrollPoint):
70005         (WebCore::HistoryItem::clearScrollPoint):
70006         (WebCore::HistoryItem::setDocumentState):
70007         (WebCore::HistoryItem::documentState):
70008         (WebCore::HistoryItem::clearDocumentState):
70009         (WebCore::HistoryItem::isTargetItem):
70010         (WebCore::HistoryItem::setIsTargetItem):
70011         (WebCore::HistoryItem::alwaysAttemptToUsePageCache):
70012         (WebCore::HistoryItem::setAlwaysAttemptToUsePageCache):
70013         (WebCore::HistoryItem::addChildItem):
70014         (WebCore::HistoryItem::childItemWithName):
70015         (WebCore::HistoryItem::recurseToFindTargetItem):
70016         (WebCore::HistoryItem::targetItem):
70017         (WebCore::HistoryItem::pageCache):
70018         (WebCore::HistoryItem::children):
70019         (WebCore::HistoryItem::hasChildren):
70020         (WebCore::HistoryItem::formContentType):
70021         (WebCore::HistoryItem::formReferrer):
70022         (WebCore::HistoryItem::rssFeedReferrer):
70023         (WebCore::HistoryItem::setRSSFeedReferrer):
70024         (WebCore::HistoryItem::setFormInfoFromRequest):
70025         (WebCore::HistoryItem::formData):
70026         (WebCore::HistoryItem::mergeAutoCompleteHints):
70027         (WebCore::HistoryItem::hasPageCache):
70028         (WebCore::timer): Function to manage the global release timer
70029         (WebCore::pendingPageCacheToRelease): Function to manage the global queue of caches to be released
70030         (WebCore::HistoryItem::releasePageCache):
70031         (WebCore::closeObjectsInPendingPageCaches):
70032         (WebCore::HistoryItem::releaseAllPendingPageCaches):
70033         (WebCore::HistoryItem::scheduleRelease):
70034         (WebCore::HistoryItem::print):
70035         * history/HistoryItem.h: Added.
70036         * history/mac/HistoryItemMac.mm: Added.
70037         (WebCore::HistoryItem::viewState): In the future we need a platform agnostic way to manage the view state
70038         (WebCore::HistoryItem::setViewState):
70039         (WebCore::HistoryItem::getTransientProperty): Transient properties are, for now, only a Mac concept
70040         (WebCore::HistoryItem::setTransientProperty):
70042         * history/HistoryItemTimer.cpp: Added
70043         (WebCore::HistoryItemTimer::HistoryItemTimer): We need a specific class to be the history item timer because
70044         WebCore::Timers only work when you have an instance of an object, but the caches pending release is a static concept
70045         (WebCore::HistoryItemTimer::isActive):
70046         (WebCore::HistoryItemTimer::schedule):
70047         (WebCore::HistoryItemTimer::invalidate):
70048         (WebCore::HistoryItemTimer::callReleasePageCache):
70049         * history/HistoryItemTimer.h: Added.
70051         * history/PageCache.cpp Added - This is a class that contains the fields that used to be in an NSDictionary in WebKit
70052         (WebCore::PageCache::PageCache):
70053         (WebCore::PageCache::setPageState):
70054         (WebCore::PageCache::~PageCache):
70055         (WebCore::PageCache::pageState):
70056         (WebCore::PageCache::setDocumentLoader):
70057         (WebCore::PageCache::documentLoader):
70058         (WebCore::PageCache::setTimeStamp):
70059         (WebCore::PageCache::setTimeStampToNow):
70060         (WebCore::PageCache::timeStamp):
70061         * history/PageCache.h: Added.
70062         * history/mac/PageCacheMac.mm: Added.
70063         (WebCore::PageCache::close):
70064         (WebCore::PageCache::setDocumentView): In the future we need a platform agnostic way to manage the documentView
70065         (WebCore::PageCache::documentView):
70067         * loader/DocumentLoader.cpp:
70068         (WebCore::DocumentLoader::loadFromPageCache):
70069         (WebCore::DocumentLoader::setLoadingFromPageCache): 
70070         (WebCore::DocumentLoader::isLoadingFromPageCache):
70071         (WebCore::DocumentLoader::originalURL):
70072         (WebCore::DocumentLoader::requestURL):
70073         (WebCore::DocumentLoader::responseURL):
70074         (WebCore::DocumentLoader::responseMIMEType):
70075         * loader/DocumentLoader.h:
70077         * loader/FrameLoader.cpp: Responsibilities previously scattered in WebKit but concentrated in WebView and WebFrame 
70078           are now here, where they should be.
70079         (WebCore::FrameLoader::clear):
70080         (WebCore::FrameLoader::restoreDocumentState):
70081         (WebCore::FrameLoader::goBackOrForward):
70082         (WebCore::FrameLoader::provisionalLoadStarted):
70083         (WebCore::FrameLoader::canCachePage):
70084         (WebCore::FrameLoader::commitProvisionalLoad):
70085         (WebCore::FrameLoader::transitionToCommitted):
70086         (WebCore::FrameLoader::open):
70087         (WebCore::FrameLoader::didFirstLayout):
70088         (WebCore::FrameLoader::dispatchDidChangeLocationWithinPage):
70089         (WebCore::FrameLoader::dispatchDidFinishLoadToClient):
70090         (WebCore::FrameLoader::updateGlobalHistoryForStandardLoad): Marked for usage in future GlobalHistory (uses client for now)
70091         (WebCore::FrameLoader::updateGlobalHistoryForReload): Ditto
70092         (WebCore::FrameLoader::shouldGoToHistoryItem):
70093         (WebCore::FrameLoader::addExtraFieldsToRequest):
70094         (WebCore::FrameLoader::addHistoryItemForFragmentScroll):
70095         (WebCore::FrameLoader::loadProvisionalItemFromPageCache):
70096         (WebCore::FrameLoader::createPageCache):
70097         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
70098         (WebCore::FrameLoader::createItem):
70099         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
70100         (WebCore::FrameLoader::createItemTree):
70101         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
70102         (WebCore::FrameLoader::restoreScrollPositionAndViewState):
70103         (WebCore::FrameLoader::purgePageCache):
70104         (WebCore::FrameLoader::invalidateCurrentItemPageCache):
70105         (WebCore::FrameLoader::saveDocumentState):
70106         (WebCore::FrameLoader::loadItem):
70107         (WebCore::FrameLoader::urlsMatchItem):
70108         (WebCore::FrameLoader::goToItem):
70109         (WebCore::FrameLoader::recursiveGoToItem):
70110         (WebCore::FrameLoader::childFramesMatchItem):
70111         (WebCore::FrameLoader::updateHistoryForStandardLoad):
70112         (WebCore::FrameLoader::updateHistoryForClientRedirect):
70113         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
70114         (WebCore::FrameLoader::updateHistoryForReload):
70115         (WebCore::FrameLoader::updateHistoryForInternalLoad):
70116         (WebCore::FrameLoader::updateHistoryForCommit):
70117         (WebCore::FrameLoader::saveDocumentAndScrollState):
70118         (WebCore::FrameLoader::currentHistoryItem):
70119         (WebCore::FrameLoader::previousHistoryItem):
70120         (WebCore::FrameLoader::provisionalHistoryItem):
70121         (WebCore::FrameLoader::setCurrentHistoryItem):
70122         (WebCore::FrameLoader::setPreviousHistoryItem):
70123         (WebCore::FrameLoader::setProvisionalHistoryItem):
70124         * loader/FrameLoader.h:
70126         * loader/FrameLoaderClient.h:
70128         * loader/mac/DocumentLoaderMac.mm:
70129         (WebCore::DocumentLoader::DocumentLoader):
70130         (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
70131         (WebCore::DocumentLoader::commitIfReady):
70132         (WebCore::DocumentLoader::urlForHistory):
70134         * loader/mac/FrameLoaderMac.mm:
70135         (WebCore::FrameLoader::load):
70136         (WebCore::FrameLoader::startLoading):
70137         (WebCore::FrameLoader::receivedMainResourceError):
70138         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
70139         (WebCore::FrameLoader::opened):
70140         (WebCore::FrameLoader::dataURLBaseFromRequest):
70141         (WebCore::FrameLoader::didChangeTitle):
70142         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
70143         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
70145         * page/FrameTree.cpp:
70146         (WebCore::FrameTree::removeChild):
70148         * page/Page.cpp: Transfered a handful of concepts from WebView
70149         (WebCore::Page::Page):
70150         (WebCore::Page::~Page):
70151         (WebCore::Page::backForwardList):
70152         (WebCore::Page::goBack):
70153         (WebCore::Page::goForward):
70154         (WebCore::Page::goToItem):
70155         * page/Page.h:
70157         * page/PageState.h:
70158         * page/mac/FrameMac.h:
70159         * page/mac/FrameMac.mm:
70160         * page/mac/WebCoreFrameBridge.h:
70161         * page/mac/WebCoreFrameBridge.mm:
70163         * platform/KURL.cpp:
70164         (WebCore::KURL::print):  Added debug only method for debugging convenience
70165         * platform/KURL.h:
70167         * platform/Logging.cpp:
70168         (WebCore::): Added some logging channels
70169         * platform/Logging.h:
70171         * platform/PlatformString.h:
70172         (WebCore::nsStringNilIfEmpty): Added for WebKit use
70174         * platform/SystemTime.h: Added userIdleTime()
70176         * platform/graphics/svg/SVGImage.cpp:
70177         * platform/graphics/svg/SVGImageEmptyClients.h: Updated for new FrameLoaderClient methods
70178         (WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromPageCache):
70179         (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForStandardLoad):
70180         (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForReload):
70181         (WebCore::SVGEmptyFrameLoaderClient::shouldGoToHistoryItem):
70182         (WebCore::SVGEmptyFrameLoaderClient::saveScrollPositionAndViewStateToItem):
70183         (WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToPageCache):
70184         (WebCore::SVGEmptyFrameLoaderClient::canCachePage):
70185         (WebCore::SVGEmptyEditorClient::~SVGEmptyEditorClient):
70187         * platform/mac/LoggingMac.mm:
70188         (WebCore::InitializeLoggingChannelsIfNecessary):
70190         * platform/mac/SystemTimeMac.cpp:
70191         (WebCore::userIdleTime):
70193         * platform/mac/WebCoreSystemInterface.h: Added wkSecondsSinceLastInput for use in userIdleTime
70194         * platform/mac/WebCoreSystemInterface.mm:
70196         * platform/network/FormData.cpp:
70197         (WebCore::FormData::FormData):
70198         (WebCore::FormData::copy):
70199         * platform/network/FormData.h:
70201         * platform/network/ResourceHandle.h:
70202         * platform/network/mac/ResourceHandleMac.mm:
70203         (WebCore::ResourceHandle::willLoadFromCache): For "are you sure you want to resubmit?" nag
70205         * platform/qt/TemporaryLinkStubs.cpp:
70206         (WebCore::userIdleTime):
70207         * rendering/RenderPart.h:
70209 2007-01-02  Darin Adler  <darin@apple.com>
70211         Rubber stamped by Mitz.
70213         Rename isRenderSVGContainer to isSVGContainer.
70215         * platform/graphics/ImageBuffer.cpp:
70216         (WebCore::ImageBuffer::renderSubtreeToImage):
70217         * rendering/RenderObject.cpp:
70218         (WebCore::RenderObject::containingBlock):
70219         * rendering/RenderObject.h:
70220         (WebCore::RenderObject::isSVGContainer):
70221         * rendering/RenderSVGContainer.cpp:
70222         (WebCore::RenderSVGContainer::viewportTransform):
70223         * rendering/RenderSVGContainer.h:
70224         (WebCore::RenderSVGContainer::isSVGContainer):
70225         * rendering/RenderTreeAsText.cpp:
70226         (WebCore::write):
70228 2007-01-03  Nikolas Zimmermann  <zimmermann@kde.org>
70230         Reviewed by Mitz.
70232         Rename isKCanvasContainer to isRenderSVGContainer.
70234         * platform/graphics/ImageBuffer.cpp:
70235         (WebCore::ImageBuffer::renderSubtreeToImage):
70236         * rendering/RenderObject.cpp:
70237         (WebCore::RenderObject::containingBlock):
70238         * rendering/RenderObject.h:
70239         (WebCore::RenderObject::isRenderSVGContainer):
70240         * rendering/RenderSVGContainer.cpp:
70241         (WebCore::RenderSVGContainer::viewportTransform):
70242         * rendering/RenderSVGContainer.h:
70243         (WebCore::RenderSVGContainer::isRenderSVGContainer):
70244         * rendering/RenderTreeAsText.cpp:
70245         (WebCore::write):
70247 2007-01-02  Beth Dakin  <bdakin@apple.com>
70249         Reviewed by Darin.
70251         Fix assertion failure with WebCore context menus by getting "Copy 
70252         Image" item added in.
70254         * platform/ContextMenu.cpp:
70255         (WebCore::ContextMenu::populate): Check if the image url is a local 
70256         file or if we have an image in the cache.
70258 2007-01-02  Sam Weinig  <sam@webkit.org>
70260         Reviewed by Anders.
70262         Patch for http://bugs.webkit.org/show_bug.cgi?id=12072
70263         select with align attribute should not affect contained text
70265         Don't map align for select elements.
70267         Test: fast/forms/select-align.html
70269         * html/HTMLSelectElement.cpp:
70270         (WebCore::HTMLSelectElement::parseMappedAttribute):
70272 2007-01-02  Sam Weinig  <sam@webkit.org>
70274         Reviewed by Mitz.
70276         Patch for http://bugs.webkit.org/show_bug.cgi?id=12071
70277         button with align attribute should not affect contained text
70279         Don't map align for button elements.
70281         Test: fast/forms/button-align.html
70283         * html/HTMLButtonElement.cpp:
70284         (WebCore::HTMLButtonElement::parseMappedAttribute):
70286 2007-01-02  Sam Weinig  <sam@webkit.org>
70288         Reviewed by Mitz and Anders.
70290         Patch for http://bugs.webkit.org/show_bug.cgi?id=7075
70291         textarea with align=right should not cause contained text to 
70292         be right-justified
70294         Don't map align for textarea elements.
70296         Test: fast/forms/textarea-align.html
70298         * html/HTMLTextAreaElement.cpp:
70299         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
70301 2007-01-02  Eric Seidel  <eric@webkit.org>
70303         Reviewed by mitz.
70305         Implement SVGSVGElement::deselectAll()
70307         * ksvg2/svg/SVGAnimationElement.h:
70308         (WebCore::SVGAnimationElement::updateLastValueWithCurrent): add comment
70309         * ksvg2/svg/SVGSVGElement.cpp:
70310         (WebCore::SVGSVGElement::deselectAll): implement
70311         (WebCore::SVGSVGElement::setCurrentTime): add comment about bug
70312         * ksvg2/svg/SVGSVGElement.idl: remove unnecessary comment
70314 2007-01-02  Sam Weinig  <sam@webkit.org>
70316         Reviewed by Darin.
70318         Patch for http://bugs.webkit.org/show_bug.cgi?id=3360
70319         align="right" on a text input aligns the input field to the right
70321         Don't map align if input type is not 'image'.
70323         Test: fast/forms/input-align-image.html
70324         Test: fast/forms/input-align.html
70326         * WebCore.xcodeproj/project.pbxproj:
70327         * html/HTMLInputElement.cpp:
70328         (WebCore::HTMLInputElement::setInputType):
70329         (WebCore::HTMLInputElement::mapToEntry):
70330         (WebCore::HTMLInputElement::parseMappedAttribute):
70332 2007-01-02  Nikolas Zimmermann  <zimmermann@kde.org>
70334         Reviewed by Eric.
70336         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12013
70337         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11980
70338         Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (pattern/gradient recursion works now)
70340         Fixed testcases:
70341         coords-units-01-b.svg (<pattern> in objectBoundingBoxMode were broken.)
70342         pattern-in-defs.svg (clip pattern size against target size, to avoid excessive mallocs)
70343         js-update-pattern.svg (live updating really works now!)
70344         js-late-gradient-and-object-creation.svg (objectBoundingBoxMode gradients-on-text work now)
70345         js-late-gradient-creation.svg (same)
70347         Added testcases:
70348         js-late-pattern-and-object-creation.svg (objectBoundingBoxMode patterns-on-text work now)
70349         js-late-pattern-creation.svg (same)
70350         gradient-cycle-detection.svg (tests that cyclic gradients are ignored)
70351         gradient-deep-referencing.svg
70352         pattern-cycle-detection.svg (tests that cyclic patterns are ignored)
70353         pattern-deep-referencing.svg
70355         Rewrite gradient & pattern code, fixing all known bugs & regressions.
70357         -> Remove SVGResourceListener completly (the ugly resourceNotification() hack is gone now)
70359         -> Make patterns operate in all possible combinations of patternUnits / patternContentunits
70360            The SVGPaintServerPattern now asks the SVGPatternElement to build the pattern tile, passing
70361            the target object's bbox rectangle -> objectBoundingBox calculations can be done, so SVGPaintServerPattern
70362            itself doesn't need to know anything about "bounding box mode". Same could be done for gradients.
70364         -> SVGLength::valueAsPercentage() returns again fractional values, saves some "/ 100.0" statements.
70366         -> Deep references (gradientA -> gradientB -> gradientC...) work now. Previously only one reference worked.
70367            Adding GradientAttributes.h / PatternAttributes.h helper structures for the property collection.
70368            Cycle detection is implemented and won't kill us anymore :-)
70370         JS updates on gradients/patterns only cause one repaint of the client's now. Gradient drawing
70371         does not cause the target object to be redrawn immediately afterwards anymore.
70373         * WebCore.xcodeproj/project.pbxproj:
70374         * ksvg2/misc/KCanvasRenderingStyle.cpp:
70375         (WebCore::KSVGPainterFactory::fillPaintServer):
70376         (WebCore::KSVGPainterFactory::strokePaintServer):
70377         * ksvg2/misc/KCanvasRenderingStyle.h:
70378         * ksvg2/misc/SVGDocumentExtensions.cpp:
70379         (WebCore::SVGDocumentExtensions::addPendingResource):
70380         (WebCore::SVGDocumentExtensions::isPendingResource):
70381         (WebCore::SVGDocumentExtensions::removePendingResource):
70382         * ksvg2/misc/SVGDocumentExtensions.h:
70383         * ksvg2/svg/GradientAttributes.h: Added.
70384         (WebCore::GradientAttributes::GradientAttributes):
70385         (WebCore::GradientAttributes::spreadMethod):
70386         (WebCore::GradientAttributes::boundingBoxMode):
70387         (WebCore::GradientAttributes::gradientTransform):
70388         (WebCore::GradientAttributes::stops):
70389         (WebCore::GradientAttributes::setSpreadMethod):
70390         (WebCore::GradientAttributes::setBoundingBoxMode):
70391         (WebCore::GradientAttributes::setGradientTransform):
70392         (WebCore::GradientAttributes::setStops):
70393         (WebCore::GradientAttributes::hasSpreadMethod):
70394         (WebCore::GradientAttributes::hasBoundingBoxMode):
70395         (WebCore::GradientAttributes::hasGradientTransform):
70396         (WebCore::GradientAttributes::hasStops):
70397         * ksvg2/svg/LinearGradientAttributes.h: Added.
70398         (WebCore::LinearGradientAttributes::LinearGradientAttributes):
70399         (WebCore::LinearGradientAttributes::x1):
70400         (WebCore::LinearGradientAttributes::y1):
70401         (WebCore::LinearGradientAttributes::x2):
70402         (WebCore::LinearGradientAttributes::y2):
70403         (WebCore::LinearGradientAttributes::setX1):
70404         (WebCore::LinearGradientAttributes::setY1):
70405         (WebCore::LinearGradientAttributes::setX2):
70406         (WebCore::LinearGradientAttributes::setY2):
70407         (WebCore::LinearGradientAttributes::hasX1):
70408         (WebCore::LinearGradientAttributes::hasY1):
70409         (WebCore::LinearGradientAttributes::hasX2):
70410         (WebCore::LinearGradientAttributes::hasY2):
70411         * ksvg2/svg/PatternAttributes.h: Added.
70412         (WebCore::PatternAttributes::PatternAttributes):
70413         (WebCore::PatternAttributes::x):
70414         (WebCore::PatternAttributes::y):
70415         (WebCore::PatternAttributes::width):
70416         (WebCore::PatternAttributes::height):
70417         (WebCore::PatternAttributes::boundingBoxMode):
70418         (WebCore::PatternAttributes::boundingBoxModeContent):
70419         (WebCore::PatternAttributes::patternTransform):
70420         (WebCore::PatternAttributes::patternContentElement):
70421         (WebCore::PatternAttributes::setX):
70422         (WebCore::PatternAttributes::setY):
70423         (WebCore::PatternAttributes::setWidth):
70424         (WebCore::PatternAttributes::setHeight):
70425         (WebCore::PatternAttributes::setBoundingBoxMode):
70426         (WebCore::PatternAttributes::setBoundingBoxModeContent):
70427         (WebCore::PatternAttributes::setPatternTransform):
70428         (WebCore::PatternAttributes::setPatternContentElement):
70429         (WebCore::PatternAttributes::hasX):
70430         (WebCore::PatternAttributes::hasY):
70431         (WebCore::PatternAttributes::hasWidth):
70432         (WebCore::PatternAttributes::hasHeight):
70433         (WebCore::PatternAttributes::hasBoundingBoxMode):
70434         (WebCore::PatternAttributes::hasBoundingBoxModeContent):
70435         (WebCore::PatternAttributes::hasPatternTransform):
70436         (WebCore::PatternAttributes::hasPatternContentElement):
70437         * ksvg2/svg/RadialGradientAttributes.h: Added.
70438         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
70439         (WebCore::RadialGradientAttributes::cx):
70440         (WebCore::RadialGradientAttributes::cy):
70441         (WebCore::RadialGradientAttributes::r):
70442         (WebCore::RadialGradientAttributes::fx):
70443         (WebCore::RadialGradientAttributes::fy):
70444         (WebCore::RadialGradientAttributes::setCx):
70445         (WebCore::RadialGradientAttributes::setCy):
70446         (WebCore::RadialGradientAttributes::setR):
70447         (WebCore::RadialGradientAttributes::setFx):
70448         (WebCore::RadialGradientAttributes::setFy):
70449         (WebCore::RadialGradientAttributes::hasCx):
70450         (WebCore::RadialGradientAttributes::hasCy):
70451         (WebCore::RadialGradientAttributes::hasR):
70452         (WebCore::RadialGradientAttributes::hasFx):
70453         (WebCore::RadialGradientAttributes::hasFy):
70454         * ksvg2/svg/SVGGradientElement.cpp:
70455         (WebCore::SVGGradientElement::notifyAttributeChange):
70456         (WebCore::SVGGradientElement::canvasResource):
70457         (WebCore::SVGGradientElement::buildStops):
70458         (WebCore::SVGGradientElement::insertedIntoDocument):
70459         * ksvg2/svg/SVGGradientElement.h:
70460         * ksvg2/svg/SVGLength.cpp:
70461         (WebCore::SVGLength::valueAsPercentage):
70462         * ksvg2/svg/SVGLinearGradientElement.cpp:
70463         (WebCore::SVGLinearGradientElement::buildGradient):
70464         (WebCore::SVGLinearGradientElement::collectGradientProperties):
70465         * ksvg2/svg/SVGLinearGradientElement.h:
70466         * ksvg2/svg/SVGLocatable.cpp:
70467         (WebCore::SVGLocatable::getScreenCTM):
70468         * ksvg2/svg/SVGPatternElement.cpp:
70469         (WebCore::SVGPatternElement::SVGPatternElement):
70470         (WebCore::SVGPatternElement::buildPattern):
70471         (WebCore::SVGPatternElement::notifyAttributeChange):
70472         (WebCore::SVGPatternElement::canvasResource):
70473         (WebCore::SVGPatternElement::insertedIntoDocument):
70474         (WebCore::SVGPatternElement::collectPatternProperties):
70475         * ksvg2/svg/SVGPatternElement.h:
70476         * ksvg2/svg/SVGRadialGradientElement.cpp:
70477         (WebCore::SVGRadialGradientElement::buildGradient):
70478         (WebCore::SVGRadialGradientElement::collectGradientProperties):
70479         * ksvg2/svg/SVGRadialGradientElement.h:
70480         * platform/graphics/svg/SVGPaintServerGradient.cpp:
70481         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
70482         (WebCore::SVGPaintServerGradient::externalRepresentation):
70483         * platform/graphics/svg/SVGPaintServerGradient.h:
70484         (WebCore::):
70485         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
70486         (WebCore::SVGPaintServerLinearGradient::SVGPaintServerLinearGradient):
70487         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
70488         * platform/graphics/svg/SVGPaintServerPattern.cpp:
70489         (WebCore::SVGPaintServerPattern::SVGPaintServerPattern):
70490         (WebCore::SVGPaintServerPattern::patternBoundaries):
70491         (WebCore::SVGPaintServerPattern::setPatternBoundaries):
70492         (WebCore::SVGPaintServerPattern::setTile):
70493         (WebCore::SVGPaintServerPattern::externalRepresentation):
70494         * platform/graphics/svg/SVGPaintServerPattern.h:
70495         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
70496         (WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
70497         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
70498         * platform/graphics/svg/SVGResource.cpp:
70499         (WebCore::SVGResource::invalidate):
70500         (WebCore::SVGResource::repaintClients):
70501         * platform/graphics/svg/SVGResource.h:
70502         * platform/graphics/svg/SVGResourceListener.h:
70503         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
70504         (WebCore::cgGradientCallback):
70505         (WebCore::CGShadingRefForRadialGradient):
70506         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
70507         (WebCore::SVGPaintServerGradient::updateQuartzGradientCache):
70508         (WebCore::SVGPaintServerGradient::teardown):
70509         (WebCore::SVGPaintServerGradient::renderPath):
70510         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
70511         (WebCore::SVGPaintServerGradient::setup):
70512         (WebCore::SVGPaintServerGradient::invalidate):
70513         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
70514         (WebCore::SVGPaintServerPattern::setup):
70515         (WebCore::SVGPaintServerPattern::teardown):
70516         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
70517         (WebCore::SVGPaintServerLinearGradient::setup):
70518         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
70519         (WebCore::SVGPaintServerPattern::setup):
70520         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
70521         (WebCore::SVGPaintServerRadialGradient::setup):
70523 2007-01-02  Zack Rusin  <zack@kde.org>
70525         Compilation fix. File names are case-sensitive.
70527         * ksvg2/svg/SVGPathSegList.cpp:
70529 2007-01-02  Zack Rusin  <zack@kde.org>
70531         Compilation fixes for the Qt port.
70533         * WebCore.pro:
70534         * platform/qt/FrameQt.cpp:
70535         (WebCore::FrameQt::bindingRootObject):
70536         (WebCore::FrameQt::addPluginRootObject):
70538 2007-01-02  Eric Seidel  <eric@webkit.org>
70540         Reviewed by rwlbuis.
70542         Refactor more animation code for better sharing between SVGAnimate*Element classes.
70543         - replace handleEndCondition with resetValues() and updateLastValueWithCurrent()
70544         - move initialTransform() function down into SVGTimer (eventually to AnimationCompositor)
70545         Add non-functional (only parses) SVGAnimateMotionElement
70546         Improve precision of getPointAtLength calculations and add support for "getNormalAtLength" functionality (needed for rotate='auto' support in animateMotion)
70547         Move add getSegmentAtLength functionality to SVGPathSegList, move toPathData into SVGPathSegList as well.
70548         Add SVGAnimationElement::hasValidTarget() for future better/simpler ASSERT checking
70549         change transformMatrix() to currentTransform() to match AffineTransform class name
70551         * WebCore.xcodeproj/project.pbxproj:
70552         * ksvg2/misc/SVGTimer.cpp:
70553         (WebCore::SVGTimer::animationsByElement):
70554         (WebCore::baseValueTransformList):
70555         (WebCore::SVGTimer::applyAnimations):
70556         * ksvg2/svg/SVGAnimateColorElement.cpp:
70557         (WebCore::SVGAnimateColorElement::updateLastValueWithCurrent):
70558         * ksvg2/svg/SVGAnimateColorElement.h:
70559         * ksvg2/svg/SVGAnimateMotionElement.cpp: Added.
70560         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
70561         (WebCore::SVGAnimateMotionElement::~SVGAnimateMotionElement):
70562         (WebCore::SVGAnimateMotionElement::hasValidTarget): added.
70563         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
70564         (WebCore::SVGAnimateMotionElement::animationPath): fetch path from <mpath> or d attribute
70565         (WebCore::SVGAnimateMotionElement::updateCurrentValue):
70566         (WebCore::SVGAnimateMotionElement::handleStartCondition):
70567         (WebCore::SVGAnimateMotionElement::applyAnimationToValue):
70568         * ksvg2/svg/SVGAnimateMotionElement.h: Added.
70569         (WebCore::SVGAnimateMotionElement::contextElement):
70570         (WebCore::SVGAnimateMotionElement::):
70571         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70572         (WebCore::SVGAnimateTransformElement::hasValidTarget): added.
70573         (WebCore::SVGAnimateTransformElement::storeInitialValue):
70574         (WebCore::SVGAnimateTransformElement::updateCurrentValue):
70575         (WebCore::SVGAnimateTransformElement::updateLastValueWithCurrent):
70576         (WebCore::SVGAnimateTransformElement::applyAnimationToValue):
70577         (WebCore::SVGAnimateTransformElement::currentTransform):
70578         * ksvg2/svg/SVGAnimateTransformElement.h:
70579         * ksvg2/svg/SVGAnimationElement.cpp:
70580         (WebCore::SVGAnimationElement::hasValidTarget): added.
70581         (WebCore::SVGAnimationElement::parseMappedAttribute):
70582         (WebCore::SVGAnimationElement::isAdditive):
70583         (WebCore::SVGAnimationElement::isAccumulated):
70584         (WebCore::SVGAnimationElement::handleTimerEvent):
70585         * ksvg2/svg/SVGAnimationElement.h:
70586         (WebCore::SVGAnimationElement::updateLastValueWithCurrent):
70587         (WebCore::SVGAnimationElement::resetValues):
70588         * ksvg2/svg/SVGPathElement.cpp:
70589         (WebCore::SVGPathElement::getPointAtLength):
70590         (WebCore::SVGPathElement::getPathSegAtLength):
70591         (WebCore::SVGPathElement::parseMappedAttribute):
70592         (WebCore::SVGPathElement::toPathData):
70593         * ksvg2/svg/SVGPathSegList.cpp:
70594         (WebCore::SVGPathSegList::getPathSegAtLength): added.
70595         (WebCore::SVGPathSegList::toPathData): added.
70596         * ksvg2/svg/SVGPathSegList.h:
70597         * ksvg2/svg/svgtags.in: add animateMotion
70598         * platform/graphics/Path.cpp:
70599         (WebCore::pathLengthApplierFunction): add support for TraversalNormalAngleAtLength
70600         * platform/graphics/PathTraversalState.cpp:
70601         (WebCore::curveLength): support higher precision pointAtLength calculations, and add normalAtLength support
70602         (WebCore::PathTraversalState::quadraticBezierTo):
70603         (WebCore::PathTraversalState::cubicBezierTo):
70604         * platform/graphics/PathTraversalState.h:
70605         (WebCore::PathTraversalState::): add TraversalNormalAngleAtLength mode
70607 2007-01-01  Mitz Pettel  <mitz@webkit.org>
70609         Reviewed by Darin.
70611         - WebCore changes for http://bugs.webkit.org/show_bug.cgi?id=11849
70612           REGRESSION (r18182): Google Calendar is broken (a regular expression containing a null character is not parsed correctly)
70614         * platform/RegularExpression.cpp:
70615         (WebCore::RegularExpression::Private::compile): Changed to not null-terminate
70616         the pattern string and instead pass its length to pcre_compile.
70618 2007-01-01  Mitz Pettel  <mitz@webkit.org>
70620         Reviewed by Darin.
70622         - fix http://bugs.webkit.org/show_bug.cgi?id=11359
70623           Incomplete repaint of table cell's collapsed border when changing only the cell
70625         Test: fast/repaint/table-cell-collapsed-border.html
70627         * rendering/RenderTable.h:
70628         Added needsSectionRecalc() accessor.
70629         * rendering/RenderTableCell.cpp:
70630         (WebCore::RenderTableCell::getAbsoluteRepaintRect): Overloaded to add the
70631         outer half of any collapsed borders. This function checks the cell's borders'
70632         widths but also the widths of the adjoining cells' borders, since they can
70633         contribute to the length of this cell's borders perpendicular to them, making
70634         such a border overflow the cell in both dimensions.
70635         (WebCore::RenderTableCell::borderLeft): Split the collapsing borders case off to
70636         borderHalfLeft().
70637         (WebCore::RenderTableCell::borderRight): Ditto.
70638         (WebCore::RenderTableCell::borderTop): Ditto.
70639         (WebCore::RenderTableCell::borderBottom): Ditto.
70640         (WebCore::RenderTableCell::borderHalfLeft): Added. Takes an 'outer' boolean
70641         parameter. When true, this function returns the width of the part of the border
70642         that is outside the cell (different from the inner width when the total width is odd).
70643         (WebCore::RenderTableCell::borderHalfRight): Ditto.
70644         (WebCore::RenderTableCell::borderHalfTop): Ditto.
70645         (WebCore::RenderTableCell::borderHalfBottom): Ditto.
70646         * rendering/RenderTableCell.h:
70648 2007-01-01  David Kilzer  <ddkilzer@webkit.org>
70650         WebCore.vcproj change reviewed by Darin.  Additional build files updated by ddkilzer.
70652         * CMakeLists.txt: Removed RenderLineEdit.cpp.
70653         * WebCore.vcproj/WebCore/WebCore.vcproj: Removed RenderLineEdit.cpp and RenderLineEdit.h.
70654         * WebCoreSources.bkl: Removed RenderLineEdit.cpp.
70656 2007-01-01  Mitz Pettel  <mitz@webkit.org>
70658         Reviewed by Mark Rowe.
70660         - fix http://bugs.webkit.org/show_bug.cgi?id=12042
70661           Assertion failure in WebCore::RenderObject::drawBorder
70663         Test: fast/borders/outline-offset-min-assert.html
70665         * rendering/RenderObject.cpp:
70666         (WebCore::RenderObject::paintOutline): Bail out if the width or height is
70667         smaller than twice the outline inset.
70668         
70669 2007-01-01  Mark Rowe  <bdash@webkit.org>
70671         Reviewed by Eric.
70673         http://bugs.webkit.org/show_bug.cgi?id=12061
70674         Bug 12061: Crash in WebCore::Shared<WebCore::StringImpl>::deref
70676         * rendering/RenderStyle.cpp:
70677         (WebCore::ContentData::clearContent): Reset _contentType to CONTENT_NONE to ensure repeated calls to clearContent
70678         do not result in derefing deallocated members.
70680 2007-01-01  Eric Seidel  <eric@webkit.org>
70682         Reviewed by andersca.
70684         Begin pushing code down into SVGAnimateElement
70686         * ksvg2/svg/SVGAnimateColorElement.cpp:
70687         (WebCore::SVGAnimateColorElement::handleStartCondition):
70688         * ksvg2/svg/SVGAnimateColorElement.h:
70689         * ksvg2/svg/SVGAnimateElement.h:
70690         (WebCore::SVGAnimateElement::updateCurrentValue):
70691         (WebCore::SVGAnimateElement::handleStartCondition):
70692         (WebCore::SVGAnimateElement::handleEndCondition):
70693         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70694         (WebCore::SVGAnimateTransformElement::handleStartCondition):
70695         * ksvg2/svg/SVGAnimateTransformElement.h:
70696         * ksvg2/svg/SVGAnimationElement.cpp:
70697         (WebCore::SVGAnimationElement::handleTimerEvent):
70698         * ksvg2/svg/SVGAnimationElement.h:
70699         * ksvg2/svg/SVGSetElement.cpp:
70700         (WebCore::SVGSetElement::updateCurrentValue):
70701         (WebCore::SVGSetElement::handleStartCondition):
70702         (WebCore::SVGSetElement::handleEndCondition):
70703         * ksvg2/svg/SVGSetElement.h:
70705 2007-01-01  Eric Seidel  <eric@webkit.org>
70707         Reviewed by andersca.
70709         Add static function SVGColor::colorFromRGBColorString to allow parsing Colors from SVG color strings w/o creating an SVGColor object.
70711         * ksvg2/svg/SVGAnimateColorElement.cpp:
70712         (WebCore::SVGAnimateColorElement::storeInitialValue): use colorFromRGBColorString
70713         (WebCore::SVGAnimateColorElement::startIfNecessary): use colorFromRGBColorString
70714         * ksvg2/svg/SVGColor.cpp:
70715         (WebCore::SVGColor::setRGBColor): use colorFromRGBColorString
70716         (WebCore::parseNumberOrPercent): new color parsing helper
70717         (WebCore::SVGColor::colorFromRGBColorString): cleaned up version of setRGBColor parsing logic
70718         * ksvg2/svg/SVGColor.h:
70720 2007-01-01  Eric Seidel  <eric@webkit.org>
70722         Reviewed by andersca.
70724         Split handleTimerEvent logic into separate functions in preparation for moving down into SVGAnimationElement
70726         * ksvg2/svg/SVGAnimateColorElement.cpp:
70727         (WebCore::SVGAnimateColorElement::storeInitialValue):
70728         (WebCore::SVGAnimateColorElement::resetValues):
70729         (WebCore::SVGAnimateColorElement::updateCurrentValue):
70730         (WebCore::SVGAnimateColorElement::startIfNecessary):
70731         (WebCore::SVGAnimateColorElement::handleEndCondition):
70732         (WebCore::SVGAnimateColorElement::handleTimerEvent):
70733         * ksvg2/svg/SVGAnimateColorElement.h:
70734         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70735         (WebCore::SVGAnimateTransformElement::storeInitialValue):
70736         (WebCore::SVGAnimateTransformElement::resetValues):
70737         (WebCore::SVGAnimateTransformElement::updateCurrentValue):
70738         (WebCore::SVGAnimateTransformElement::startIfNecessary):
70739         (WebCore::SVGAnimateTransformElement::handleEndCondition):
70740         (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70741         * ksvg2/svg/SVGAnimateTransformElement.h:
70743 2007-01-01  Rob Buis  <buis@kde.org>
70745         Reviewed by Eric.
70747         Simple cleanups, removing unused color table, copyright and include guard fixes.
70749         * ksvg2/svg/SVGColor.cpp:
70750         * ksvg2/svg/SVGColor.h:
70752 2007-01-01  Eric Seidel  <eric@webkit.org>
70754         Reviewed by andersca.
70756         More animation code cleanup.
70758         * ksvg2/svg/SVGAnimateColorElement.cpp:
70759         (WebCore::SVGAnimateColorElement::handleTimerEvent):
70760         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70761         (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70762         * ksvg2/svg/SVGAnimationElement.cpp:
70763         (WebCore::SVGAnimationElement::SVGAnimationElement):
70764         (WebCore::SVGAnimationElement::connectedToTimer):
70765         (WebCore::SVGAnimationElement::connectTimer):
70766         (WebCore::SVGAnimationElement::disconnectTimer):
70767         (WebCore::SVGAnimationElement::updateForElapsedSeconds):
70768         * ksvg2/svg/SVGAnimationElement.h:
70769         * ksvg2/svg/SVGSetElement.cpp:
70770         (WebCore::SVGSetElement::handleTimerEvent):
70771         * ksvg2/svg/SVGSetElement.h:
70773 2007-01-01  Eric Seidel  <eric@webkit.org>
70775         Reviewed by mitz.
70777         More clean-up to animation code.
70779         * ksvg2/svg/SVGAnimateColorElement.cpp:
70780         (WebCore::SVGAnimateColorElement::handleTimerEvent):
70781         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70782         (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70783         (WebCore::SVGAnimateTransformElement::parseTransformValue):
70784         (WebCore::SVGAnimateTransformElement::calculateRotationFromMatrix):
70786 2007-01-01  Eric Seidel  <eric@webkit.org>
70788         Reviewed by olliej.
70790         Begin pushing more animation logic out of SVGTimer and into the SVGAnimate* classes.
70791         
70792         * ksvg2/misc/SVGTimer.cpp:
70793         (WebCore::SVGTimer::animationsByElement): add comment
70794         (WebCore::SVGTimer::notifyAll): push logic into SVGAnimte* classes
70795         * ksvg2/svg/SVGAnimateColorElement.cpp:
70796         (WebCore::SVGAnimateColorElement::applyAnimationToValue): added.
70797         * ksvg2/svg/SVGAnimateColorElement.h:
70798         * ksvg2/svg/SVGAnimateElement.cpp:
70799         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70800         (WebCore::SVGAnimateTransformElement::applyAnimationToValue): added.
70801         * ksvg2/svg/SVGAnimateTransformElement.h:
70802         * ksvg2/svg/SVGAnimationElement.cpp:
70803         (WebCore::calculateTimePercentage): logic moved from SVGTimer
70804         (WebCore::SVGAnimationElement::updateForElapsedSeconds): logic moved from SVGTimer
70805         * ksvg2/svg/SVGAnimationElement.h:
70806         * ksvg2/svg/SVGTransformList.cpp:
70807         (SVGTransformList::concatenate): fixed spacing
70809 2007-01-01  Eric Seidel  <eric@webkit.org>
70811         Reviewed by olliej.
70813         Split out animationsByElement() logic in preparation for adding AnimationCompositor class
70814         Add addColorsAndClamp helper (since adding and clamping is the common case)
70816         * ksvg2/misc/SVGTimer.cpp:
70817         (WebCore::SVGTimer::animationsByElement): split out from notifyAll
70818         (WebCore::SVGTimer::notifyAll):
70819         * ksvg2/misc/SVGTimer.h:
70820         * ksvg2/svg/SVGAnimateColorElement.cpp:
70821         (WebCore::SVGAnimateColorElement::addColorsAndClamp): added.
70822         * ksvg2/svg/SVGAnimateColorElement.h:
70824 2006-12-31  Eric Seidel  <eric@webkit.org>
70826         Reviewed by olliej.
70828         Split KSVGTimeScheduler into SVGTimer and TimeScheduler.
70829         (Basic clean-up before re-working animation system)
70831         * WebCore.xcodeproj/project.pbxproj:
70832         * ksvg2/misc/KSVGTimeScheduler.cpp: Removed.
70833         * ksvg2/misc/KSVGTimeScheduler.h: Removed.
70834         * ksvg2/misc/SVGTimer.cpp: Added.
70835         (WebCore::SVGTimer::SVGTimer):
70836         (WebCore::SVGTimer::calculateTimePercentage):
70837         (WebCore::SVGTimer::notifyAll):
70838         * ksvg2/misc/SVGTimer.h: Added.
70839         * ksvg2/misc/TimeScheduler.cpp: Added.
70840         (WebCore::TimeScheduler::TimeScheduler):
70842 2006-12-31  Eric Seidel  <eric@webkit.org>
70844         Reviewed by olliej.
70846         Re-enable animateTransform (now that SVGList is fixed)
70847         (Things are only "less broken" not totally fixed yet.)
70849         * ksvg2/misc/KSVGTimeScheduler.cpp:
70850         (WebCore::SVGTimer::notifyAll):
70852 2006-12-31  Mitz Pettel  <mitz@webkit.org>
70854         Reviewed by Hyatt.
70856         - http://bugs.webkit.org/show_bug.cgi?id=12049
70857           RenderBlock::calcMinMaxWidth() should not examine children of fixed-width blocks
70859         No test possible (no change to functionality).
70861         * rendering/RenderBlock.cpp:
70862         (WebCore::RenderBlock::calcMinMaxWidth): Call calc{Inline,Block}MinMaxWidth()
70863         only if their result is needed.
70865 == Rolled over to ChangeLog-2006-12-31 ==